cntrl_SignalingInterface.h revision f34170c762e88512796be7f94df80f294d12de95
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 */ 42struct _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}; 99typedef struct _stCPacketClassificationRuleSI CCPacketClassificationRuleSI, stCPacketClassificationRuleSI, *pstCPacketClassificationRuleSI; 100 101/* brief class CPhsRuleSI */ 102typedef 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; 123typedef stPhsRuleSI CPhsRuleSI; 124 125/* brief structure cConvergenceSLTypes */ 126struct _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}; 138typedef struct _stConvergenceSLTypes stConvergenceSLTypes, CConvergenceSLTypes, *pstConvergenceSLTypes; 139 140/* brief structure CServiceFlowParamSI */ 141typedef 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; 261typedef stServiceFlowParamSI CServiceFlowParamSI; 262 263/* 264 * structure stLocalSFAddRequest 265 */ 266typedef 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/* 281 * structure stLocalSFAddIndication 282 */ 283typedef struct _stLocalSFAddIndication { 284 B_UINT8 u8Type; /* < Type */ 285 B_UINT8 eConnectionDir; /* < Connection Direction */ 286 /* brief 16 bit TID */ 287 B_UINT16 u16TID; /* < TID */ 288 /* brief 16bitCID */ 289 B_UINT16 u16CID; /* < 16bitCID */ 290 /* brief 16bitVCID */ 291 B_UINT16 u16VCID; /* < 16bitVCID */ 292 /* brief structure AuthorizedSet */ 293 /* brief structure AuthorizedSet */ 294 stServiceFlowParamSI *psfAuthorizedSet; /* < AuthorizedSet of type stServiceFlowParamSI */ 295 /* brief structure AdmittedSet */ 296 stServiceFlowParamSI *psfAdmittedSet; /* < AdmittedSet of type stServiceFlowParamSI */ 297 /* brief structure ActiveSet */ 298 stServiceFlowParamSI *psfActiveSet; /* < sfActiveSet of type stServiceFlowParamSI */ 299 B_UINT8 u8CC; /* <Confirmation Code */ 300 B_UINT8 u8Padd; /* < 8-bit Padding */ 301 B_UINT16 u16Padd; /* < 16 bit Padding */ 302 303} stLocalSFAddIndication; 304 305typedef struct _stLocalSFAddIndication *pstLocalSFAddIndication; 306/* 307 * structure stLocalSFChangeRequest is same as structure stLocalSFAddIndication 308 */ 309typedef struct _stLocalSFAddIndication stLocalSFChangeRequest, *pstLocalSFChangeRequest; 310/* 311 * structure stLocalSFChangeIndication is same as structure stLocalSFAddIndication 312 */ 313typedef struct _stLocalSFAddIndication stLocalSFChangeIndication, *pstLocalSFChangeIndication; 314 315/* 316 * structure stLocalSFDeleteRequest 317 */ 318typedef struct _stLocalSFDeleteRequest { 319 B_UINT8 u8Type; /* < Type */ 320 B_UINT8 u8Padding; /* < Padding byte */ 321 B_UINT16 u16TID; /* < TID */ 322 /* brief 32bitSFID */ 323 B_UINT32 u32SFID; /* < SFID */ 324} stLocalSFDeleteRequest, *pstLocalSFDeleteRequest; 325 326/* 327 * structure stLocalSFDeleteIndication 328 */ 329typedef struct stLocalSFDeleteIndication { 330 B_UINT8 u8Type; /* < Type */ 331 B_UINT8 u8Padding; /* < Padding */ 332 B_UINT16 u16TID; /* < TID */ 333 /* brief 16bitCID */ 334 B_UINT16 u16CID; /* < CID */ 335 /* brief 16bitVCID */ 336 B_UINT16 u16VCID; /* < VCID */ 337 /* brief 32bitSFID */ 338 B_UINT32 u32SFID; /* < SFID */ 339 /* brief 8bit Confirmation code */ 340 B_UINT8 u8ConfirmationCode; /* < Confirmation code */ 341 B_UINT8 u8Padding1[3]; /* < 3 byte Padding */ 342} stLocalSFDeleteIndication; 343 344struct bcm_stim_sfhostnotify { 345 B_UINT32 SFID; /* SFID of the service flow */ 346 B_UINT16 newCID; /* the new/changed CID */ 347 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 */ 348 B_UINT8 RetainSF; /* Indication to Host if the SF is to be retained or deleted; if TRUE-retain else delete */ 349 B_UINT8 QoSParamSet; /* QoS paramset of the retained SF */ 350 B_UINT16 u16reserved; /* For byte alignment */ 351}; 352 353#endif 354