4cbe30022248070a4e772920914faefc5d694a46
[pandora-kernel.git] / drivers / staging / bcm / cntrl_SignalingInterface.h
1 #ifndef CNTRL_SIGNALING_INTERFACE_
2 #define CNTRL_SIGNALING_INTERFACE_
3
4
5 #ifdef BECEEM_TARGET
6
7 #include <mac_common.h>
8 #include <msg_Dsa.h>
9 #include <msg_Dsc.h>
10 #include <msg_Dsd.h>
11 #include <sch_definitions.h>
12 using namespace Beceem;
13 #ifdef ENABLE_CORRIGENDUM2_UPDATE
14 extern B_UINT32 g_u32Corr2MacFlags;
15 #endif
16
17 #else
18
19
20 #define DSA_REQ 11
21 #define DSA_RSP 12
22 #define DSA_ACK 13
23 #define DSC_REQ 14
24 #define DSC_RSP 15
25 #define DSC_ACK 16
26 #define DSD_REQ 17
27 #define DSD_RSP 18
28 #define DSD_ACK 19
29 #define MAX_CLASSIFIERS_IN_SF  4
30
31 #endif
32
33 #define MAX_STRING_LEN 20
34 #define MAX_PHS_LENGTHS 255
35 #define VENDOR_PHS_PARAM_LENGTH 10
36 #define MAX_NUM_ACTIVE_BS 10
37 #define AUTH_TOKEN_LENGTH       10
38 #define NUM_HARQ_CHANNELS       16      //Changed from 10 to 16 to accomodate all HARQ channels
39 #define VENDOR_CLASSIFIER_PARAM_LENGTH 1 //Changed the size to 1 byte since we dnt use it
40 #define  VENDOR_SPECIF_QOS_PARAM 1
41 #define VENDOR_PHS_PARAM_LENGTH 10
42 #define MBS_CONTENTS_ID_LENGTH  10
43 #define GLOBAL_SF_CLASSNAME_LENGTH 6
44
45 #define TYPE_OF_SERVICE_LENGTH                          3
46 #define IP_MASKED_SRC_ADDRESS_LENGTH                    32
47 #define IP_MASKED_DEST_ADDRESS_LENGTH           32
48 #define PROTOCOL_SRC_PORT_RANGE_LENGTH          4
49 #define PROTOCOL_DEST_PORT_RANGE_LENGTH         4
50 #define ETHERNET_DEST_MAC_ADDR_LENGTH           12
51 #define ETHERNET_SRC_MAC_ADDR_LENGTH            12
52 #define NUM_ETHERTYPE_BYTES  3
53 #define NUM_IPV6_FLOWLABLE_BYTES 3
54
55
56 ////////////////////////////////////////////////////////////////////////////////
57 ////////////////////////structure Definitions///////////////////////////////////
58 ////////////////////////////////////////////////////////////////////////////////
59 /// \brief class cCPacketClassificationRule
60 #ifdef BECEEM_TARGET
61 class CCPacketClassificationRuleSI{
62         public:
63                 /// \brief Constructor for the class
64         CCPacketClassificationRuleSI():
65                 u8ClassifierRulePriority(mClassifierRulePriority),
66                 u8IPTypeOfServiceLength(mIPTypeOfService),
67                 u8Protocol(mProtocol),
68                 u8IPMaskedSourceAddressLength(0),
69                 u8IPDestinationAddressLength(0),
70                 u8ProtocolSourcePortRangeLength(0),
71                 u8ProtocolDestPortRangeLength(0),
72                 u8EthernetDestMacAddressLength(0),
73                 u8EthernetSourceMACAddressLength(0),
74                 u8EthertypeLength(0),
75                 u16UserPriority(mUserPriority),
76                 u16VLANID(mVLANID),
77                 u8AssociatedPHSI(mAssociatedPHSI),
78                 u16PacketClassificationRuleIndex(mPacketClassifierRuleIndex),
79                 u8VendorSpecificClassifierParamLength(mVendorSpecificClassifierParamLength),
80                 u8IPv6FlowLableLength(mIPv6FlowLableLength),
81                 u8ClassifierActionRule(mClassifierActionRule)
82
83                 {}
84               void Reset()
85               {
86                     CCPacketClassificationRuleSI();
87               }
88 #else
89 struct _stCPacketClassificationRuleSI{
90 #endif
91
92         /**  16bit UserPriority Of The Service Flow*/
93     B_UINT16                        u16UserPriority;
94         /**  16bit VLANID Of The Service Flow*/
95     B_UINT16                        u16VLANID;
96         /**  16bit Packet Classification RuleIndex Of The Service Flow*/
97     B_UINT16                        u16PacketClassificationRuleIndex;
98         /**  8bit Classifier Rule Priority Of The Service Flow*/
99     B_UINT8                         u8ClassifierRulePriority;
100         /**  Length of IP TypeOfService field*/
101         B_UINT8                         u8IPTypeOfServiceLength;
102         /**  3bytes IP TypeOfService */
103     B_UINT8                         u8IPTypeOfService[TYPE_OF_SERVICE_LENGTH];
104         /** Protocol used in classification of Service Flow*/
105     B_UINT8                         u8Protocol;
106         /**  Length of IP Masked Source Address */
107     B_UINT8                         u8IPMaskedSourceAddressLength;
108         /**  IP Masked Source Address used in classification for the Service Flow*/
109     B_UINT8                         u8IPMaskedSourceAddress[IP_MASKED_SRC_ADDRESS_LENGTH];
110         /**  Length of IP Destination Address */
111     B_UINT8                         u8IPDestinationAddressLength;
112         /**  IP Destination Address used in classification for the Service Flow*/
113     B_UINT8                         u8IPDestinationAddress[IP_MASKED_DEST_ADDRESS_LENGTH];
114         /** Length of Protocol Source Port Range */
115     B_UINT8                         u8ProtocolSourcePortRangeLength;
116         /**  Protocol Source Port Range used in the Service Flow*/
117     B_UINT8                         u8ProtocolSourcePortRange[PROTOCOL_SRC_PORT_RANGE_LENGTH];
118         /** Length of Protocol Dest Port Range */
119     B_UINT8                         u8ProtocolDestPortRangeLength;
120         /**  Protocol Dest Port Range used in the Service Flow*/
121     B_UINT8                         u8ProtocolDestPortRange[PROTOCOL_DEST_PORT_RANGE_LENGTH];
122         /** Length of Ethernet Destination MAC Address  */
123     B_UINT8                         u8EthernetDestMacAddressLength;
124         /**  Ethernet Destination MAC Address  used in classification of the Service Flow*/
125     B_UINT8                         u8EthernetDestMacAddress[ETHERNET_DEST_MAC_ADDR_LENGTH];
126         /** Length of Ethernet Source MAC Address  */
127     B_UINT8                         u8EthernetSourceMACAddressLength;
128         /**  Ethernet Source MAC Address  used in classification of the Service Flow*/
129     B_UINT8                         u8EthernetSourceMACAddress[ETHERNET_SRC_MAC_ADDR_LENGTH];
130         /**  Length of Ethertype */
131         B_UINT8                         u8EthertypeLength;
132         /**  3bytes Ethertype Of The Service Flow*/
133     B_UINT8                         u8Ethertype[NUM_ETHERTYPE_BYTES];
134         /**  8bit Associated PHSI Of The Service Flow*/
135     B_UINT8                         u8AssociatedPHSI;
136         /** Length of Vendor Specific Classifier Param length Of The Service Flow*/
137     B_UINT8                         u8VendorSpecificClassifierParamLength;
138         /**  Vendor Specific Classifier Param Of The Service Flow*/
139     B_UINT8                         u8VendorSpecificClassifierParam[VENDOR_CLASSIFIER_PARAM_LENGTH];
140     /** Length Of IPv6 Flow Lable of the Service Flow*/
141     B_UINT8                         u8IPv6FlowLableLength;
142         /**  IPv6 Flow Lable Of The Service Flow*/
143     B_UINT8                         u8IPv6FlowLable[NUM_IPV6_FLOWLABLE_BYTES];
144         /**  Action associated with the classifier rule*/
145     B_UINT8                                                     u8ClassifierActionRule;
146     B_UINT16                                                    u16ValidityBitMap;
147 };
148 #ifndef BECEEM_TARGET
149 typedef struct _stCPacketClassificationRuleSI CCPacketClassificationRuleSI,stCPacketClassificationRuleSI, *pstCPacketClassificationRuleSI;
150 #endif
151
152 /// \brief class CPhsRuleSI
153 #ifdef BECEEM_TARGET
154 class CPhsRuleSI{
155         public:
156                 /// \brief Constructor for the class
157                 CPhsRuleSI():
158                         u8PHSI(mPHSI),
159                         u8PHSFLength(0),
160                         u8PHSMLength(0),
161                         u8PHSS(mPHSS),
162                         u8PHSV(mPHSV),
163                         u8VendorSpecificPHSParamsLength(mVendorSpecificPHSParamLength){}
164                 void Reset()
165                 {
166                         CPhsRuleSI();
167                 }
168 #else
169 typedef struct _stPhsRuleSI {
170 #endif
171         /**  8bit PHS Index Of The Service Flow*/
172     B_UINT8                         u8PHSI;
173         /**  PHSF Length Of The Service Flow*/
174     B_UINT8                         u8PHSFLength;
175     /** String of bytes containing header information to be supressed by the sending CS and reconstructed by the receiving CS*/
176     B_UINT8                         u8PHSF[MAX_PHS_LENGTHS];
177         /**  PHSM Length Of The Service Flow*/
178     B_UINT8                         u8PHSMLength;
179         /**  PHS Mask for the SF*/
180     B_UINT8                         u8PHSM[MAX_PHS_LENGTHS];
181         /**  8bit Total number of bytes to be supressed for the Service Flow*/
182     B_UINT8                         u8PHSS;
183         /**  8bit Indicates whether or not Packet Header contents need to be verified prior to supression */
184     B_UINT8                         u8PHSV;
185         /**  Vendor Specific PHS param Length Of The Service Flow*/
186     B_UINT8                         u8VendorSpecificPHSParamsLength;
187         /**  Vendor Specific PHS param Of The Service Flow*/
188     B_UINT8                         u8VendorSpecificPHSParams[VENDOR_PHS_PARAM_LENGTH];
189
190         B_UINT8                         u8Padding[2];
191 #ifdef BECEEM_TARGET
192 };
193 #else
194 }stPhsRuleSI,*pstPhsRuleSI;
195 typedef stPhsRuleSI CPhsRuleSI;
196 #endif
197
198 /// \brief structure cConvergenceSLTypes
199 #ifdef BECEEM_TARGET
200 class CConvergenceSLTypes{
201         public:
202                 /// \brief Constructor for the class
203                 CConvergenceSLTypes():
204                 u8ClassfierDSCAction(mClassifierDSCAction),
205                 u8PhsDSCAction  (mPhsDSCAction)
206                 {}
207               void Reset()
208               {
209                     CConvergenceSLTypes();
210                     cCPacketClassificationRule.Reset();
211                     cPhsRule.Reset();
212               }
213 #else
214 struct _stConvergenceSLTypes{
215 #endif
216         /**  8bit Phs Classfier Action Of The Service Flow*/
217     B_UINT8                         u8ClassfierDSCAction;
218         /**  8bit Phs DSC Action Of The Service Flow*/
219     B_UINT8                         u8PhsDSCAction;
220         /**   16bit Padding */
221     B_UINT8                         u8Padding[2];
222     /// \brief class cCPacketClassificationRule
223 #ifdef BECEEM_TARGET
224     CCPacketClassificationRuleSI      cCPacketClassificationRule;
225 #else
226     stCPacketClassificationRuleSI     cCPacketClassificationRule;
227 #endif
228     /// \brief class CPhsRuleSI
229 #ifdef BECEEM_TARGET
230     CPhsRuleSI                          cPhsRule;
231 #else
232      struct _stPhsRuleSI                cPhsRule;
233 #endif
234 };
235 #ifndef BECEEM_TARGET
236 typedef struct _stConvergenceSLTypes stConvergenceSLTypes,CConvergenceSLTypes, *pstConvergenceSLTypes;
237 #endif
238
239
240 /// \brief structure CServiceFlowParamSI
241 #ifdef BECEEM_TARGET
242 class CServiceFlowParamSI{
243         public:
244                 /// \brief Constructor for the class
245                 CServiceFlowParamSI():
246                         u32SFID(mSFid),
247                         u16CID(mCid),
248                         u8ServiceClassNameLength(mServiceClassNameLength),
249                         u8MBSService(mMBSService),
250                         u8QosParamSet(mQosParamSetType),
251                         u8TrafficPriority(mTrafficPriority),
252                         u32MaxSustainedTrafficRate(mMaximumSustainedTrafficRate),
253                         u32MaxTrafficBurst(mMaximumTrafficBurst),
254                         u32MinReservedTrafficRate(mMinimumReservedTrafficRate),
255                         u8ServiceFlowSchedulingType(mServiceFlowSchedulingType),
256                         u8RequesttransmissionPolicy(mRequestTransmissionPolicy),
257                         u32ToleratedJitter(mToleratedJitter),
258                         u32MaximumLatency(mMaximumLatency),
259                         u8FixedLengthVSVariableLengthSDUIndicator
260                         (mFixedLengthVSVariableLength),
261                         u8SDUSize(mSDUSize),
262                         u16TargetSAID(mTargetSAID),
263                         u8ARQEnable(mARQEnable),
264                         u16ARQWindowSize(mARQWindowSize),
265                         u16ARQBlockLifeTime(mARQBlockLifeTime),
266                         u16ARQSyncLossTimeOut(mARQSyncLossTimeOut),
267                         u8ARQDeliverInOrder(mARQDeliverInOrder),
268                         u16ARQRxPurgeTimeOut(mARQRXPurgeTimeOut),
269                         //Add ARQ BLOCK SIZE, ARQ TX and RX delay initializations here
270                         //after we move to only CORR2
271                         u8RxARQAckProcessingTime(mRxARQAckProcessingTime),
272                         u8CSSpecification(mCSSpecification),
273                         u8TypeOfDataDeliveryService(mTypeOfDataDeliveryService),
274                         u16SDUInterArrivalTime(mSDUInterArrivalTime),
275                         u16TimeBase(mTimeBase),
276                         u8PagingPreference(mPagingPreference),
277                         u8MBSZoneIdentifierassignment(mMBSZoneIdentifierassignmentLength),
278                         u8TrafficIndicationPreference(mTrafficIndicationPreference),
279                         u8GlobalServicesClassNameLength(mGlobalServicesClassNameLength),
280                         u8SNFeedbackEnabled(mSNFeedbackEnabled),
281                         u8FSNSize(mFSNSize),
282                         u8CIDAllocation4activeBSsLength(mCIDAllocation4activeBSsLength),
283                         u16UnsolicitedGrantInterval(mUnsolicitedGrantInterval),
284                         u16UnsolicitedPollingInterval(mUnsolicitedPollingInterval),
285                         u8PDUSNExtendedSubheader4HarqReordering(mPDUSNExtendedSubheader4HarqReordering),
286                         u8MBSContentsIDLength(mMBSContentsIDLength),
287                         u8HARQServiceFlows(mHARQServiceFlows),
288                         u8AuthTokenLength(mAuthTokenLength),
289                         u8HarqChannelMappingLength(mHarqChannelMappingLength),
290                         u8VendorSpecificQoSParamLength(mVendorSpecificQoSParamLength),
291             bValid(FALSE),
292              u8TotalClassifiers()
293 {
294 //Remove the bolck after we move to Corr2 only code
295 #ifdef ENABLE_CORRIGENDUM2_UPDATE
296         if((g_u32Corr2MacFlags & CORR_2_DSX)  ||  (g_u32Corr2MacFlags & CORR_2_ARQ))
297         {
298         /* IEEE Comment #627 / MTG Comment #426 */
299         u16ARQBlockSize = mARQBlockSize;
300                 if(g_u32Corr2MacFlags & CORR_2_ARQ) {
301                         u16ARQRetryTxTimeOut = mARQRetryTimeOutTxDelay;
302                         if(g_u32VENDOR_TYPE == VENDOR_ALCATEL) {
303                                 u16ARQRetryRxTimeOut = mARQRetryTimeOutRxDelay_ALU;
304                         } else {
305                                 u16ARQRetryRxTimeOut = mARQRetryTimeOutRxDelay;
306                         }
307                 }
308                 else
309                 {
310                         u16ARQRetryTxTimeOut = mARQRetryTimeOutTxDelayCorr1;
311                         u16ARQRetryRxTimeOut = mARQRetryTimeOutRxDelayCorr1;
312                 }
313         }
314         else
315 #endif
316         {
317                 u16ARQBlockSize = mARQBlockSizeCorr1;
318                 u16ARQRetryTxTimeOut = mARQRetryTimeOutTxDelayCorr1;
319                 u16ARQRetryRxTimeOut = mARQRetryTimeOutRxDelayCorr1;
320         }
321 }
322
323         void ComputeMacOverhead(B_UINT8 u8SecOvrhead);
324         B_UINT16        GetMacOverhead() { return       u16MacOverhead; }
325 #else
326 typedef struct _stServiceFlowParamSI{
327 #endif //end of ifdef BECEEM_TARGET
328
329      /**  32bitSFID Of The Service Flow*/
330     B_UINT32                        u32SFID;
331
332      /**  32bit Maximum Sustained Traffic Rate of the Service Flow*/
333     B_UINT32                        u32MaxSustainedTrafficRate;
334
335      /**  32bit Maximum Traffic Burst allowed for the Service Flow*/
336     B_UINT32                        u32MaxTrafficBurst;
337
338     /**  32bit Minimum Reserved Traffic Rate of the Service Flow*/
339     B_UINT32                        u32MinReservedTrafficRate;
340
341         /**  32bit Tolerated Jitter of the Service Flow*/
342         B_UINT32                        u32ToleratedJitter;
343
344    /**  32bit Maximum Latency of the Service Flow*/
345     B_UINT32                        u32MaximumLatency;
346
347         /**  16bitCID Of The Service Flow*/
348     B_UINT16                        u16CID;
349
350      /**  16bit SAID on which the service flow being set up shall be mapped*/
351     B_UINT16                        u16TargetSAID;
352
353         /** 16bit  ARQ window size negotiated*/
354     B_UINT16                        u16ARQWindowSize;
355
356      /**  16bit Total Tx delay incl sending, receiving & processing delays      */
357     B_UINT16                        u16ARQRetryTxTimeOut;
358
359         /**  16bit Total Rx delay incl sending, receiving & processing delays   */
360     B_UINT16                        u16ARQRetryRxTimeOut;
361
362         /**  16bit ARQ block lifetime   */
363     B_UINT16                        u16ARQBlockLifeTime;
364
365         /**  16bit ARQ Sync loss timeout*/
366     B_UINT16                        u16ARQSyncLossTimeOut;
367
368          /**  16bit ARQ Purge timeout */
369     B_UINT16                        u16ARQRxPurgeTimeOut;
370 #if 0 //def ENABLE_CORRIGENDUM2_UPDATE
371 /* IEEE Comment #627 / MTG Comment #426 */
372     /// \brief Size of an ARQ block, changed from 2 bytes to 1
373     B_UINT8                        u8ARQBlockSize;
374 #endif
375 //TODO::Remove this once we move to a new CORR2 driver
376     /// \brief Size of an ARQ block
377     B_UINT16                        u16ARQBlockSize;
378
379 //#endif
380         /**  16bit Nominal interval b/w consecutive SDU arrivals at MAC SAP*/
381         B_UINT16                        u16SDUInterArrivalTime;
382
383         /**  16bit Specifies the time base for rate measurement         */
384         B_UINT16                        u16TimeBase;
385
386          /** 16bit Interval b/w Successive Grant oppurtunities*/
387         B_UINT16                        u16UnsolicitedGrantInterval;
388
389         /** 16bit Interval b/w Successive Polling grant oppurtunities*/
390         B_UINT16                                                u16UnsolicitedPollingInterval;
391
392          /**   internal var to get the overhead */
393         B_UINT16                                                u16MacOverhead;
394
395          /**  MBS contents Identifier*/
396         B_UINT16                                                u16MBSContentsID[MBS_CONTENTS_ID_LENGTH];
397
398         /**  MBS contents Identifier length*/
399         B_UINT8                                                 u8MBSContentsIDLength;
400
401         /**      ServiceClassName Length Of The Service Flow*/
402     B_UINT8                         u8ServiceClassNameLength;
403
404         /**  32bytes ServiceClassName Of The Service Flow*/
405     B_UINT8                         u8ServiceClassName[32];
406
407         /**  8bit Indicates whether or not MBS service is requested for this Serivce Flow*/
408         B_UINT8                                                 u8MBSService;
409
410     /**  8bit QOS Parameter Set specifies proper application of QoS paramters to Provisioned, Admitted and Active sets*/
411     B_UINT8                         u8QosParamSet;
412
413    /**  8bit Traffic Priority Of the Service Flow */
414     B_UINT8                         u8TrafficPriority;
415
416    /**  8bit Uplink Grant Scheduling Type of The Service Flow */
417     B_UINT8                         u8ServiceFlowSchedulingType;
418
419   /**  8bit Request transmission Policy of the Service Flow*/
420     B_UINT8                                                     u8RequesttransmissionPolicy;
421
422         /**  8bit Specifies whether SDUs for this Service flow are of FixedLength or Variable length */
423     B_UINT8                         u8FixedLengthVSVariableLengthSDUIndicator;
424
425         /**  8bit Length of the SDU for a fixed length SDU service flow*/
426         B_UINT8                         u8SDUSize;
427
428          /** 8bit Indicates whether or not ARQ is requested for this connection*/
429        B_UINT8                         u8ARQEnable;
430
431         /**<  8bit Indicates whether or not data has tobe delivered in order to higher layer*/
432        B_UINT8                         u8ARQDeliverInOrder;
433
434         /**  8bit Receiver ARQ ACK processing time */
435         B_UINT8                         u8RxARQAckProcessingTime;
436
437         /**  8bit Convergence Sublayer Specification Of The Service Flow*/
438        B_UINT8                         u8CSSpecification;
439
440          /**  8 bit Type of data delivery service*/
441         B_UINT8                         u8TypeOfDataDeliveryService;
442
443         /** 8bit Specifies whether a service flow may generate Paging   */
444         B_UINT8                         u8PagingPreference;
445
446         /**  8bit Indicates the MBS Zone through which the connection or virtual connection is valid    */
447        B_UINT8                         u8MBSZoneIdentifierassignment;
448
449        /**  8bit Specifies whether traffic on SF should generate MOB_TRF_IND to MS in sleep mode*/
450         B_UINT8                         u8TrafficIndicationPreference;
451
452         /** 8bit Speciifes the length of predefined Global QoS parameter set encoding for this SF       */
453         B_UINT8                         u8GlobalServicesClassNameLength;
454
455          /**  6 byte Speciifes the predefined Global QoS parameter set encoding for this SF     */
456         B_UINT8                         u8GlobalServicesClassName[GLOBAL_SF_CLASSNAME_LENGTH];
457
458          /**  8bit Indicates whether or not SN feedback is enabled for the conn */
459         B_UINT8                         u8SNFeedbackEnabled;
460
461          /**  Indicates the size of the Fragment Sequence Number for the connection     */
462         B_UINT8                         u8FSNSize;
463
464         /** 8bit Number of CIDs in active BS list       */
465         B_UINT8                                                 u8CIDAllocation4activeBSsLength;
466
467         /**  CIDs of BS in the active list      */
468         B_UINT8                                                 u8CIDAllocation4activeBSs[MAX_NUM_ACTIVE_BS];
469
470          /**  Specifies if PDU extended subheader should be applied on every PDU on this conn*/
471         B_UINT8                         u8PDUSNExtendedSubheader4HarqReordering;
472
473          /**  8bit Specifies whether the connection uses HARQ or not    */
474         B_UINT8                         u8HARQServiceFlows;
475
476         /**  Specifies the length of Authorization token*/
477         B_UINT8                                                 u8AuthTokenLength;
478
479         /**  Specifies the Authorization token*/
480         B_UINT8                                                 u8AuthToken[AUTH_TOKEN_LENGTH];
481
482         /**  specifes Number of HARQ channels used to carry data length*/
483         B_UINT8                                                 u8HarqChannelMappingLength;
484
485          /**  specifes HARQ channels used to carry data*/
486         B_UINT8                                                 u8HARQChannelMapping[NUM_HARQ_CHANNELS];
487
488         /**  8bit Length of Vendor Specific QoS Params */
489     B_UINT8                         u8VendorSpecificQoSParamLength;
490
491         /** 1byte  Vendor Specific QoS Param Of The Service Flow*/
492     B_UINT8                          u8VendorSpecificQoSParam[VENDOR_SPECIF_QOS_PARAM];
493
494         // indicates total classifiers in the SF
495         B_UINT8                         u8TotalClassifiers;  /**< Total number of valid classifiers*/
496         B_UINT8                                                 bValid; /**<  Validity flag */
497         B_UINT8                         u8Padding;       /**<  Padding byte*/
498
499 #ifdef BECEEM_TARGET
500 /**
501 Structure for Convergence SubLayer Types with a maximum of 4 classifiers
502 */
503         CConvergenceSLTypes             cConvergenceSLTypes[MAX_CLASSIFIERS_IN_SF];
504 #else
505 /**
506 Structure for Convergence SubLayer Types with a maximum of 4 classifiers
507 */
508         stConvergenceSLTypes            cConvergenceSLTypes[MAX_CLASSIFIERS_IN_SF];
509 #endif
510
511 #ifdef BECEEM_TARGET
512 };
513 #else
514 } stServiceFlowParamSI, *pstServiceFlowParamSI;
515 typedef stServiceFlowParamSI CServiceFlowParamSI;
516 #endif
517
518 /**
519 structure stLocalSFAddRequest
520 */
521 typedef struct _stLocalSFAddRequest{
522 #ifdef BECEEM_TARGET
523            _stLocalSFAddRequest( ) :
524                 u8Type(0x00),  eConnectionDir(0x00),
525                 u16TID(0x0000), u16CID(0x0000),  u16VCID(0x0000)
526                         {}
527 #endif
528
529         B_UINT8                         u8Type; /**<  Type*/
530         B_UINT8      eConnectionDir;            /**<  Connection direction*/
531         /// \brief 16 bit TID
532         B_UINT16                        u16TID; /**<  16bit TID*/
533         /// \brief 16bitCID
534         B_UINT16                        u16CID; /**<  16bit CID*/
535         /// \brief 16bitVCID
536         B_UINT16                        u16VCID;        /**<  16bit VCID*/
537     /// \brief structure ParameterSet
538 #ifdef BECEEM_SIGNALLING_INTERFACE_API
539         CServiceFlowParamSI sfParameterSet;
540 #endif
541
542 #ifdef BECEEM_TARGET
543     CServiceFlowParamSI              *psfParameterSet;
544 #else
545         stServiceFlowParamSI    *psfParameterSet;       /**<  structure ParameterSet*/
546 #endif
547
548 #ifdef USING_VXWORKS
549     USE_DATA_MEMORY_MANAGER();
550 #endif
551 }stLocalSFAddRequest, *pstLocalSFAddRequest;
552
553
554 /**
555 structure stLocalSFAddIndication
556 */
557 typedef struct _stLocalSFAddIndication{
558 #ifdef BECEEM_TARGET
559            _stLocalSFAddIndication( ) :
560                 u8Type(0x00),  eConnectionDir(0x00),
561                 u16TID(0x0000), u16CID(0x0000),  u16VCID(0x0000)
562                         {}
563 #endif
564
565         B_UINT8                         u8Type; /**<  Type*/
566         B_UINT8      eConnectionDir;    /**<  Connection Direction*/
567         /// \brief 16 bit TID
568         B_UINT16                         u16TID;        /**<  TID*/
569     /// \brief 16bitCID
570     B_UINT16                        u16CID;             /**<  16bitCID*/
571     /// \brief 16bitVCID
572     B_UINT16                        u16VCID;     /**<  16bitVCID*/
573
574 #ifdef  BECEEM_SIGNALLING_INTERFACE_API
575         CServiceFlowParamSI              sfAuthorizedSet;
576     /// \brief structure AdmittedSet
577     CServiceFlowParamSI              sfAdmittedSet;
578     /// \brief structure ActiveSet
579     CServiceFlowParamSI              sfActiveSet;
580 #endif
581
582     /// \brief structure AuthorizedSet
583 #ifdef BECEEM_TARGET
584     CServiceFlowParamSI              *psfAuthorizedSet;
585     /// \brief structure AdmittedSet
586     CServiceFlowParamSI              *psfAdmittedSet;
587     /// \brief structure ActiveSet
588     CServiceFlowParamSI              *psfActiveSet;
589 #else
590     /// \brief structure AuthorizedSet
591     stServiceFlowParamSI              *psfAuthorizedSet;        /**<  AuthorizedSet of type stServiceFlowParamSI*/
592     /// \brief structure AdmittedSet
593     stServiceFlowParamSI              *psfAdmittedSet;  /**<  AdmittedSet of type stServiceFlowParamSI*/
594     /// \brief structure ActiveSet
595     stServiceFlowParamSI              *psfActiveSet;    /**<  sfActiveSet of type stServiceFlowParamSI*/
596 #endif
597         B_UINT8                            u8CC;        /**<  Confirmation Code*/
598         B_UINT8                            u8Padd;              /**<  8-bit Padding */
599
600     B_UINT16               u16Padd;     /**< 16 bit Padding */
601
602 #ifdef USING_VXWORKS
603     USE_DATA_MEMORY_MANAGER();
604 #endif
605 }stLocalSFAddIndication;
606
607
608 typedef struct _stLocalSFAddIndication *pstLocalSFAddIndication;
609 /**
610 structure stLocalSFChangeRequest is same as structure stLocalSFAddIndication
611 */
612 typedef struct _stLocalSFAddIndication stLocalSFChangeRequest, *pstLocalSFChangeRequest;
613 /**
614 structure stLocalSFChangeIndication is same as structure stLocalSFAddIndication
615 */
616 typedef struct _stLocalSFAddIndication stLocalSFChangeIndication, *pstLocalSFChangeIndication;
617
618 /**
619 structure stLocalSFDeleteRequest
620 */
621 typedef struct _stLocalSFDeleteRequest{
622 #ifdef BECEEM_TARGET
623            _stLocalSFDeleteRequest( ) :
624                 u8Type(0x00),  u8Padding(0x00),
625                 u16TID(0x0000), u32SFID (0x00000000)
626                         {}
627 #endif
628         B_UINT8                         u8Type;  /**< Type*/
629         B_UINT8                         u8Padding;       /**<  Padding byte*/
630         B_UINT16                        u16TID;          /**<  TID*/
631     /// \brief 32bitSFID
632     B_UINT32                        u32SFID;     /**<  SFID*/
633 #ifdef USING_VXWORKS
634     USE_DATA_MEMORY_MANAGER();
635 #endif
636 }stLocalSFDeleteRequest, *pstLocalSFDeleteRequest;
637
638 /**
639 structure stLocalSFDeleteIndication
640 */
641 typedef struct stLocalSFDeleteIndication{
642 #ifdef BECEEM_TARGET
643            stLocalSFDeleteIndication( ) :
644                 u8Type(0x00),  u8Padding(0x00),
645                 u16TID(0x0000), u16CID(0x0000),
646                 u16VCID(0x0000),u32SFID (0x00000000)
647                         {}
648 #endif
649         B_UINT8                         u8Type; /**< Type */
650         B_UINT8                         u8Padding;      /**< Padding  */
651         B_UINT16                        u16TID;                 /**< TID */
652        /// \brief 16bitCID
653     B_UINT16                        u16CID;                     /**< CID */
654     /// \brief 16bitVCID
655     B_UINT16                        u16VCID;            /**< VCID */
656     /// \brief 32bitSFID
657     B_UINT32                        u32SFID;            /**< SFID */
658         /// \brief 8bit Confirmation code
659         B_UINT8                         u8ConfirmationCode;     /**< Confirmation code */
660         B_UINT8                         u8Padding1[3];          /**< 3 byte Padding  */
661 #ifdef USING_VXWORKS
662     USE_DATA_MEMORY_MANAGER();
663 #endif
664 }stLocalSFDeleteIndication;
665
666 typedef struct _stIM_SFHostNotify
667 {
668         B_UINT32        SFID;      //SFID of the service flow
669         B_UINT16        newCID;   //the new/changed CID
670         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
671         B_UINT8         RetainSF;        //Indication to Host if the SF is to be retained or deleted; if TRUE-retain else delete
672         B_UINT8         QoSParamSet; //QoS paramset of the retained SF
673         B_UINT16        u16reserved;  //For byte alignment
674
675 } stIM_SFHostNotify;
676
677 #endif