1 #ifndef _HOST_MIBSINTERFACE_H
2 #define _HOST_MIBSINTERFACE_H
5 * Copyright (c) 2007 Beceem Communications Pvt. Ltd
6 * File Name: HostMIBSInterface.h
7 * Abstract: This file contains DS used by the Host to update the Host
8 * statistics used for the MIBS.
11 #define MIBS_MAX_CLASSIFIERS 100
12 #define MIBS_MAX_PHSRULES 100
13 #define MIBS_MAX_SERVICEFLOWS 17
14 #define MIBS_MAX_IP_RANGE_LENGTH 4
15 #define MIBS_MAX_PORT_RANGE 4
16 #define MIBS_MAX_PROTOCOL_LENGTH 32
17 #define MIBS_MAX_PHS_LENGTHS 255
18 #define MIBS_IPV6_ADDRESS_SIZEINBYTES 0x10
19 #define MIBS_IP_LENGTH_OF_ADDRESS 4
20 #define MIBS_MAX_HIST_ENTRIES 12
21 #define MIBS_PKTSIZEHIST_RANGE 128
23 union bcm_mibs_ip_addr
{
25 /* Source Ip Address Range */
26 unsigned long ulIpv4Addr
[MIBS_MAX_IP_RANGE_LENGTH
];
27 /* Source Ip Mask Address Range */
28 unsigned long ulIpv4Mask
[MIBS_MAX_IP_RANGE_LENGTH
];
31 /* Source Ip Address Range */
32 unsigned long ulIpv6Addr
[MIBS_MAX_IP_RANGE_LENGTH
* 4];
33 /* Source Ip Mask Address Range */
34 unsigned long ulIpv6Mask
[MIBS_MAX_IP_RANGE_LENGTH
* 4];
37 unsigned char ucIpv4Address
[MIBS_MAX_IP_RANGE_LENGTH
* MIBS_IP_LENGTH_OF_ADDRESS
];
38 unsigned char ucIpv4Mask
[MIBS_MAX_IP_RANGE_LENGTH
* MIBS_IP_LENGTH_OF_ADDRESS
];
41 unsigned char ucIpv6Address
[MIBS_MAX_IP_RANGE_LENGTH
* MIBS_IPV6_ADDRESS_SIZEINBYTES
];
42 unsigned char ucIpv6Mask
[MIBS_MAX_IP_RANGE_LENGTH
* MIBS_IPV6_ADDRESS_SIZEINBYTES
];
46 struct bcm_mibs_host_info
{
49 /* this to keep track of the Tx and Rx MailBox Registers. */
50 unsigned long NumDesUsed
;
51 unsigned long CurrNumFreeDesc
;
52 unsigned long PrevNumFreeDesc
;
53 /* to keep track the no of byte received */
54 unsigned long PrevNumRcevBytes
;
55 unsigned long CurrNumRcevBytes
;
57 unsigned long BEBucketSize
;
58 unsigned long rtPSBucketSize
;
59 unsigned long LastTxQueueIndex
;
60 bool TxOutofDescriptors
;
63 u32 aTxPktSizeHist
[MIBS_MAX_HIST_ENTRIES
];
64 u32 aRxPktSizeHist
[MIBS_MAX_HIST_ENTRIES
];
67 struct bcm_mibs_classifier_rule
{
69 unsigned char ucReserved
[2];
70 u16 uiClassifierRuleIndex
;
72 unsigned short usVCID_Value
;
73 u8 u8ClassifierRulePriority
;
74 union bcm_mibs_ip_addr stSrcIpAddress
;
75 /* IP Source Address Length */
76 unsigned char ucIPSourceAddressLength
;
77 union bcm_mibs_ip_addr stDestIpAddress
;
78 /* IP Destination Address Length */
79 unsigned char ucIPDestinationAddressLength
;
80 unsigned char ucIPTypeOfServiceLength
;
81 unsigned char ucTosLow
;
82 unsigned char ucTosHigh
;
83 unsigned char ucTosMask
;
84 unsigned char ucProtocolLength
;
85 unsigned char ucProtocol
[MIBS_MAX_PROTOCOL_LENGTH
];
86 unsigned short usSrcPortRangeLo
[MIBS_MAX_PORT_RANGE
];
87 unsigned short usSrcPortRangeHi
[MIBS_MAX_PORT_RANGE
];
88 unsigned char ucSrcPortRangeLength
;
89 unsigned short usDestPortRangeLo
[MIBS_MAX_PORT_RANGE
];
90 unsigned short usDestPortRangeHi
[MIBS_MAX_PORT_RANGE
];
91 unsigned char ucDestPortRangeLength
;
96 unsigned char ucDirection
;
101 struct bcm_mibs_phs_rule
{
102 unsigned long ulSFID
;
105 u8 u8PHSF
[MIBS_MAX_PHS_LENGTHS
];
107 u8 u8PHSM
[MIBS_MAX_PHS_LENGTHS
];
111 long PHSModifiedBytes
;
112 unsigned long PHSModifiedNumPackets
;
113 unsigned long PHSErrorNumPackets
;
116 struct bcm_mibs_parameters
{
118 u32 wmanIfCmnCpsSfState
;
119 u32 wmanIfCmnCpsMaxSustainedRate
;
120 u32 wmanIfCmnCpsMaxTrafficBurst
;
121 u32 wmanIfCmnCpsMinReservedRate
;
122 u32 wmanIfCmnCpsToleratedJitter
;
123 u32 wmanIfCmnCpsMaxLatency
;
124 u32 wmanIfCmnCpsFixedVsVariableSduInd
;
125 u32 wmanIfCmnCpsSduSize
;
126 u32 wmanIfCmnCpsSfSchedulingType
;
127 u32 wmanIfCmnCpsArqEnable
;
128 u32 wmanIfCmnCpsArqWindowSize
;
129 u32 wmanIfCmnCpsArqBlockLifetime
;
130 u32 wmanIfCmnCpsArqSyncLossTimeout
;
131 u32 wmanIfCmnCpsArqDeliverInOrder
;
132 u32 wmanIfCmnCpsArqRxPurgeTimeout
;
133 u32 wmanIfCmnCpsArqBlockSize
;
134 u32 wmanIfCmnCpsMinRsvdTolerableRate
;
135 u32 wmanIfCmnCpsReqTxPolicy
;
136 u32 wmanIfCmnSfCsSpecification
;
137 u32 wmanIfCmnCpsTargetSaid
;
140 struct bcm_mibs_table
{
141 unsigned long ulSFID
;
142 unsigned short usVCID_Value
;
143 unsigned int uiThreshold
;
144 u8 u8TrafficPriority
;
147 bool bActivateRequestSent
;
149 unsigned int uiMaxBucketSize
;
150 unsigned int uiCurrentQueueDepthOnTarget
;
151 unsigned int uiCurrentBytesOnHost
;
152 unsigned int uiCurrentPacketsOnHost
;
153 unsigned int uiDroppedCountBytes
;
154 unsigned int uiDroppedCountPackets
;
155 unsigned int uiSentBytes
;
156 unsigned int uiSentPackets
;
157 unsigned int uiCurrentDrainRate
;
158 unsigned int uiThisPeriodSentBytes
;
159 u64 liDrainCalculated
;
160 unsigned int uiCurrentTokenCount
;
161 u64 liLastUpdateTokenAt
;
162 unsigned int uiMaxAllowedRate
;
163 unsigned int NumOfPacketsSent
;
164 unsigned char ucDirection
;
165 unsigned short usCID
;
166 struct bcm_mibs_parameters stMibsExtServiceFlowTable
;
167 unsigned int uiCurrentRxRate
;
168 unsigned int uiThisPeriodRxBytes
;
169 unsigned int uiTotalRxBytes
;
170 unsigned int uiTotalTxBytes
;
173 struct bcm_mibs_dropped_cntrl_msg
{
174 unsigned long cm_responses
;
175 unsigned long cm_control_newdsx_multiclassifier_resp
;
176 unsigned long link_control_resp
;
177 unsigned long status_rsp
;
178 unsigned long stats_pointer_resp
;
179 unsigned long idle_mode_status
;
180 unsigned long auth_ss_host_msg
;
181 unsigned long low_priority_message
;
184 struct bcm_host_stats_mibs
{
185 struct bcm_mibs_host_info stHostInfo
;
186 struct bcm_mibs_classifier_rule astClassifierTable
[MIBS_MAX_CLASSIFIERS
];
187 struct bcm_mibs_table astSFtable
[MIBS_MAX_SERVICEFLOWS
];
188 struct bcm_mibs_phs_rule astPhsRulesTable
[MIBS_MAX_PHSRULES
];
189 struct bcm_mibs_dropped_cntrl_msg stDroppedAppCntrlMsgs
;