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