]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - drivers/staging/bcm/cntrl_SignalingInterface.h
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[mirror_ubuntu-bionic-kernel.git] / drivers / staging / bcm / cntrl_SignalingInterface.h
CommitLineData
f8942e07
SH
1#ifndef CNTRL_SIGNALING_INTERFACE_
2#define CNTRL_SIGNALING_INTERFACE_
3
4
f8942e07
SH
5
6
7#define DSA_REQ 11
8#define DSA_RSP 12
9#define DSA_ACK 13
10#define DSC_REQ 14
11#define DSC_RSP 15
12#define DSC_ACK 16
13#define DSD_REQ 17
14#define DSD_RSP 18
15#define DSD_ACK 19
16#define MAX_CLASSIFIERS_IN_SF 4
17
f8942e07
SH
18
19#define MAX_STRING_LEN 20
20#define MAX_PHS_LENGTHS 255
21#define VENDOR_PHS_PARAM_LENGTH 10
22#define MAX_NUM_ACTIVE_BS 10
23#define AUTH_TOKEN_LENGTH 10
25985edc 24#define NUM_HARQ_CHANNELS 16 //Changed from 10 to 16 to accommodate all HARQ channels
f8942e07
SH
25#define VENDOR_CLASSIFIER_PARAM_LENGTH 1 //Changed the size to 1 byte since we dnt use it
26#define VENDOR_SPECIF_QOS_PARAM 1
27#define VENDOR_PHS_PARAM_LENGTH 10
28#define MBS_CONTENTS_ID_LENGTH 10
29#define GLOBAL_SF_CLASSNAME_LENGTH 6
30
31#define TYPE_OF_SERVICE_LENGTH 3
32#define IP_MASKED_SRC_ADDRESS_LENGTH 32
33#define IP_MASKED_DEST_ADDRESS_LENGTH 32
34#define PROTOCOL_SRC_PORT_RANGE_LENGTH 4
35#define PROTOCOL_DEST_PORT_RANGE_LENGTH 4
36#define ETHERNET_DEST_MAC_ADDR_LENGTH 12
37#define ETHERNET_SRC_MAC_ADDR_LENGTH 12
38#define NUM_ETHERTYPE_BYTES 3
39#define NUM_IPV6_FLOWLABLE_BYTES 3
40
41
42////////////////////////////////////////////////////////////////////////////////
43////////////////////////structure Definitions///////////////////////////////////
44////////////////////////////////////////////////////////////////////////////////
45/// \brief class cCPacketClassificationRule
f8942e07 46struct _stCPacketClassificationRuleSI{
f8942e07
SH
47
48 /** 16bit UserPriority Of The Service Flow*/
49 B_UINT16 u16UserPriority;
50 /** 16bit VLANID Of The Service Flow*/
51 B_UINT16 u16VLANID;
52 /** 16bit Packet Classification RuleIndex Of The Service Flow*/
53 B_UINT16 u16PacketClassificationRuleIndex;
54 /** 8bit Classifier Rule Priority Of The Service Flow*/
55 B_UINT8 u8ClassifierRulePriority;
56 /** Length of IP TypeOfService field*/
57 B_UINT8 u8IPTypeOfServiceLength;
58 /** 3bytes IP TypeOfService */
59 B_UINT8 u8IPTypeOfService[TYPE_OF_SERVICE_LENGTH];
60 /** Protocol used in classification of Service Flow*/
61 B_UINT8 u8Protocol;
62 /** Length of IP Masked Source Address */
63 B_UINT8 u8IPMaskedSourceAddressLength;
64 /** IP Masked Source Address used in classification for the Service Flow*/
65 B_UINT8 u8IPMaskedSourceAddress[IP_MASKED_SRC_ADDRESS_LENGTH];
66 /** Length of IP Destination Address */
67 B_UINT8 u8IPDestinationAddressLength;
68 /** IP Destination Address used in classification for the Service Flow*/
69 B_UINT8 u8IPDestinationAddress[IP_MASKED_DEST_ADDRESS_LENGTH];
70 /** Length of Protocol Source Port Range */
71 B_UINT8 u8ProtocolSourcePortRangeLength;
72 /** Protocol Source Port Range used in the Service Flow*/
73 B_UINT8 u8ProtocolSourcePortRange[PROTOCOL_SRC_PORT_RANGE_LENGTH];
74 /** Length of Protocol Dest Port Range */
75 B_UINT8 u8ProtocolDestPortRangeLength;
76 /** Protocol Dest Port Range used in the Service Flow*/
77 B_UINT8 u8ProtocolDestPortRange[PROTOCOL_DEST_PORT_RANGE_LENGTH];
78 /** Length of Ethernet Destination MAC Address */
79 B_UINT8 u8EthernetDestMacAddressLength;
80 /** Ethernet Destination MAC Address used in classification of the Service Flow*/
81 B_UINT8 u8EthernetDestMacAddress[ETHERNET_DEST_MAC_ADDR_LENGTH];
82 /** Length of Ethernet Source MAC Address */
83 B_UINT8 u8EthernetSourceMACAddressLength;
84 /** Ethernet Source MAC Address used in classification of the Service Flow*/
85 B_UINT8 u8EthernetSourceMACAddress[ETHERNET_SRC_MAC_ADDR_LENGTH];
86 /** Length of Ethertype */
87 B_UINT8 u8EthertypeLength;
88 /** 3bytes Ethertype Of The Service Flow*/
89 B_UINT8 u8Ethertype[NUM_ETHERTYPE_BYTES];
90 /** 8bit Associated PHSI Of The Service Flow*/
91 B_UINT8 u8AssociatedPHSI;
92 /** Length of Vendor Specific Classifier Param length Of The Service Flow*/
93 B_UINT8 u8VendorSpecificClassifierParamLength;
94 /** Vendor Specific Classifier Param Of The Service Flow*/
95 B_UINT8 u8VendorSpecificClassifierParam[VENDOR_CLASSIFIER_PARAM_LENGTH];
96 /** Length Of IPv6 Flow Lable of the Service Flow*/
97 B_UINT8 u8IPv6FlowLableLength;
98 /** IPv6 Flow Lable Of The Service Flow*/
99 B_UINT8 u8IPv6FlowLable[NUM_IPV6_FLOWLABLE_BYTES];
100 /** Action associated with the classifier rule*/
101 B_UINT8 u8ClassifierActionRule;
102 B_UINT16 u16ValidityBitMap;
103};
f8942e07 104typedef struct _stCPacketClassificationRuleSI CCPacketClassificationRuleSI,stCPacketClassificationRuleSI, *pstCPacketClassificationRuleSI;
f8942e07
SH
105
106/// \brief class CPhsRuleSI
f8942e07 107typedef struct _stPhsRuleSI {
f8942e07
SH
108 /** 8bit PHS Index Of The Service Flow*/
109 B_UINT8 u8PHSI;
110 /** PHSF Length Of The Service Flow*/
111 B_UINT8 u8PHSFLength;
25985edc 112 /** String of bytes containing header information to be suppressed by the sending CS and reconstructed by the receiving CS*/
f8942e07
SH
113 B_UINT8 u8PHSF[MAX_PHS_LENGTHS];
114 /** PHSM Length Of The Service Flow*/
115 B_UINT8 u8PHSMLength;
116 /** PHS Mask for the SF*/
117 B_UINT8 u8PHSM[MAX_PHS_LENGTHS];
25985edc 118 /** 8bit Total number of bytes to be suppressed for the Service Flow*/
f8942e07 119 B_UINT8 u8PHSS;
f922ffc0 120 /** 8bit Indicates whether or not Packet Header contents need to be verified prior to suppression */
f8942e07
SH
121 B_UINT8 u8PHSV;
122 /** Vendor Specific PHS param Length Of The Service Flow*/
123 B_UINT8 u8VendorSpecificPHSParamsLength;
124 /** Vendor Specific PHS param Of The Service Flow*/
125 B_UINT8 u8VendorSpecificPHSParams[VENDOR_PHS_PARAM_LENGTH];
126
127 B_UINT8 u8Padding[2];
f8942e07
SH
128}stPhsRuleSI,*pstPhsRuleSI;
129typedef stPhsRuleSI CPhsRuleSI;
f8942e07
SH
130
131/// \brief structure cConvergenceSLTypes
f8942e07 132struct _stConvergenceSLTypes{
f8942e07
SH
133 /** 8bit Phs Classfier Action Of The Service Flow*/
134 B_UINT8 u8ClassfierDSCAction;
135 /** 8bit Phs DSC Action Of The Service Flow*/
136 B_UINT8 u8PhsDSCAction;
137 /** 16bit Padding */
138 B_UINT8 u8Padding[2];
139 /// \brief class cCPacketClassificationRule
f8942e07 140 stCPacketClassificationRuleSI cCPacketClassificationRule;
f8942e07 141 /// \brief class CPhsRuleSI
f8942e07 142 struct _stPhsRuleSI cPhsRule;
f8942e07 143};
f8942e07 144typedef struct _stConvergenceSLTypes stConvergenceSLTypes,CConvergenceSLTypes, *pstConvergenceSLTypes;
f8942e07
SH
145
146
147/// \brief structure CServiceFlowParamSI
f8942e07 148typedef struct _stServiceFlowParamSI{
f8942e07
SH
149
150 /** 32bitSFID Of The Service Flow*/
151 B_UINT32 u32SFID;
152
153 /** 32bit Maximum Sustained Traffic Rate of the Service Flow*/
154 B_UINT32 u32MaxSustainedTrafficRate;
155
156 /** 32bit Maximum Traffic Burst allowed for the Service Flow*/
157 B_UINT32 u32MaxTrafficBurst;
158
159 /** 32bit Minimum Reserved Traffic Rate of the Service Flow*/
160 B_UINT32 u32MinReservedTrafficRate;
161
162 /** 32bit Tolerated Jitter of the Service Flow*/
163 B_UINT32 u32ToleratedJitter;
164
165 /** 32bit Maximum Latency of the Service Flow*/
166 B_UINT32 u32MaximumLatency;
167
168 /** 16bitCID Of The Service Flow*/
169 B_UINT16 u16CID;
170
171 /** 16bit SAID on which the service flow being set up shall be mapped*/
172 B_UINT16 u16TargetSAID;
173
174 /** 16bit ARQ window size negotiated*/
175 B_UINT16 u16ARQWindowSize;
176
177 /** 16bit Total Tx delay incl sending, receiving & processing delays */
178 B_UINT16 u16ARQRetryTxTimeOut;
179
180 /** 16bit Total Rx delay incl sending, receiving & processing delays */
181 B_UINT16 u16ARQRetryRxTimeOut;
182
183 /** 16bit ARQ block lifetime */
184 B_UINT16 u16ARQBlockLifeTime;
185
186 /** 16bit ARQ Sync loss timeout*/
187 B_UINT16 u16ARQSyncLossTimeOut;
188
189 /** 16bit ARQ Purge timeout */
190 B_UINT16 u16ARQRxPurgeTimeOut;
f8942e07
SH
191//TODO::Remove this once we move to a new CORR2 driver
192 /// \brief Size of an ARQ block
193 B_UINT16 u16ARQBlockSize;
194
195//#endif
196 /** 16bit Nominal interval b/w consecutive SDU arrivals at MAC SAP*/
197 B_UINT16 u16SDUInterArrivalTime;
198
199 /** 16bit Specifies the time base for rate measurement */
200 B_UINT16 u16TimeBase;
201
202 /** 16bit Interval b/w Successive Grant oppurtunities*/
203 B_UINT16 u16UnsolicitedGrantInterval;
204
205 /** 16bit Interval b/w Successive Polling grant oppurtunities*/
206 B_UINT16 u16UnsolicitedPollingInterval;
207
208 /** internal var to get the overhead */
209 B_UINT16 u16MacOverhead;
210
211 /** MBS contents Identifier*/
212 B_UINT16 u16MBSContentsID[MBS_CONTENTS_ID_LENGTH];
213
214 /** MBS contents Identifier length*/
215 B_UINT8 u8MBSContentsIDLength;
216
217 /** ServiceClassName Length Of The Service Flow*/
218 B_UINT8 u8ServiceClassNameLength;
219
220 /** 32bytes ServiceClassName Of The Service Flow*/
221 B_UINT8 u8ServiceClassName[32];
222
223 /** 8bit Indicates whether or not MBS service is requested for this Serivce Flow*/
224 B_UINT8 u8MBSService;
225
226 /** 8bit QOS Parameter Set specifies proper application of QoS paramters to Provisioned, Admitted and Active sets*/
227 B_UINT8 u8QosParamSet;
228
229 /** 8bit Traffic Priority Of the Service Flow */
230 B_UINT8 u8TrafficPriority;
231
232 /** 8bit Uplink Grant Scheduling Type of The Service Flow */
233 B_UINT8 u8ServiceFlowSchedulingType;
234
235 /** 8bit Request transmission Policy of the Service Flow*/
236 B_UINT8 u8RequesttransmissionPolicy;
237
238 /** 8bit Specifies whether SDUs for this Service flow are of FixedLength or Variable length */
239 B_UINT8 u8FixedLengthVSVariableLengthSDUIndicator;
240
241 /** 8bit Length of the SDU for a fixed length SDU service flow*/
242 B_UINT8 u8SDUSize;
243
244 /** 8bit Indicates whether or not ARQ is requested for this connection*/
245 B_UINT8 u8ARQEnable;
246
247 /**< 8bit Indicates whether or not data has tobe delivered in order to higher layer*/
248 B_UINT8 u8ARQDeliverInOrder;
249
250 /** 8bit Receiver ARQ ACK processing time */
251 B_UINT8 u8RxARQAckProcessingTime;
252
253 /** 8bit Convergence Sublayer Specification Of The Service Flow*/
254 B_UINT8 u8CSSpecification;
255
256 /** 8 bit Type of data delivery service*/
257 B_UINT8 u8TypeOfDataDeliveryService;
258
259 /** 8bit Specifies whether a service flow may generate Paging */
260 B_UINT8 u8PagingPreference;
261
262 /** 8bit Indicates the MBS Zone through which the connection or virtual connection is valid */
263 B_UINT8 u8MBSZoneIdentifierassignment;
264
265 /** 8bit Specifies whether traffic on SF should generate MOB_TRF_IND to MS in sleep mode*/
266 B_UINT8 u8TrafficIndicationPreference;
267
268 /** 8bit Speciifes the length of predefined Global QoS parameter set encoding for this SF */
269 B_UINT8 u8GlobalServicesClassNameLength;
270
271 /** 6 byte Speciifes the predefined Global QoS parameter set encoding for this SF */
272 B_UINT8 u8GlobalServicesClassName[GLOBAL_SF_CLASSNAME_LENGTH];
273
274 /** 8bit Indicates whether or not SN feedback is enabled for the conn */
275 B_UINT8 u8SNFeedbackEnabled;
276
277 /** Indicates the size of the Fragment Sequence Number for the connection */
278 B_UINT8 u8FSNSize;
279
280 /** 8bit Number of CIDs in active BS list */
281 B_UINT8 u8CIDAllocation4activeBSsLength;
282
283 /** CIDs of BS in the active list */
284 B_UINT8 u8CIDAllocation4activeBSs[MAX_NUM_ACTIVE_BS];
285
286 /** Specifies if PDU extended subheader should be applied on every PDU on this conn*/
287 B_UINT8 u8PDUSNExtendedSubheader4HarqReordering;
288
289 /** 8bit Specifies whether the connection uses HARQ or not */
290 B_UINT8 u8HARQServiceFlows;
291
292 /** Specifies the length of Authorization token*/
293 B_UINT8 u8AuthTokenLength;
294
295 /** Specifies the Authorization token*/
296 B_UINT8 u8AuthToken[AUTH_TOKEN_LENGTH];
297
298 /** specifes Number of HARQ channels used to carry data length*/
299 B_UINT8 u8HarqChannelMappingLength;
300
301 /** specifes HARQ channels used to carry data*/
302 B_UINT8 u8HARQChannelMapping[NUM_HARQ_CHANNELS];
303
304 /** 8bit Length of Vendor Specific QoS Params */
305 B_UINT8 u8VendorSpecificQoSParamLength;
306
307 /** 1byte Vendor Specific QoS Param Of The Service Flow*/
308 B_UINT8 u8VendorSpecificQoSParam[VENDOR_SPECIF_QOS_PARAM];
309
310 // indicates total classifiers in the SF
311 B_UINT8 u8TotalClassifiers; /**< Total number of valid classifiers*/
312 B_UINT8 bValid; /**< Validity flag */
313 B_UINT8 u8Padding; /**< Padding byte*/
314
f8942e07
SH
315/**
316Structure for Convergence SubLayer Types with a maximum of 4 classifiers
317*/
318 stConvergenceSLTypes cConvergenceSLTypes[MAX_CLASSIFIERS_IN_SF];
f8942e07 319
f8942e07
SH
320} stServiceFlowParamSI, *pstServiceFlowParamSI;
321typedef stServiceFlowParamSI CServiceFlowParamSI;
f8942e07
SH
322
323/**
324structure stLocalSFAddRequest
325*/
326typedef struct _stLocalSFAddRequest{
f8942e07
SH
327
328 B_UINT8 u8Type; /**< Type*/
329 B_UINT8 eConnectionDir; /**< Connection direction*/
330 /// \brief 16 bit TID
331 B_UINT16 u16TID; /**< 16bit TID*/
332 /// \brief 16bitCID
333 B_UINT16 u16CID; /**< 16bit CID*/
334 /// \brief 16bitVCID
335 B_UINT16 u16VCID; /**< 16bit VCID*/
336 /// \brief structure ParameterSet
f8942e07 337
f8942e07 338 stServiceFlowParamSI *psfParameterSet; /**< structure ParameterSet*/
f8942e07 339
f8942e07
SH
340}stLocalSFAddRequest, *pstLocalSFAddRequest;
341
342
343/**
344structure stLocalSFAddIndication
345*/
346typedef struct _stLocalSFAddIndication{
f8942e07
SH
347
348 B_UINT8 u8Type; /**< Type*/
349 B_UINT8 eConnectionDir; /**< Connection Direction*/
350 /// \brief 16 bit TID
351 B_UINT16 u16TID; /**< TID*/
352 /// \brief 16bitCID
353 B_UINT16 u16CID; /**< 16bitCID*/
354 /// \brief 16bitVCID
355 B_UINT16 u16VCID; /**< 16bitVCID*/
356
f8942e07
SH
357
358 /// \brief structure AuthorizedSet
f8942e07
SH
359 /// \brief structure AuthorizedSet
360 stServiceFlowParamSI *psfAuthorizedSet; /**< AuthorizedSet of type stServiceFlowParamSI*/
361 /// \brief structure AdmittedSet
362 stServiceFlowParamSI *psfAdmittedSet; /**< AdmittedSet of type stServiceFlowParamSI*/
363 /// \brief structure ActiveSet
364 stServiceFlowParamSI *psfActiveSet; /**< sfActiveSet of type stServiceFlowParamSI*/
f8942e07
SH
365 B_UINT8 u8CC; /**< Confirmation Code*/
366 B_UINT8 u8Padd; /**< 8-bit Padding */
367
368 B_UINT16 u16Padd; /**< 16 bit Padding */
369
f8942e07
SH
370}stLocalSFAddIndication;
371
372
373typedef struct _stLocalSFAddIndication *pstLocalSFAddIndication;
374/**
375structure stLocalSFChangeRequest is same as structure stLocalSFAddIndication
376*/
377typedef struct _stLocalSFAddIndication stLocalSFChangeRequest, *pstLocalSFChangeRequest;
378/**
379structure stLocalSFChangeIndication is same as structure stLocalSFAddIndication
380*/
381typedef struct _stLocalSFAddIndication stLocalSFChangeIndication, *pstLocalSFChangeIndication;
382
383/**
384structure stLocalSFDeleteRequest
385*/
386typedef struct _stLocalSFDeleteRequest{
f8942e07
SH
387 B_UINT8 u8Type; /**< Type*/
388 B_UINT8 u8Padding; /**< Padding byte*/
389 B_UINT16 u16TID; /**< TID*/
390 /// \brief 32bitSFID
391 B_UINT32 u32SFID; /**< SFID*/
f8942e07
SH
392}stLocalSFDeleteRequest, *pstLocalSFDeleteRequest;
393
394/**
395structure stLocalSFDeleteIndication
396*/
397typedef struct stLocalSFDeleteIndication{
f8942e07
SH
398 B_UINT8 u8Type; /**< Type */
399 B_UINT8 u8Padding; /**< Padding */
400 B_UINT16 u16TID; /**< TID */
401 /// \brief 16bitCID
402 B_UINT16 u16CID; /**< CID */
403 /// \brief 16bitVCID
404 B_UINT16 u16VCID; /**< VCID */
405 /// \brief 32bitSFID
406 B_UINT32 u32SFID; /**< SFID */
407 /// \brief 8bit Confirmation code
408 B_UINT8 u8ConfirmationCode; /**< Confirmation code */
409 B_UINT8 u8Padding1[3]; /**< 3 byte Padding */
f8942e07
SH
410}stLocalSFDeleteIndication;
411
412typedef struct _stIM_SFHostNotify
413{
414 B_UINT32 SFID; //SFID of the service flow
415 B_UINT16 newCID; //the new/changed CID
416 B_UINT16 VCID; //Get new Vcid if the flow has been made active in CID update TLV, but was inactive earlier or the orig vcid
417 B_UINT8 RetainSF; //Indication to Host if the SF is to be retained or deleted; if TRUE-retain else delete
418 B_UINT8 QoSParamSet; //QoS paramset of the retained SF
419 B_UINT16 u16reserved; //For byte alignment
420
421} stIM_SFHostNotify;
422
423#endif