1 #ifndef CNTRL_SIGNALING_INTERFACE_
2 #define CNTRL_SIGNALING_INTERFACE_
13 #define MAX_CLASSIFIERS_IN_SF 4
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
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
38 * structure Definitions
40 * brief class cCPacketClassificationRule
42 struct _stCPacketClassificationRuleSI {
43 /* 16bit UserPriority Of The Service Flow */
44 B_UINT16 u16UserPriority;
45 /* 16bit VLANID Of The Service Flow */
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 */
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;
99 typedef struct _stCPacketClassificationRuleSI CCPacketClassificationRuleSI, stCPacketClassificationRuleSI, *pstCPacketClassificationRuleSI;
101 struct bcm_phs_rules {
102 /* 8bit PHS Index Of The Service Flow */
104 /* PHSF Length Of The Service Flow */
105 B_UINT8 u8PHSFLength;
106 /* String of bytes containing header information to be suppressed by the sending CS and reconstructed by the receiving CS */
107 B_UINT8 u8PHSF[MAX_PHS_LENGTHS];
108 /* PHSM Length Of The Service Flow */
109 B_UINT8 u8PHSMLength;
110 /* PHS Mask for the SF */
111 B_UINT8 u8PHSM[MAX_PHS_LENGTHS];
112 /* 8bit Total number of bytes to be suppressed for the Service Flow */
114 /* 8bit Indicates whether or not Packet Header contents need to be verified prior to suppression */
116 /* Vendor Specific PHS param Length Of The Service Flow */
117 B_UINT8 u8VendorSpecificPHSParamsLength;
118 /* Vendor Specific PHS param Of The Service Flow */
119 B_UINT8 u8VendorSpecificPHSParams[VENDOR_PHS_PARAM_LENGTH];
120 B_UINT8 u8Padding[2];
123 struct bcm_convergence_types {
124 /* 8bit Phs Classfier Action Of The Service Flow */
125 B_UINT8 u8ClassfierDSCAction;
126 /* 8bit Phs DSC Action Of The Service Flow */
127 B_UINT8 u8PhsDSCAction;
129 B_UINT8 u8Padding[2];
130 /* brief class cCPacketClassificationRule */
131 stCPacketClassificationRuleSI cCPacketClassificationRule;
132 /* Payload header suppression rules structure */
133 struct bcm_phs_rules cPhsRule;
136 struct bcm_connect_mgr_params {
137 /* 32bitSFID Of The Service Flow */
139 /* 32bit Maximum Sustained Traffic Rate of the Service Flow */
140 B_UINT32 u32MaxSustainedTrafficRate;
141 /* 32bit Maximum Traffic Burst allowed for the Service Flow */
142 B_UINT32 u32MaxTrafficBurst;
143 /* 32bit Minimum Reserved Traffic Rate of the Service Flow */
144 B_UINT32 u32MinReservedTrafficRate;
145 /* 32bit Tolerated Jitter of the Service Flow */
146 B_UINT32 u32ToleratedJitter;
147 /* 32bit Maximum Latency of the Service Flow */
148 B_UINT32 u32MaximumLatency;
149 /* 16bitCID Of The Service Flow */
151 /* 16bit SAID on which the service flow being set up shall be mapped */
152 B_UINT16 u16TargetSAID;
153 /* 16bit ARQ window size negotiated */
154 B_UINT16 u16ARQWindowSize;
155 /* 16bit Total Tx delay incl sending, receiving & processing delays */
156 B_UINT16 u16ARQRetryTxTimeOut;
157 /* 16bit Total Rx delay incl sending, receiving & processing delays */
158 B_UINT16 u16ARQRetryRxTimeOut;
159 /* 16bit ARQ block lifetime */
160 B_UINT16 u16ARQBlockLifeTime;
161 /* 16bit ARQ Sync loss timeout */
162 B_UINT16 u16ARQSyncLossTimeOut;
163 /* 16bit ARQ Purge timeout */
164 B_UINT16 u16ARQRxPurgeTimeOut;
165 /* TODO::Remove this once we move to a new CORR2 driver
166 * brief Size of an ARQ block
168 B_UINT16 u16ARQBlockSize;
170 /* 16bit Nominal interval b/w consecutive SDU arrivals at MAC SAP */
171 B_UINT16 u16SDUInterArrivalTime;
172 /* 16bit Specifies the time base for rate measurement */
173 B_UINT16 u16TimeBase;
174 /* 16bit Interval b/w Successive Grant oppurtunities */
175 B_UINT16 u16UnsolicitedGrantInterval;
176 /* 16bit Interval b/w Successive Polling grant oppurtunities */
177 B_UINT16 u16UnsolicitedPollingInterval;
178 /* internal var to get the overhead */
179 B_UINT16 u16MacOverhead;
180 /* MBS contents Identifier */
181 B_UINT16 u16MBSContentsID[MBS_CONTENTS_ID_LENGTH];
182 /* MBS contents Identifier length */
183 B_UINT8 u8MBSContentsIDLength;
184 /* ServiceClassName Length Of The Service Flow */
185 B_UINT8 u8ServiceClassNameLength;
186 /* 32bytes ServiceClassName Of The Service Flow */
187 B_UINT8 u8ServiceClassName[32];
188 /* 8bit Indicates whether or not MBS service is requested for this Serivce Flow */
189 B_UINT8 u8MBSService;
190 /* 8bit QOS Parameter Set specifies proper application of QoS parameters to Provisioned, Admitted and Active sets */
191 B_UINT8 u8QosParamSet;
192 /* 8bit Traffic Priority Of the Service Flow */
193 B_UINT8 u8TrafficPriority;
194 /* 8bit Uplink Grant Scheduling Type of The Service Flow */
195 B_UINT8 u8ServiceFlowSchedulingType;
196 /* 8bit Request transmission Policy of the Service Flow */
197 B_UINT8 u8RequesttransmissionPolicy;
198 /* 8bit Specifies whether SDUs for this Service flow are of FixedLength or Variable length */
199 B_UINT8 u8FixedLengthVSVariableLengthSDUIndicator;
200 /* 8bit Length of the SDU for a fixed length SDU service flow */
202 /* 8bit Indicates whether or not ARQ is requested for this connection */
204 /* < 8bit Indicates whether or not data has tobe delivered in order to higher layer */
205 B_UINT8 u8ARQDeliverInOrder;
206 /* 8bit Receiver ARQ ACK processing time */
207 B_UINT8 u8RxARQAckProcessingTime;
208 /* 8bit Convergence Sublayer Specification Of The Service Flow */
209 B_UINT8 u8CSSpecification;
210 /* 8 bit Type of data delivery service */
211 B_UINT8 u8TypeOfDataDeliveryService;
212 /* 8bit Specifies whether a service flow may generate Paging */
213 B_UINT8 u8PagingPreference;
214 /* 8bit Indicates the MBS Zone through which the connection or virtual connection is valid */
215 B_UINT8 u8MBSZoneIdentifierassignment;
216 /* 8bit Specifies whether traffic on SF should generate MOB_TRF_IND to MS in sleep mode */
217 B_UINT8 u8TrafficIndicationPreference;
218 /* 8bit Speciifes the length of predefined Global QoS parameter set encoding for this SF */
219 B_UINT8 u8GlobalServicesClassNameLength;
220 /* 6 byte Speciifes the predefined Global QoS parameter set encoding for this SF */
221 B_UINT8 u8GlobalServicesClassName[GLOBAL_SF_CLASSNAME_LENGTH];
222 /* 8bit Indicates whether or not SN feedback is enabled for the conn */
223 B_UINT8 u8SNFeedbackEnabled;
224 /* Indicates the size of the Fragment Sequence Number for the connection */
226 /* 8bit Number of CIDs in active BS list */
227 B_UINT8 u8CIDAllocation4activeBSsLength;
228 /* CIDs of BS in the active list */
229 B_UINT8 u8CIDAllocation4activeBSs[MAX_NUM_ACTIVE_BS];
230 /* Specifies if PDU extended subheader should be applied on every PDU on this conn */
231 B_UINT8 u8PDUSNExtendedSubheader4HarqReordering;
232 /* 8bit Specifies whether the connection uses HARQ or not */
233 B_UINT8 u8HARQServiceFlows;
234 /* Specifies the length of Authorization token */
235 B_UINT8 u8AuthTokenLength;
236 /* Specifies the Authorization token */
237 B_UINT8 u8AuthToken[AUTH_TOKEN_LENGTH];
238 /* specifes Number of HARQ channels used to carry data length */
239 B_UINT8 u8HarqChannelMappingLength;
240 /* specifes HARQ channels used to carry data */
241 B_UINT8 u8HARQChannelMapping[NUM_HARQ_CHANNELS];
242 /* 8bit Length of Vendor Specific QoS Params */
243 B_UINT8 u8VendorSpecificQoSParamLength;
244 /* 1byte Vendor Specific QoS Param Of The Service Flow */
245 B_UINT8 u8VendorSpecificQoSParam[VENDOR_SPECIF_QOS_PARAM];
246 /* indicates total classifiers in the SF */
247 B_UINT8 u8TotalClassifiers; /* < Total number of valid classifiers */
248 B_UINT8 bValid; /* < Validity flag */
249 B_UINT8 u8Padding; /* < Padding byte */
251 * Structure for Convergence SubLayer Types with a maximum of 4 classifiers
253 struct bcm_convergence_types cConvergenceSLTypes[MAX_CLASSIFIERS_IN_SF];
256 struct bcm_add_request {
257 B_UINT8 u8Type; /* < Type */
258 B_UINT8 eConnectionDir; /* < Connection direction */
259 /* brief 16 bit TID */
260 B_UINT16 u16TID; /* < 16bit TID */
262 B_UINT16 u16CID; /* < 16bit CID */
263 /* brief 16bitVCID */
264 B_UINT16 u16VCID; /* < 16bit VCID */
265 struct bcm_connect_mgr_params *psfParameterSet; /* < connection manager parameters */
268 struct bcm_add_indication {
269 B_UINT8 u8Type; /* < Type */
270 B_UINT8 eConnectionDir; /* < Connection Direction */
271 /* brief 16 bit TID */
272 B_UINT16 u16TID; /* < TID */
274 B_UINT16 u16CID; /* < 16bitCID */
275 /* brief 16bitVCID */
276 B_UINT16 u16VCID; /* < 16bitVCID */
277 struct bcm_connect_mgr_params *psfAuthorizedSet; /* Authorized set of connection manager parameters */
278 struct bcm_connect_mgr_params *psfAdmittedSet; /* Admitted set of connection manager parameters */
279 struct bcm_connect_mgr_params *psfActiveSet; /* Activeset of connection manager parameters */
280 B_UINT8 u8CC; /* <Confirmation Code */
281 B_UINT8 u8Padd; /* < 8-bit Padding */
282 B_UINT16 u16Padd; /* < 16 bit Padding */
285 struct bcm_del_request {
286 B_UINT8 u8Type; /* < Type */
287 B_UINT8 u8Padding; /* < Padding byte */
288 B_UINT16 u16TID; /* < TID */
289 /* brief 32bitSFID */
290 B_UINT32 u32SFID; /* < SFID */
293 struct bcm_del_indication {
294 B_UINT8 u8Type; /* < Type */
295 B_UINT8 u8Padding; /* < Padding */
296 B_UINT16 u16TID; /* < TID */
298 B_UINT16 u16CID; /* < CID */
299 /* brief 16bitVCID */
300 B_UINT16 u16VCID; /* < VCID */
301 /* brief 32bitSFID */
302 B_UINT32 u32SFID; /* < SFID */
303 /* brief 8bit Confirmation code */
304 B_UINT8 u8ConfirmationCode; /* < Confirmation code */
305 B_UINT8 u8Padding1[3]; /* < 3 byte Padding */
308 struct bcm_stim_sfhostnotify {
309 B_UINT32 SFID; /* SFID of the service flow */
310 B_UINT16 newCID; /* the new/changed CID */
311 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 */
312 B_UINT8 RetainSF; /* Indication to Host if the SF is to be retained or deleted; if TRUE-retain else delete */
313 B_UINT8 QoSParamSet; /* QoS paramset of the retained SF */
314 B_UINT16 u16reserved; /* For byte alignment */