1 #ifndef CNTRL_SIGNALING_INTERFACE_
2 #define CNTRL_SIGNALING_INTERFACE_
16 #define MAX_CLASSIFIERS_IN_SF 4
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
24 #define NUM_HARQ_CHANNELS 16 //Changed from 10 to 16 to accommodate all HARQ channels
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
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
42 ////////////////////////////////////////////////////////////////////////////////
43 ////////////////////////structure Definitions///////////////////////////////////
44 ////////////////////////////////////////////////////////////////////////////////
45 /// \brief class cCPacketClassificationRule
46 struct _stCPacketClassificationRuleSI
{
48 /** 16bit UserPriority Of The Service Flow*/
49 B_UINT16 u16UserPriority
;
50 /** 16bit VLANID Of The Service Flow*/
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*/
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
;
104 typedef struct _stCPacketClassificationRuleSI CCPacketClassificationRuleSI
,stCPacketClassificationRuleSI
, *pstCPacketClassificationRuleSI
;
106 /// \brief class CPhsRuleSI
107 typedef struct _stPhsRuleSI
{
108 /** 8bit PHS Index Of The Service Flow*/
110 /** PHSF Length Of The Service Flow*/
111 B_UINT8 u8PHSFLength
;
112 /** String of bytes containing header information to be suppressed by the sending CS and reconstructed by the receiving CS*/
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
];
118 /** 8bit Total number of bytes to be suppressed for the Service Flow*/
120 /** 8bit Indicates whether or not Packet Header contents need to be verified prior to supression */
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
];
127 B_UINT8 u8Padding
[2];
128 }stPhsRuleSI
,*pstPhsRuleSI
;
129 typedef stPhsRuleSI CPhsRuleSI
;
131 /// \brief structure cConvergenceSLTypes
132 struct _stConvergenceSLTypes
{
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
;
138 B_UINT8 u8Padding
[2];
139 /// \brief class cCPacketClassificationRule
140 stCPacketClassificationRuleSI cCPacketClassificationRule
;
141 /// \brief class CPhsRuleSI
142 struct _stPhsRuleSI cPhsRule
;
144 typedef struct _stConvergenceSLTypes stConvergenceSLTypes
,CConvergenceSLTypes
, *pstConvergenceSLTypes
;
147 /// \brief structure CServiceFlowParamSI
148 typedef struct _stServiceFlowParamSI
{
150 /** 32bitSFID Of The Service Flow*/
153 /** 32bit Maximum Sustained Traffic Rate of the Service Flow*/
154 B_UINT32 u32MaxSustainedTrafficRate
;
156 /** 32bit Maximum Traffic Burst allowed for the Service Flow*/
157 B_UINT32 u32MaxTrafficBurst
;
159 /** 32bit Minimum Reserved Traffic Rate of the Service Flow*/
160 B_UINT32 u32MinReservedTrafficRate
;
162 /** 32bit Tolerated Jitter of the Service Flow*/
163 B_UINT32 u32ToleratedJitter
;
165 /** 32bit Maximum Latency of the Service Flow*/
166 B_UINT32 u32MaximumLatency
;
168 /** 16bitCID Of The Service Flow*/
171 /** 16bit SAID on which the service flow being set up shall be mapped*/
172 B_UINT16 u16TargetSAID
;
174 /** 16bit ARQ window size negotiated*/
175 B_UINT16 u16ARQWindowSize
;
177 /** 16bit Total Tx delay incl sending, receiving & processing delays */
178 B_UINT16 u16ARQRetryTxTimeOut
;
180 /** 16bit Total Rx delay incl sending, receiving & processing delays */
181 B_UINT16 u16ARQRetryRxTimeOut
;
183 /** 16bit ARQ block lifetime */
184 B_UINT16 u16ARQBlockLifeTime
;
186 /** 16bit ARQ Sync loss timeout*/
187 B_UINT16 u16ARQSyncLossTimeOut
;
189 /** 16bit ARQ Purge timeout */
190 B_UINT16 u16ARQRxPurgeTimeOut
;
191 //TODO::Remove this once we move to a new CORR2 driver
192 /// \brief Size of an ARQ block
193 B_UINT16 u16ARQBlockSize
;
196 /** 16bit Nominal interval b/w consecutive SDU arrivals at MAC SAP*/
197 B_UINT16 u16SDUInterArrivalTime
;
199 /** 16bit Specifies the time base for rate measurement */
200 B_UINT16 u16TimeBase
;
202 /** 16bit Interval b/w Successive Grant oppurtunities*/
203 B_UINT16 u16UnsolicitedGrantInterval
;
205 /** 16bit Interval b/w Successive Polling grant oppurtunities*/
206 B_UINT16 u16UnsolicitedPollingInterval
;
208 /** internal var to get the overhead */
209 B_UINT16 u16MacOverhead
;
211 /** MBS contents Identifier*/
212 B_UINT16 u16MBSContentsID
[MBS_CONTENTS_ID_LENGTH
];
214 /** MBS contents Identifier length*/
215 B_UINT8 u8MBSContentsIDLength
;
217 /** ServiceClassName Length Of The Service Flow*/
218 B_UINT8 u8ServiceClassNameLength
;
220 /** 32bytes ServiceClassName Of The Service Flow*/
221 B_UINT8 u8ServiceClassName
[32];
223 /** 8bit Indicates whether or not MBS service is requested for this Serivce Flow*/
224 B_UINT8 u8MBSService
;
226 /** 8bit QOS Parameter Set specifies proper application of QoS paramters to Provisioned, Admitted and Active sets*/
227 B_UINT8 u8QosParamSet
;
229 /** 8bit Traffic Priority Of the Service Flow */
230 B_UINT8 u8TrafficPriority
;
232 /** 8bit Uplink Grant Scheduling Type of The Service Flow */
233 B_UINT8 u8ServiceFlowSchedulingType
;
235 /** 8bit Request transmission Policy of the Service Flow*/
236 B_UINT8 u8RequesttransmissionPolicy
;
238 /** 8bit Specifies whether SDUs for this Service flow are of FixedLength or Variable length */
239 B_UINT8 u8FixedLengthVSVariableLengthSDUIndicator
;
241 /** 8bit Length of the SDU for a fixed length SDU service flow*/
244 /** 8bit Indicates whether or not ARQ is requested for this connection*/
247 /**< 8bit Indicates whether or not data has tobe delivered in order to higher layer*/
248 B_UINT8 u8ARQDeliverInOrder
;
250 /** 8bit Receiver ARQ ACK processing time */
251 B_UINT8 u8RxARQAckProcessingTime
;
253 /** 8bit Convergence Sublayer Specification Of The Service Flow*/
254 B_UINT8 u8CSSpecification
;
256 /** 8 bit Type of data delivery service*/
257 B_UINT8 u8TypeOfDataDeliveryService
;
259 /** 8bit Specifies whether a service flow may generate Paging */
260 B_UINT8 u8PagingPreference
;
262 /** 8bit Indicates the MBS Zone through which the connection or virtual connection is valid */
263 B_UINT8 u8MBSZoneIdentifierassignment
;
265 /** 8bit Specifies whether traffic on SF should generate MOB_TRF_IND to MS in sleep mode*/
266 B_UINT8 u8TrafficIndicationPreference
;
268 /** 8bit Speciifes the length of predefined Global QoS parameter set encoding for this SF */
269 B_UINT8 u8GlobalServicesClassNameLength
;
271 /** 6 byte Speciifes the predefined Global QoS parameter set encoding for this SF */
272 B_UINT8 u8GlobalServicesClassName
[GLOBAL_SF_CLASSNAME_LENGTH
];
274 /** 8bit Indicates whether or not SN feedback is enabled for the conn */
275 B_UINT8 u8SNFeedbackEnabled
;
277 /** Indicates the size of the Fragment Sequence Number for the connection */
280 /** 8bit Number of CIDs in active BS list */
281 B_UINT8 u8CIDAllocation4activeBSsLength
;
283 /** CIDs of BS in the active list */
284 B_UINT8 u8CIDAllocation4activeBSs
[MAX_NUM_ACTIVE_BS
];
286 /** Specifies if PDU extended subheader should be applied on every PDU on this conn*/
287 B_UINT8 u8PDUSNExtendedSubheader4HarqReordering
;
289 /** 8bit Specifies whether the connection uses HARQ or not */
290 B_UINT8 u8HARQServiceFlows
;
292 /** Specifies the length of Authorization token*/
293 B_UINT8 u8AuthTokenLength
;
295 /** Specifies the Authorization token*/
296 B_UINT8 u8AuthToken
[AUTH_TOKEN_LENGTH
];
298 /** specifes Number of HARQ channels used to carry data length*/
299 B_UINT8 u8HarqChannelMappingLength
;
301 /** specifes HARQ channels used to carry data*/
302 B_UINT8 u8HARQChannelMapping
[NUM_HARQ_CHANNELS
];
304 /** 8bit Length of Vendor Specific QoS Params */
305 B_UINT8 u8VendorSpecificQoSParamLength
;
307 /** 1byte Vendor Specific QoS Param Of The Service Flow*/
308 B_UINT8 u8VendorSpecificQoSParam
[VENDOR_SPECIF_QOS_PARAM
];
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*/
316 Structure for Convergence SubLayer Types with a maximum of 4 classifiers
318 stConvergenceSLTypes cConvergenceSLTypes
[MAX_CLASSIFIERS_IN_SF
];
320 } stServiceFlowParamSI
, *pstServiceFlowParamSI
;
321 typedef stServiceFlowParamSI CServiceFlowParamSI
;
324 structure stLocalSFAddRequest
326 typedef struct _stLocalSFAddRequest
{
328 B_UINT8 u8Type
; /**< Type*/
329 B_UINT8 eConnectionDir
; /**< Connection direction*/
330 /// \brief 16 bit TID
331 B_UINT16 u16TID
; /**< 16bit TID*/
333 B_UINT16 u16CID
; /**< 16bit CID*/
335 B_UINT16 u16VCID
; /**< 16bit VCID*/
336 /// \brief structure ParameterSet
338 stServiceFlowParamSI
*psfParameterSet
; /**< structure ParameterSet*/
340 }stLocalSFAddRequest
, *pstLocalSFAddRequest
;
344 structure stLocalSFAddIndication
346 typedef struct _stLocalSFAddIndication
{
348 B_UINT8 u8Type
; /**< Type*/
349 B_UINT8 eConnectionDir
; /**< Connection Direction*/
350 /// \brief 16 bit TID
351 B_UINT16 u16TID
; /**< TID*/
353 B_UINT16 u16CID
; /**< 16bitCID*/
355 B_UINT16 u16VCID
; /**< 16bitVCID*/
358 /// \brief structure AuthorizedSet
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*/
365 B_UINT8 u8CC
; /**< Confirmation Code*/
366 B_UINT8 u8Padd
; /**< 8-bit Padding */
368 B_UINT16 u16Padd
; /**< 16 bit Padding */
370 }stLocalSFAddIndication
;
373 typedef struct _stLocalSFAddIndication
*pstLocalSFAddIndication
;
375 structure stLocalSFChangeRequest is same as structure stLocalSFAddIndication
377 typedef struct _stLocalSFAddIndication stLocalSFChangeRequest
, *pstLocalSFChangeRequest
;
379 structure stLocalSFChangeIndication is same as structure stLocalSFAddIndication
381 typedef struct _stLocalSFAddIndication stLocalSFChangeIndication
, *pstLocalSFChangeIndication
;
384 structure stLocalSFDeleteRequest
386 typedef struct _stLocalSFDeleteRequest
{
387 B_UINT8 u8Type
; /**< Type*/
388 B_UINT8 u8Padding
; /**< Padding byte*/
389 B_UINT16 u16TID
; /**< TID*/
391 B_UINT32 u32SFID
; /**< SFID*/
392 }stLocalSFDeleteRequest
, *pstLocalSFDeleteRequest
;
395 structure stLocalSFDeleteIndication
397 typedef struct stLocalSFDeleteIndication
{
398 B_UINT8 u8Type
; /**< Type */
399 B_UINT8 u8Padding
; /**< Padding */
400 B_UINT16 u16TID
; /**< TID */
402 B_UINT16 u16CID
; /**< CID */
404 B_UINT16 u16VCID
; /**< VCID */
406 B_UINT32 u32SFID
; /**< SFID */
407 /// \brief 8bit Confirmation code
408 B_UINT8 u8ConfirmationCode
; /**< Confirmation code */
409 B_UINT8 u8Padding1
[3]; /**< 3 byte Padding */
410 }stLocalSFDeleteIndication
;
412 typedef struct _stIM_SFHostNotify
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