| |
| |
| #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 received |
| 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 |
| |
| |