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