]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - drivers/staging/bcm/HostMIBSInterface.h
Fix common misspellings
[mirror_ubuntu-bionic-kernel.git] / drivers / staging / bcm / HostMIBSInterface.h
CommitLineData
f8942e07
SH
1
2
3#ifndef _HOST_MIBSINTERFACE_H
4#define _HOST_MIBSINTERFACE_H
5
6/*
7 * Copyright (c) 2007 Beceem Communications Pvt. Ltd
8 * File Name: HostMIBSInterface.h
9 * Abstract: This file contains DS used by the Host to update the Host
10 * statistics used for the MIBS.
11 */
12
13#define MIBS_MAX_CLASSIFIERS 100
14#define MIBS_MAX_PHSRULES 100
15#define MIBS_MAX_SERVICEFLOWS 17
16#define MIBS_MAX_IP_RANGE_LENGTH 4
17#define MIBS_MAX_PORT_RANGE 4
18#define MIBS_MAX_PROTOCOL_LENGTH 32
19#define MIBS_MAX_PHS_LENGTHS 255
20#define MIBS_IPV6_ADDRESS_SIZEINBYTES 0x10
21#define MIBS_IP_LENGTH_OF_ADDRESS 4
22#define MIBS_MAX_HIST_ENTRIES 12
23#define MIBS_PKTSIZEHIST_RANGE 128
24
25typedef union _U_MIBS_IP_ADDRESS
26{
27 struct
28 {
29 //Source Ip Address Range
30 ULONG ulIpv4Addr[MIBS_MAX_IP_RANGE_LENGTH];
31 //Source Ip Mask Address Range
32 ULONG ulIpv4Mask[MIBS_MAX_IP_RANGE_LENGTH];
33 };
34 struct
35 {
36 //Source Ip Address Range
37 ULONG ulIpv6Addr[MIBS_MAX_IP_RANGE_LENGTH * 4];
38 //Source Ip Mask Address Range
39 ULONG ulIpv6Mask[MIBS_MAX_IP_RANGE_LENGTH * 4];
40
41 };
42 struct
43 {
44 UCHAR ucIpv4Address[MIBS_MAX_IP_RANGE_LENGTH *
45 MIBS_IP_LENGTH_OF_ADDRESS];
46 UCHAR ucIpv4Mask[MIBS_MAX_IP_RANGE_LENGTH *
47 MIBS_IP_LENGTH_OF_ADDRESS];
48 };
49 struct
50 {
51 UCHAR ucIpv6Address[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IPV6_ADDRESS_SIZEINBYTES];
52 UCHAR ucIpv6Mask[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IPV6_ADDRESS_SIZEINBYTES];
53 };
54}U_MIBS_IP_ADDRESS;
55
56
57typedef struct _S_MIBS_HOST_INFO
58{
59 ULONG64 GoodTransmits;
60 ULONG64 GoodReceives;
61 // this to keep track of the Tx and Rx MailBox Registers.
62 ULONG NumDesUsed;
63 ULONG CurrNumFreeDesc;
64 ULONG PrevNumFreeDesc;
25985edc 65 // to keep track the no of byte received
f8942e07
SH
66 ULONG PrevNumRcevBytes;
67 ULONG CurrNumRcevBytes;
68
69 /* QOS Related */
70 ULONG BEBucketSize;
71 ULONG rtPSBucketSize;
72 ULONG LastTxQueueIndex;
73 BOOLEAN TxOutofDescriptors;
74 BOOLEAN TimerActive;
75 UINT32 u32TotalDSD;
76 UINT32 aTxPktSizeHist[MIBS_MAX_HIST_ENTRIES];
77 UINT32 aRxPktSizeHist[MIBS_MAX_HIST_ENTRIES];
78}S_MIBS_HOST_INFO;
79
80typedef struct _S_MIBS_CLASSIFIER_RULE
81{
82 ULONG ulSFID;
83 UCHAR ucReserved[2];
84 B_UINT16 uiClassifierRuleIndex;
85 BOOLEAN bUsed;
86 USHORT usVCID_Value;
87 // This field detemines the Classifier Priority
88 B_UINT8 u8ClassifierRulePriority;
89 U_MIBS_IP_ADDRESS stSrcIpAddress;
90 /*IP Source Address Length*/
91 UCHAR ucIPSourceAddressLength;
92
93 U_MIBS_IP_ADDRESS stDestIpAddress;
94 /* IP Destination Address Length */
95 UCHAR ucIPDestinationAddressLength;
96 UCHAR ucIPTypeOfServiceLength;//Type of service Length
97 UCHAR ucTosLow;//Tos Low
98 UCHAR ucTosHigh;//Tos High
99 UCHAR ucTosMask;//Tos Mask
100 UCHAR ucProtocolLength;//protocol Length
101 UCHAR ucProtocol[MIBS_MAX_PROTOCOL_LENGTH];//protocol Length
102 USHORT usSrcPortRangeLo[MIBS_MAX_PORT_RANGE];
103 USHORT usSrcPortRangeHi[MIBS_MAX_PORT_RANGE];
104 UCHAR ucSrcPortRangeLength;
105 USHORT usDestPortRangeLo[MIBS_MAX_PORT_RANGE];
106 USHORT usDestPortRangeHi[MIBS_MAX_PORT_RANGE];
107 UCHAR ucDestPortRangeLength;
108 BOOLEAN bProtocolValid;
109 BOOLEAN bTOSValid;
110 BOOLEAN bDestIpValid;
111 BOOLEAN bSrcIpValid;
112 UCHAR ucDirection;
113 BOOLEAN bIpv6Protocol;
114 UINT32 u32PHSRuleID;
115}S_MIBS_CLASSIFIER_RULE;
116
117
118typedef struct _S_MIBS_PHS_RULE
119{
120 ULONG ulSFID;
121 /// brief 8bit PHSI Of The Service Flow
122 B_UINT8 u8PHSI;
123 /// brief PHSF Of The Service Flow
124 B_UINT8 u8PHSFLength;
125 B_UINT8 u8PHSF[MIBS_MAX_PHS_LENGTHS];
126 /// brief PHSM Of The Service Flow
127 B_UINT8 u8PHSMLength;
128 B_UINT8 u8PHSM[MIBS_MAX_PHS_LENGTHS];
129 /// brief 8bit PHSS Of The Service Flow
130 B_UINT8 u8PHSS;
131 /// brief 8bit PHSV Of The Service Flow
132 B_UINT8 u8PHSV;
133 // Reserved bytes are 5, so that it is similar to S_PHS_RULE structure.
134 B_UINT8 reserved[5];
135
136 LONG PHSModifiedBytes;
137 ULONG PHSModifiedNumPackets;
138 ULONG PHSErrorNumPackets;
139}S_MIBS_PHS_RULE;
140
141typedef struct _S_MIBS_EXTSERVICEFLOW_PARAMETERS
142{
143 UINT32 wmanIfSfid;
144 UINT32 wmanIfCmnCpsSfState;
145 UINT32 wmanIfCmnCpsMaxSustainedRate;
146 UINT32 wmanIfCmnCpsMaxTrafficBurst;
147 UINT32 wmanIfCmnCpsMinReservedRate;
148 UINT32 wmanIfCmnCpsToleratedJitter;
149 UINT32 wmanIfCmnCpsMaxLatency;
150 UINT32 wmanIfCmnCpsFixedVsVariableSduInd;
151 UINT32 wmanIfCmnCpsSduSize;
152 UINT32 wmanIfCmnCpsSfSchedulingType;
153 UINT32 wmanIfCmnCpsArqEnable;
154 UINT32 wmanIfCmnCpsArqWindowSize;
155 UINT32 wmanIfCmnCpsArqBlockLifetime;
156 UINT32 wmanIfCmnCpsArqSyncLossTimeout;
157 UINT32 wmanIfCmnCpsArqDeliverInOrder;
158 UINT32 wmanIfCmnCpsArqRxPurgeTimeout;
159 UINT32 wmanIfCmnCpsArqBlockSize;
160 UINT32 wmanIfCmnCpsMinRsvdTolerableRate;
161 UINT32 wmanIfCmnCpsReqTxPolicy;
162 UINT32 wmanIfCmnSfCsSpecification;
163 UINT32 wmanIfCmnCpsTargetSaid;
164
165}S_MIBS_EXTSERVICEFLOW_PARAMETERS;
166
167
168typedef struct _S_MIBS_SERVICEFLOW_TABLE
169{
170 //classification extension Rule
171 ULONG ulSFID;
172 USHORT usVCID_Value;
173 UINT uiThreshold;
174 // This field determines the priority of the SF Queues
175 B_UINT8 u8TrafficPriority;
176
177 BOOLEAN bValid;
178 BOOLEAN bActive;
179 BOOLEAN bActivateRequestSent;
180 //BE or rtPS
181 B_UINT8 u8QueueType;
182 //maximum size of the bucket for the queue
183 UINT uiMaxBucketSize;
184 UINT uiCurrentQueueDepthOnTarget;
185 UINT uiCurrentBytesOnHost;
186 UINT uiCurrentPacketsOnHost;
187 UINT uiDroppedCountBytes;
188 UINT uiDroppedCountPackets;
189 UINT uiSentBytes;
190 UINT uiSentPackets;
191 UINT uiCurrentDrainRate;
192 UINT uiThisPeriodSentBytes;
193 LARGE_INTEGER liDrainCalculated;
194 UINT uiCurrentTokenCount;
195 LARGE_INTEGER liLastUpdateTokenAt;
196 UINT uiMaxAllowedRate;
197 UINT NumOfPacketsSent;
198 UCHAR ucDirection;
199 USHORT usCID;
200 S_MIBS_EXTSERVICEFLOW_PARAMETERS stMibsExtServiceFlowTable;
201 UINT uiCurrentRxRate;
202 UINT uiThisPeriodRxBytes;
203 UINT uiTotalRxBytes;
204 UINT uiTotalTxBytes;
205}S_MIBS_SERVICEFLOW_TABLE;
206
207typedef struct _S_MIBS_DROPPED_APP_CNTRL_MESSAGES
208{
209 ULONG cm_responses;
210 ULONG cm_control_newdsx_multiclassifier_resp;
211 ULONG link_control_resp;
212 ULONG status_rsp;
213 ULONG stats_pointer_resp;
214 ULONG idle_mode_status;
215 ULONG auth_ss_host_msg;
216 ULONG low_priority_message;
217
218}S_MIBS_DROPPED_APP_CNTRL_MESSAGES;
219
220typedef struct _S_MIBS_HOST_STATS_MIBS
221{
222 S_MIBS_HOST_INFO stHostInfo;
223 S_MIBS_CLASSIFIER_RULE astClassifierTable[MIBS_MAX_CLASSIFIERS];
224 S_MIBS_SERVICEFLOW_TABLE astSFtable[MIBS_MAX_SERVICEFLOWS];
225 S_MIBS_PHS_RULE astPhsRulesTable[MIBS_MAX_PHSRULES];
226 S_MIBS_DROPPED_APP_CNTRL_MESSAGES stDroppedAppCntrlMsgs;
227}S_MIBS_HOST_STATS_MIBS;
228#endif
229
230