Merge tag 'gpio-v3.13-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
[linux-2.6.git] / drivers / staging / bcm / HostMIBSInterface.h
blobf922ac49b70eb503fbb19e53d1d6bc9066f62a46
1 #ifndef _HOST_MIBSINTERFACE_H
2 #define _HOST_MIBSINTERFACE_H
4 /*
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.
9 */
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 {
24 struct {
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];
30 struct {
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];
36 struct {
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];
40 struct {
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 {
47 u64 GoodTransmits;
48 u64 GoodReceives;
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;
56 /* QOS Related */
57 unsigned long BEBucketSize;
58 unsigned long rtPSBucketSize;
59 unsigned long LastTxQueueIndex;
60 bool TxOutofDescriptors;
61 bool TimerActive;
62 u32 u32TotalDSD;
63 u32 aTxPktSizeHist[MIBS_MAX_HIST_ENTRIES];
64 u32 aRxPktSizeHist[MIBS_MAX_HIST_ENTRIES];
67 struct bcm_mibs_classifier_rule {
68 unsigned long ulSFID;
69 unsigned char ucReserved[2];
70 u16 uiClassifierRuleIndex;
71 bool bUsed;
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;
92 bool bProtocolValid;
93 bool bTOSValid;
94 bool bDestIpValid;
95 bool bSrcIpValid;
96 unsigned char ucDirection;
97 bool bIpv6Protocol;
98 u32 u32PHSRuleID;
101 struct bcm_mibs_phs_rule {
102 unsigned long ulSFID;
103 u8 u8PHSI;
104 u8 u8PHSFLength;
105 u8 u8PHSF[MIBS_MAX_PHS_LENGTHS];
106 u8 u8PHSMLength;
107 u8 u8PHSM[MIBS_MAX_PHS_LENGTHS];
108 u8 u8PHSS;
109 u8 u8PHSV;
110 u8 reserved[5];
111 long PHSModifiedBytes;
112 unsigned long PHSModifiedNumPackets;
113 unsigned long PHSErrorNumPackets;
116 struct bcm_mibs_parameters {
117 u32 wmanIfSfid;
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;
145 bool bValid;
146 bool bActive;
147 bool bActivateRequestSent;
148 u8 u8QueueType;
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;
192 #endif