diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-28 09:44:56 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-28 09:44:56 -0700 |
commit | e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7 (patch) | |
tree | ea51b391f7d74ca695dcb9f5e46eb02688a92ed9 /drivers/staging/bcm/HostMIBSInterface.h | |
parent | 81280572ca6f54009edfa4deee563e8678784218 (diff) | |
parent | a4ac0d847af9dd34d5953a5e264400326144b6b2 (diff) | |
download | op-kernel-dev-e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7.zip op-kernel-dev-e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7.tar.gz |
Merge 'staging-next' to Linus's tree
This merges the staging-next tree to Linus's tree and resolves
some conflicts that were present due to changes in other trees that were
affected by files here.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/bcm/HostMIBSInterface.h')
-rw-r--r-- | drivers/staging/bcm/HostMIBSInterface.h | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/drivers/staging/bcm/HostMIBSInterface.h b/drivers/staging/bcm/HostMIBSInterface.h new file mode 100644 index 0000000..f17a4f1 --- /dev/null +++ b/drivers/staging/bcm/HostMIBSInterface.h @@ -0,0 +1,230 @@ + + +#ifndef _HOST_MIBSINTERFACE_H +#define _HOST_MIBSINTERFACE_H + +/* + * Copyright (c) 2007 Beceem Communications Pvt. Ltd + * File Name: HostMIBSInterface.h + * Abstract: This file contains DS used by the Host to update the Host + * statistics used for the MIBS. + */ + +#define MIBS_MAX_CLASSIFIERS 100 +#define MIBS_MAX_PHSRULES 100 +#define MIBS_MAX_SERVICEFLOWS 17 +#define MIBS_MAX_IP_RANGE_LENGTH 4 +#define MIBS_MAX_PORT_RANGE 4 +#define MIBS_MAX_PROTOCOL_LENGTH 32 +#define MIBS_MAX_PHS_LENGTHS 255 +#define MIBS_IPV6_ADDRESS_SIZEINBYTES 0x10 +#define MIBS_IP_LENGTH_OF_ADDRESS 4 +#define MIBS_MAX_HIST_ENTRIES 12 +#define MIBS_PKTSIZEHIST_RANGE 128 + +typedef union _U_MIBS_IP_ADDRESS +{ + struct + { + //Source Ip Address Range + ULONG ulIpv4Addr[MIBS_MAX_IP_RANGE_LENGTH]; + //Source Ip Mask Address Range + ULONG ulIpv4Mask[MIBS_MAX_IP_RANGE_LENGTH]; + }; + struct + { + //Source Ip Address Range + ULONG ulIpv6Addr[MIBS_MAX_IP_RANGE_LENGTH * 4]; + //Source Ip Mask Address Range + ULONG ulIpv6Mask[MIBS_MAX_IP_RANGE_LENGTH * 4]; + + }; + struct + { + UCHAR ucIpv4Address[MIBS_MAX_IP_RANGE_LENGTH * + MIBS_IP_LENGTH_OF_ADDRESS]; + UCHAR ucIpv4Mask[MIBS_MAX_IP_RANGE_LENGTH * + MIBS_IP_LENGTH_OF_ADDRESS]; + }; + struct + { + UCHAR ucIpv6Address[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IPV6_ADDRESS_SIZEINBYTES]; + UCHAR ucIpv6Mask[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IPV6_ADDRESS_SIZEINBYTES]; + }; +}U_MIBS_IP_ADDRESS; + + +typedef struct _S_MIBS_HOST_INFO +{ + ULONG64 GoodTransmits; + ULONG64 GoodReceives; + // this to keep track of the Tx and Rx MailBox Registers. + ULONG NumDesUsed; + ULONG CurrNumFreeDesc; + ULONG PrevNumFreeDesc; + // to keep track the no of byte recieved + ULONG PrevNumRcevBytes; + ULONG CurrNumRcevBytes; + + /* QOS Related */ + ULONG BEBucketSize; + ULONG rtPSBucketSize; + ULONG LastTxQueueIndex; + BOOLEAN TxOutofDescriptors; + BOOLEAN TimerActive; + UINT32 u32TotalDSD; + UINT32 aTxPktSizeHist[MIBS_MAX_HIST_ENTRIES]; + UINT32 aRxPktSizeHist[MIBS_MAX_HIST_ENTRIES]; +}S_MIBS_HOST_INFO; + +typedef struct _S_MIBS_CLASSIFIER_RULE +{ + ULONG ulSFID; + UCHAR ucReserved[2]; + B_UINT16 uiClassifierRuleIndex; + BOOLEAN bUsed; + USHORT usVCID_Value; + // This field detemines the Classifier Priority + B_UINT8 u8ClassifierRulePriority; + U_MIBS_IP_ADDRESS stSrcIpAddress; + /*IP Source Address Length*/ + UCHAR ucIPSourceAddressLength; + + U_MIBS_IP_ADDRESS stDestIpAddress; + /* IP Destination Address Length */ + UCHAR ucIPDestinationAddressLength; + UCHAR ucIPTypeOfServiceLength;//Type of service Length + UCHAR ucTosLow;//Tos Low + UCHAR ucTosHigh;//Tos High + UCHAR ucTosMask;//Tos Mask + UCHAR ucProtocolLength;//protocol Length + UCHAR ucProtocol[MIBS_MAX_PROTOCOL_LENGTH];//protocol Length + USHORT usSrcPortRangeLo[MIBS_MAX_PORT_RANGE]; + USHORT usSrcPortRangeHi[MIBS_MAX_PORT_RANGE]; + UCHAR ucSrcPortRangeLength; + USHORT usDestPortRangeLo[MIBS_MAX_PORT_RANGE]; + USHORT usDestPortRangeHi[MIBS_MAX_PORT_RANGE]; + UCHAR ucDestPortRangeLength; + BOOLEAN bProtocolValid; + BOOLEAN bTOSValid; + BOOLEAN bDestIpValid; + BOOLEAN bSrcIpValid; + UCHAR ucDirection; + BOOLEAN bIpv6Protocol; + UINT32 u32PHSRuleID; +}S_MIBS_CLASSIFIER_RULE; + + +typedef struct _S_MIBS_PHS_RULE +{ + ULONG ulSFID; + /// brief 8bit PHSI Of The Service Flow + B_UINT8 u8PHSI; + /// brief PHSF Of The Service Flow + B_UINT8 u8PHSFLength; + B_UINT8 u8PHSF[MIBS_MAX_PHS_LENGTHS]; + /// brief PHSM Of The Service Flow + B_UINT8 u8PHSMLength; + B_UINT8 u8PHSM[MIBS_MAX_PHS_LENGTHS]; + /// brief 8bit PHSS Of The Service Flow + B_UINT8 u8PHSS; + /// brief 8bit PHSV Of The Service Flow + B_UINT8 u8PHSV; + // Reserved bytes are 5, so that it is similar to S_PHS_RULE structure. + B_UINT8 reserved[5]; + + LONG PHSModifiedBytes; + ULONG PHSModifiedNumPackets; + ULONG PHSErrorNumPackets; +}S_MIBS_PHS_RULE; + +typedef struct _S_MIBS_EXTSERVICEFLOW_PARAMETERS +{ + UINT32 wmanIfSfid; + UINT32 wmanIfCmnCpsSfState; + UINT32 wmanIfCmnCpsMaxSustainedRate; + UINT32 wmanIfCmnCpsMaxTrafficBurst; + UINT32 wmanIfCmnCpsMinReservedRate; + UINT32 wmanIfCmnCpsToleratedJitter; + UINT32 wmanIfCmnCpsMaxLatency; + UINT32 wmanIfCmnCpsFixedVsVariableSduInd; + UINT32 wmanIfCmnCpsSduSize; + UINT32 wmanIfCmnCpsSfSchedulingType; + UINT32 wmanIfCmnCpsArqEnable; + UINT32 wmanIfCmnCpsArqWindowSize; + UINT32 wmanIfCmnCpsArqBlockLifetime; + UINT32 wmanIfCmnCpsArqSyncLossTimeout; + UINT32 wmanIfCmnCpsArqDeliverInOrder; + UINT32 wmanIfCmnCpsArqRxPurgeTimeout; + UINT32 wmanIfCmnCpsArqBlockSize; + UINT32 wmanIfCmnCpsMinRsvdTolerableRate; + UINT32 wmanIfCmnCpsReqTxPolicy; + UINT32 wmanIfCmnSfCsSpecification; + UINT32 wmanIfCmnCpsTargetSaid; + +}S_MIBS_EXTSERVICEFLOW_PARAMETERS; + + +typedef struct _S_MIBS_SERVICEFLOW_TABLE +{ + //classification extension Rule + ULONG ulSFID; + USHORT usVCID_Value; + UINT uiThreshold; + // This field determines the priority of the SF Queues + B_UINT8 u8TrafficPriority; + + BOOLEAN bValid; + BOOLEAN bActive; + BOOLEAN bActivateRequestSent; + //BE or rtPS + B_UINT8 u8QueueType; + //maximum size of the bucket for the queue + UINT uiMaxBucketSize; + UINT uiCurrentQueueDepthOnTarget; + UINT uiCurrentBytesOnHost; + UINT uiCurrentPacketsOnHost; + UINT uiDroppedCountBytes; + UINT uiDroppedCountPackets; + UINT uiSentBytes; + UINT uiSentPackets; + UINT uiCurrentDrainRate; + UINT uiThisPeriodSentBytes; + LARGE_INTEGER liDrainCalculated; + UINT uiCurrentTokenCount; + LARGE_INTEGER liLastUpdateTokenAt; + UINT uiMaxAllowedRate; + UINT NumOfPacketsSent; + UCHAR ucDirection; + USHORT usCID; + S_MIBS_EXTSERVICEFLOW_PARAMETERS stMibsExtServiceFlowTable; + UINT uiCurrentRxRate; + UINT uiThisPeriodRxBytes; + UINT uiTotalRxBytes; + UINT uiTotalTxBytes; +}S_MIBS_SERVICEFLOW_TABLE; + +typedef struct _S_MIBS_DROPPED_APP_CNTRL_MESSAGES +{ + ULONG cm_responses; + ULONG cm_control_newdsx_multiclassifier_resp; + ULONG link_control_resp; + ULONG status_rsp; + ULONG stats_pointer_resp; + ULONG idle_mode_status; + ULONG auth_ss_host_msg; + ULONG low_priority_message; + +}S_MIBS_DROPPED_APP_CNTRL_MESSAGES; + +typedef struct _S_MIBS_HOST_STATS_MIBS +{ + S_MIBS_HOST_INFO stHostInfo; + S_MIBS_CLASSIFIER_RULE astClassifierTable[MIBS_MAX_CLASSIFIERS]; + S_MIBS_SERVICEFLOW_TABLE astSFtable[MIBS_MAX_SERVICEFLOWS]; + S_MIBS_PHS_RULE astPhsRulesTable[MIBS_MAX_PHSRULES]; + S_MIBS_DROPPED_APP_CNTRL_MESSAGES stDroppedAppCntrlMsgs; +}S_MIBS_HOST_STATS_MIBS; +#endif + + |