1 #ifndef CNTRL_SIGNALING_INTERFACE_
2 #define CNTRL_SIGNALING_INTERFACE_
3 
4 
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 
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
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
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
46 struct _stCPacketClassificationRuleSI{
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 };
104 typedef struct _stCPacketClassificationRuleSI CCPacketClassificationRuleSI,stCPacketClassificationRuleSI, *pstCPacketClassificationRuleSI;
105 
106 /// \brief class CPhsRuleSI
107 typedef struct _stPhsRuleSI {
108 	/**  8bit PHS Index Of The Service Flow*/
109     B_UINT8                         u8PHSI;
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*/
119     B_UINT8                         u8PHSS;
120 	/**  8bit Indicates whether or not Packet Header contents need to be verified prior to supression */
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];
128 }stPhsRuleSI,*pstPhsRuleSI;
129 typedef stPhsRuleSI CPhsRuleSI;
130 
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;
137 	/**   16bit Padding */
138     B_UINT8                         u8Padding[2];
139     /// \brief class cCPacketClassificationRule
140     stCPacketClassificationRuleSI     cCPacketClassificationRule;
141     /// \brief class CPhsRuleSI
142      struct _stPhsRuleSI		cPhsRule;
143 };
144 typedef struct _stConvergenceSLTypes stConvergenceSLTypes,CConvergenceSLTypes, *pstConvergenceSLTypes;
145 
146 
147 /// \brief structure CServiceFlowParamSI
148 typedef struct _stServiceFlowParamSI{
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;
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 
315 /**
316 Structure for Convergence SubLayer Types with a maximum of 4 classifiers
317 */
318 	stConvergenceSLTypes		cConvergenceSLTypes[MAX_CLASSIFIERS_IN_SF];
319 
320 } stServiceFlowParamSI, *pstServiceFlowParamSI;
321 typedef stServiceFlowParamSI CServiceFlowParamSI;
322 
323 /**
324 structure stLocalSFAddRequest
325 */
326 typedef struct _stLocalSFAddRequest{
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
337 
338 	stServiceFlowParamSI	*psfParameterSet;	/**<  structure ParameterSet*/
339 
340 }stLocalSFAddRequest, *pstLocalSFAddRequest;
341 
342 
343 /**
344 structure stLocalSFAddIndication
345 */
346 typedef struct _stLocalSFAddIndication{
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 
357 
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 */
367 
368     B_UINT16               u16Padd;	/**< 16 bit Padding */
369 
370 }stLocalSFAddIndication;
371 
372 
373 typedef struct _stLocalSFAddIndication *pstLocalSFAddIndication;
374 /**
375 structure stLocalSFChangeRequest is same as structure stLocalSFAddIndication
376 */
377 typedef struct _stLocalSFAddIndication stLocalSFChangeRequest, *pstLocalSFChangeRequest;
378 /**
379 structure stLocalSFChangeIndication is same as structure stLocalSFAddIndication
380 */
381 typedef struct _stLocalSFAddIndication stLocalSFChangeIndication, *pstLocalSFChangeIndication;
382 
383 /**
384 structure stLocalSFDeleteRequest
385 */
386 typedef struct _stLocalSFDeleteRequest{
387 	B_UINT8                         u8Type;	 /**< Type*/
388 	B_UINT8                         u8Padding;	 /**<  Padding byte*/
389 	B_UINT16			u16TID;		 /**<  TID*/
390     /// \brief 32bitSFID
391     B_UINT32                        u32SFID;	 /**<  SFID*/
392 }stLocalSFDeleteRequest, *pstLocalSFDeleteRequest;
393 
394 /**
395 structure stLocalSFDeleteIndication
396 */
397 typedef struct stLocalSFDeleteIndication{
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  */
410 }stLocalSFDeleteIndication;
411 
412 typedef 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
424