Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[deliverable/linux.git] / drivers / staging / bcm / cntrl_SignalingInterface.h
CommitLineData
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 37struct 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 95struct 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 117struct 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 130struct 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 250struct 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 262struct 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 279struct 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 287struct 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 302struct 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
This page took 0.307721 seconds and 5 git commands to generate.