Commit | Line | Data |
---|---|---|
f8942e07 SH |
1 | #ifndef CNTRL_SIGNALING_INTERFACE_ |
2 | #define CNTRL_SIGNALING_INTERFACE_ | |
3 | ||
8f413fe6 KM |
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 | |
957d7cdc KM |
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 */ | |
8f413fe6 KM |
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 | |
f8942e07 | 36 | |
4b0cb3cb | 37 | struct bcm_packet_class_rules { |
957d7cdc | 38 | /* 16bit UserPriority Of The Service Flow */ |
662e2840 | 39 | u16 u16UserPriority; |
957d7cdc | 40 | /* 16bit VLANID Of The Service Flow */ |
662e2840 | 41 | u16 u16VLANID; |
957d7cdc | 42 | /* 16bit Packet Classification RuleIndex Of The Service Flow */ |
662e2840 | 43 | u16 u16PacketClassificationRuleIndex; |
957d7cdc | 44 | /* 8bit Classifier Rule Priority Of The Service Flow */ |
d6c31c12 | 45 | u8 u8ClassifierRulePriority; |
957d7cdc | 46 | /* Length of IP TypeOfService field */ |
d6c31c12 | 47 | u8 u8IPTypeOfServiceLength; |
957d7cdc | 48 | /* 3bytes IP TypeOfService */ |
d6c31c12 | 49 | u8 u8IPTypeOfService[TYPE_OF_SERVICE_LENGTH]; |
957d7cdc | 50 | /* Protocol used in classification of Service Flow */ |
d6c31c12 | 51 | u8 u8Protocol; |
957d7cdc | 52 | /* Length of IP Masked Source Address */ |
d6c31c12 | 53 | u8 u8IPMaskedSourceAddressLength; |
957d7cdc | 54 | /* IP Masked Source Address used in classification for the Service Flow */ |
d6c31c12 | 55 | u8 u8IPMaskedSourceAddress[IP_MASKED_SRC_ADDRESS_LENGTH]; |
957d7cdc | 56 | /* Length of IP Destination Address */ |
d6c31c12 | 57 | u8 u8IPDestinationAddressLength; |
957d7cdc | 58 | /* IP Destination Address used in classification for the Service Flow */ |
d6c31c12 | 59 | u8 u8IPDestinationAddress[IP_MASKED_DEST_ADDRESS_LENGTH]; |
957d7cdc | 60 | /* Length of Protocol Source Port Range */ |
d6c31c12 | 61 | u8 u8ProtocolSourcePortRangeLength; |
957d7cdc | 62 | /* Protocol Source Port Range used in the Service Flow */ |
d6c31c12 | 63 | u8 u8ProtocolSourcePortRange[PROTOCOL_SRC_PORT_RANGE_LENGTH]; |
957d7cdc | 64 | /* Length of Protocol Dest Port Range */ |
d6c31c12 | 65 | u8 u8ProtocolDestPortRangeLength; |
957d7cdc | 66 | /* Protocol Dest Port Range used in the Service Flow */ |
d6c31c12 | 67 | u8 u8ProtocolDestPortRange[PROTOCOL_DEST_PORT_RANGE_LENGTH]; |
957d7cdc | 68 | /* Length of Ethernet Destination MAC Address */ |
d6c31c12 | 69 | u8 u8EthernetDestMacAddressLength; |
957d7cdc | 70 | /* Ethernet Destination MAC Address used in classification of the Service Flow */ |
d6c31c12 | 71 | u8 u8EthernetDestMacAddress[ETHERNET_DEST_MAC_ADDR_LENGTH]; |
957d7cdc | 72 | /* Length of Ethernet Source MAC Address */ |
d6c31c12 | 73 | u8 u8EthernetSourceMACAddressLength; |
957d7cdc | 74 | /* Ethernet Source MAC Address used in classification of the Service Flow */ |
d6c31c12 | 75 | u8 u8EthernetSourceMACAddress[ETHERNET_SRC_MAC_ADDR_LENGTH]; |
957d7cdc | 76 | /* Length of Ethertype */ |
d6c31c12 | 77 | u8 u8EthertypeLength; |
957d7cdc | 78 | /* 3bytes Ethertype Of The Service Flow */ |
d6c31c12 | 79 | u8 u8Ethertype[NUM_ETHERTYPE_BYTES]; |
957d7cdc | 80 | /* 8bit Associated PHSI Of The Service Flow */ |
d6c31c12 | 81 | u8 u8AssociatedPHSI; |
957d7cdc | 82 | /* Length of Vendor Specific Classifier Param length Of The Service Flow */ |
d6c31c12 | 83 | u8 u8VendorSpecificClassifierParamLength; |
957d7cdc | 84 | /* Vendor Specific Classifier Param Of The Service Flow */ |
d6c31c12 | 85 | u8 u8VendorSpecificClassifierParam[VENDOR_CLASSIFIER_PARAM_LENGTH]; |
957d7cdc | 86 | /* Length Of IPv6 Flow Lable of the Service Flow */ |
d6c31c12 | 87 | u8 u8IPv6FlowLableLength; |
957d7cdc | 88 | /* IPv6 Flow Lable Of The Service Flow */ |
d6c31c12 | 89 | u8 u8IPv6FlowLable[NUM_IPV6_FLOWLABLE_BYTES]; |
957d7cdc | 90 | /* Action associated with the classifier rule */ |
d6c31c12 | 91 | u8 u8ClassifierActionRule; |
662e2840 | 92 | u16 u16ValidityBitMap; |
f8942e07 | 93 | }; |
f8942e07 | 94 | |
d2a392c2 | 95 | struct bcm_phs_rules { |
957d7cdc | 96 | /* 8bit PHS Index Of The Service Flow */ |
d6c31c12 | 97 | u8 u8PHSI; |
957d7cdc | 98 | /* PHSF Length Of The Service Flow */ |
d6c31c12 | 99 | u8 u8PHSFLength; |
957d7cdc | 100 | /* String of bytes containing header information to be suppressed by the sending CS and reconstructed by the receiving CS */ |
d6c31c12 | 101 | u8 u8PHSF[MAX_PHS_LENGTHS]; |
957d7cdc | 102 | /* PHSM Length Of The Service Flow */ |
d6c31c12 | 103 | u8 u8PHSMLength; |
957d7cdc | 104 | /* PHS Mask for the SF */ |
d6c31c12 | 105 | u8 u8PHSM[MAX_PHS_LENGTHS]; |
957d7cdc | 106 | /* 8bit Total number of bytes to be suppressed for the Service Flow */ |
d6c31c12 | 107 | u8 u8PHSS; |
957d7cdc | 108 | /* 8bit Indicates whether or not Packet Header contents need to be verified prior to suppression */ |
d6c31c12 | 109 | u8 u8PHSV; |
957d7cdc | 110 | /* Vendor Specific PHS param Length Of The Service Flow */ |
d6c31c12 | 111 | u8 u8VendorSpecificPHSParamsLength; |
957d7cdc | 112 | /* Vendor Specific PHS param Of The Service Flow */ |
d6c31c12 KM |
113 | u8 u8VendorSpecificPHSParams[VENDOR_PHS_PARAM_LENGTH]; |
114 | u8 u8Padding[2]; | |
d2a392c2 | 115 | }; |
f8942e07 | 116 | |
c07b5313 | 117 | struct bcm_convergence_types { |
957d7cdc | 118 | /* 8bit Phs Classfier Action Of The Service Flow */ |
d6c31c12 | 119 | u8 u8ClassfierDSCAction; |
957d7cdc | 120 | /* 8bit Phs DSC Action Of The Service Flow */ |
d6c31c12 | 121 | u8 u8PhsDSCAction; |
957d7cdc | 122 | /* 16bit Padding */ |
d6c31c12 | 123 | u8 u8Padding[2]; |
4b0cb3cb KM |
124 | /* Packet classification rules structure */ |
125 | struct bcm_packet_class_rules cCPacketClassificationRule; | |
d2a392c2 KM |
126 | /* Payload header suppression rules structure */ |
127 | struct bcm_phs_rules cPhsRule; | |
f8942e07 | 128 | }; |
f8942e07 | 129 | |
b766fb15 | 130 | struct bcm_connect_mgr_params { |
957d7cdc | 131 | /* 32bitSFID Of The Service Flow */ |
106b0b4c | 132 | u32 u32SFID; |
957d7cdc | 133 | /* 32bit Maximum Sustained Traffic Rate of the Service Flow */ |
106b0b4c | 134 | u32 u32MaxSustainedTrafficRate; |
957d7cdc | 135 | /* 32bit Maximum Traffic Burst allowed for the Service Flow */ |
106b0b4c | 136 | u32 u32MaxTrafficBurst; |
957d7cdc | 137 | /* 32bit Minimum Reserved Traffic Rate of the Service Flow */ |
106b0b4c | 138 | u32 u32MinReservedTrafficRate; |
957d7cdc | 139 | /* 32bit Tolerated Jitter of the Service Flow */ |
106b0b4c | 140 | u32 u32ToleratedJitter; |
957d7cdc | 141 | /* 32bit Maximum Latency of the Service Flow */ |
106b0b4c | 142 | u32 u32MaximumLatency; |
957d7cdc | 143 | /* 16bitCID Of The Service Flow */ |
662e2840 | 144 | u16 u16CID; |
957d7cdc | 145 | /* 16bit SAID on which the service flow being set up shall be mapped */ |
662e2840 | 146 | u16 u16TargetSAID; |
957d7cdc | 147 | /* 16bit ARQ window size negotiated */ |
662e2840 | 148 | u16 u16ARQWindowSize; |
957d7cdc | 149 | /* 16bit Total Tx delay incl sending, receiving & processing delays */ |
662e2840 | 150 | u16 u16ARQRetryTxTimeOut; |
957d7cdc | 151 | /* 16bit Total Rx delay incl sending, receiving & processing delays */ |
662e2840 | 152 | u16 u16ARQRetryRxTimeOut; |
957d7cdc | 153 | /* 16bit ARQ block lifetime */ |
662e2840 | 154 | u16 u16ARQBlockLifeTime; |
957d7cdc | 155 | /* 16bit ARQ Sync loss timeout */ |
662e2840 | 156 | u16 u16ARQSyncLossTimeOut; |
957d7cdc | 157 | /* 16bit ARQ Purge timeout */ |
662e2840 | 158 | u16 u16ARQRxPurgeTimeOut; |
957d7cdc KM |
159 | /* TODO::Remove this once we move to a new CORR2 driver |
160 | * brief Size of an ARQ block | |
161 | */ | |
662e2840 | 162 | u16 u16ARQBlockSize; |
957d7cdc KM |
163 | /* #endif */ |
164 | /* 16bit Nominal interval b/w consecutive SDU arrivals at MAC SAP */ | |
662e2840 | 165 | u16 u16SDUInterArrivalTime; |
957d7cdc | 166 | /* 16bit Specifies the time base for rate measurement */ |
662e2840 | 167 | u16 u16TimeBase; |
957d7cdc | 168 | /* 16bit Interval b/w Successive Grant oppurtunities */ |
662e2840 | 169 | u16 u16UnsolicitedGrantInterval; |
957d7cdc | 170 | /* 16bit Interval b/w Successive Polling grant oppurtunities */ |
662e2840 | 171 | u16 u16UnsolicitedPollingInterval; |
957d7cdc | 172 | /* internal var to get the overhead */ |
662e2840 | 173 | u16 u16MacOverhead; |
957d7cdc | 174 | /* MBS contents Identifier */ |
662e2840 | 175 | u16 u16MBSContentsID[MBS_CONTENTS_ID_LENGTH]; |
957d7cdc | 176 | /* MBS contents Identifier length */ |
d6c31c12 | 177 | u8 u8MBSContentsIDLength; |
957d7cdc | 178 | /* ServiceClassName Length Of The Service Flow */ |
d6c31c12 | 179 | u8 u8ServiceClassNameLength; |
957d7cdc | 180 | /* 32bytes ServiceClassName Of The Service Flow */ |
d6c31c12 | 181 | u8 u8ServiceClassName[32]; |
957d7cdc | 182 | /* 8bit Indicates whether or not MBS service is requested for this Serivce Flow */ |
d6c31c12 | 183 | u8 u8MBSService; |
957d7cdc | 184 | /* 8bit QOS Parameter Set specifies proper application of QoS parameters to Provisioned, Admitted and Active sets */ |
d6c31c12 | 185 | u8 u8QosParamSet; |
957d7cdc | 186 | /* 8bit Traffic Priority Of the Service Flow */ |
d6c31c12 | 187 | u8 u8TrafficPriority; |
957d7cdc | 188 | /* 8bit Uplink Grant Scheduling Type of The Service Flow */ |
d6c31c12 | 189 | u8 u8ServiceFlowSchedulingType; |
957d7cdc | 190 | /* 8bit Request transmission Policy of the Service Flow */ |
d6c31c12 | 191 | u8 u8RequesttransmissionPolicy; |
957d7cdc | 192 | /* 8bit Specifies whether SDUs for this Service flow are of FixedLength or Variable length */ |
d6c31c12 | 193 | u8 u8FixedLengthVSVariableLengthSDUIndicator; |
957d7cdc | 194 | /* 8bit Length of the SDU for a fixed length SDU service flow */ |
d6c31c12 | 195 | u8 u8SDUSize; |
957d7cdc | 196 | /* 8bit Indicates whether or not ARQ is requested for this connection */ |
d6c31c12 | 197 | u8 u8ARQEnable; |
957d7cdc | 198 | /* < 8bit Indicates whether or not data has tobe delivered in order to higher layer */ |
d6c31c12 | 199 | u8 u8ARQDeliverInOrder; |
957d7cdc | 200 | /* 8bit Receiver ARQ ACK processing time */ |
d6c31c12 | 201 | u8 u8RxARQAckProcessingTime; |
957d7cdc | 202 | /* 8bit Convergence Sublayer Specification Of The Service Flow */ |
d6c31c12 | 203 | u8 u8CSSpecification; |
957d7cdc | 204 | /* 8 bit Type of data delivery service */ |
d6c31c12 | 205 | u8 u8TypeOfDataDeliveryService; |
957d7cdc | 206 | /* 8bit Specifies whether a service flow may generate Paging */ |
d6c31c12 | 207 | u8 u8PagingPreference; |
957d7cdc | 208 | /* 8bit Indicates the MBS Zone through which the connection or virtual connection is valid */ |
d6c31c12 | 209 | u8 u8MBSZoneIdentifierassignment; |
957d7cdc | 210 | /* 8bit Specifies whether traffic on SF should generate MOB_TRF_IND to MS in sleep mode */ |
d6c31c12 | 211 | u8 u8TrafficIndicationPreference; |
957d7cdc | 212 | /* 8bit Speciifes the length of predefined Global QoS parameter set encoding for this SF */ |
d6c31c12 | 213 | u8 u8GlobalServicesClassNameLength; |
957d7cdc | 214 | /* 6 byte Speciifes the predefined Global QoS parameter set encoding for this SF */ |
d6c31c12 | 215 | u8 u8GlobalServicesClassName[GLOBAL_SF_CLASSNAME_LENGTH]; |
957d7cdc | 216 | /* 8bit Indicates whether or not SN feedback is enabled for the conn */ |
d6c31c12 | 217 | u8 u8SNFeedbackEnabled; |
957d7cdc | 218 | /* Indicates the size of the Fragment Sequence Number for the connection */ |
d6c31c12 | 219 | u8 u8FSNSize; |
957d7cdc | 220 | /* 8bit Number of CIDs in active BS list */ |
d6c31c12 | 221 | u8 u8CIDAllocation4activeBSsLength; |
957d7cdc | 222 | /* CIDs of BS in the active list */ |
d6c31c12 | 223 | u8 u8CIDAllocation4activeBSs[MAX_NUM_ACTIVE_BS]; |
957d7cdc | 224 | /* Specifies if PDU extended subheader should be applied on every PDU on this conn */ |
d6c31c12 | 225 | u8 u8PDUSNExtendedSubheader4HarqReordering; |
957d7cdc | 226 | /* 8bit Specifies whether the connection uses HARQ or not */ |
d6c31c12 | 227 | u8 u8HARQServiceFlows; |
957d7cdc | 228 | /* Specifies the length of Authorization token */ |
d6c31c12 | 229 | u8 u8AuthTokenLength; |
957d7cdc | 230 | /* Specifies the Authorization token */ |
d6c31c12 | 231 | u8 u8AuthToken[AUTH_TOKEN_LENGTH]; |
957d7cdc | 232 | /* specifes Number of HARQ channels used to carry data length */ |
d6c31c12 | 233 | u8 u8HarqChannelMappingLength; |
957d7cdc | 234 | /* specifes HARQ channels used to carry data */ |
d6c31c12 | 235 | u8 u8HARQChannelMapping[NUM_HARQ_CHANNELS]; |
957d7cdc | 236 | /* 8bit Length of Vendor Specific QoS Params */ |
d6c31c12 | 237 | u8 u8VendorSpecificQoSParamLength; |
957d7cdc | 238 | /* 1byte Vendor Specific QoS Param Of The Service Flow */ |
d6c31c12 | 239 | u8 u8VendorSpecificQoSParam[VENDOR_SPECIF_QOS_PARAM]; |
957d7cdc | 240 | /* indicates total classifiers in the SF */ |
d6c31c12 KM |
241 | u8 u8TotalClassifiers; /* < Total number of valid classifiers */ |
242 | u8 bValid; /* < Validity flag */ | |
243 | u8 u8Padding; /* < Padding byte */ | |
c07b5313 KM |
244 | /* |
245 | * Structure for Convergence SubLayer Types with a maximum of 4 classifiers | |
246 | */ | |
247 | struct bcm_convergence_types cConvergenceSLTypes[MAX_CLASSIFIERS_IN_SF]; | |
b766fb15 | 248 | }; |
f8942e07 | 249 | |
fc1ad162 | 250 | struct bcm_add_request { |
d6c31c12 KM |
251 | u8 u8Type; /* < Type */ |
252 | u8 eConnectionDir; /* < Connection direction */ | |
957d7cdc | 253 | /* brief 16 bit TID */ |
662e2840 | 254 | u16 u16TID; /* < 16bit TID */ |
957d7cdc | 255 | /* brief 16bitCID */ |
662e2840 | 256 | u16 u16CID; /* < 16bit CID */ |
957d7cdc | 257 | /* brief 16bitVCID */ |
662e2840 | 258 | u16 u16VCID; /* < 16bit VCID */ |
b766fb15 | 259 | struct bcm_connect_mgr_params *psfParameterSet; /* < connection manager parameters */ |
fc1ad162 | 260 | }; |
f8942e07 | 261 | |
da529f0f | 262 | struct bcm_add_indication { |
d6c31c12 KM |
263 | u8 u8Type; /* < Type */ |
264 | u8 eConnectionDir; /* < Connection Direction */ | |
957d7cdc | 265 | /* brief 16 bit TID */ |
662e2840 | 266 | u16 u16TID; /* < TID */ |
957d7cdc | 267 | /* brief 16bitCID */ |
662e2840 | 268 | u16 u16CID; /* < 16bitCID */ |
957d7cdc | 269 | /* brief 16bitVCID */ |
662e2840 | 270 | u16 u16VCID; /* < 16bitVCID */ |
b766fb15 KM |
271 | struct bcm_connect_mgr_params *psfAuthorizedSet; /* Authorized set of connection manager parameters */ |
272 | struct bcm_connect_mgr_params *psfAdmittedSet; /* Admitted set of connection manager parameters */ | |
273 | struct bcm_connect_mgr_params *psfActiveSet; /* Activeset of connection manager parameters */ | |
d6c31c12 KM |
274 | u8 u8CC; /* <Confirmation Code */ |
275 | u8 u8Padd; /* < 8-bit Padding */ | |
662e2840 | 276 | u16 u16Padd; /* < 16 bit Padding */ |
da529f0f | 277 | }; |
f8942e07 | 278 | |
ec5bb992 | 279 | struct bcm_del_request { |
d6c31c12 KM |
280 | u8 u8Type; /* < Type */ |
281 | u8 u8Padding; /* < Padding byte */ | |
662e2840 | 282 | u16 u16TID; /* < TID */ |
957d7cdc | 283 | /* brief 32bitSFID */ |
106b0b4c | 284 | u32 u32SFID; /* < SFID */ |
ec5bb992 | 285 | }; |
f8942e07 | 286 | |
de473db1 | 287 | struct bcm_del_indication { |
d6c31c12 KM |
288 | u8 u8Type; /* < Type */ |
289 | u8 u8Padding; /* < Padding */ | |
662e2840 | 290 | u16 u16TID; /* < TID */ |
957d7cdc | 291 | /* brief 16bitCID */ |
662e2840 | 292 | u16 u16CID; /* < CID */ |
957d7cdc | 293 | /* brief 16bitVCID */ |
662e2840 | 294 | u16 u16VCID; /* < VCID */ |
957d7cdc | 295 | /* brief 32bitSFID */ |
106b0b4c | 296 | u32 u32SFID; /* < SFID */ |
957d7cdc | 297 | /* brief 8bit Confirmation code */ |
d6c31c12 KM |
298 | u8 u8ConfirmationCode; /* < Confirmation code */ |
299 | u8 u8Padding1[3]; /* < 3 byte Padding */ | |
de473db1 | 300 | }; |
f8942e07 | 301 | |
f34170c7 | 302 | struct bcm_stim_sfhostnotify { |
106b0b4c | 303 | u32 SFID; /* SFID of the service flow */ |
662e2840 KM |
304 | u16 newCID; /* the new/changed CID */ |
305 | u16 VCID; /* Get new Vcid if the flow has been made active in CID update TLV, but was inactive earlier or the orig vcid */ | |
d6c31c12 KM |
306 | u8 RetainSF; /* Indication to Host if the SF is to be retained or deleted; if TRUE-retain else delete */ |
307 | u8 QoSParamSet; /* QoS paramset of the retained SF */ | |
662e2840 | 308 | u16 u16reserved; /* For byte alignment */ |
f34170c7 | 309 | }; |
f8942e07 SH |
310 | |
311 | #endif |