231 lines
6.5 KiB
C
231 lines
6.5 KiB
C
|
|
|
|
#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
|
|
|
|
|