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