Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
csr_wifi_router_prim.h
Go to the documentation of this file.
1 /*****************************************************************************
2 
3  (c) Cambridge Silicon Radio Limited 2011
4  All rights reserved and confidential information of CSR
5 
6  Refer to LICENSE.txt included with this source for details
7  on the license terms.
8 
9 *****************************************************************************/
10 
11 /* Note: this is an auto-generated file. */
12 
13 #ifndef CSR_WIFI_ROUTER_PRIM_H__
14 #define CSR_WIFI_ROUTER_PRIM_H__
15 
16 #include <linux/types.h>
17 #include "csr_prim_defs.h"
18 #include "csr_sched.h"
19 #include "csr_wifi_common.h"
20 #include "csr_result.h"
21 #include "csr_wifi_fsm_event.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 #define CSR_WIFI_ROUTER_PRIM (0x0400)
28 
30 
32 
33 /*******************************************************************************
34 
35  NAME
36  CsrWifiRouterAppType
37 
38  DESCRIPTION
39 
40  VALUES
41  CSR_WIFI_ROUTER_APP_TYPE_SME -
42  CSR_WIFI_ROUTER_APP_TYPE_PAL -
43  CSR_WIFI_ROUTER_APP_TYPE_NME -
44  CSR_WIFI_ROUTER_APP_TYPE_OTHER -
45 
46 *******************************************************************************/
48 #define CSR_WIFI_ROUTER_APP_TYPE_SME ((CsrWifiRouterAppType) 0x0)
49 #define CSR_WIFI_ROUTER_APP_TYPE_PAL ((CsrWifiRouterAppType) 0x1)
50 #define CSR_WIFI_ROUTER_APP_TYPE_NME ((CsrWifiRouterAppType) 0x2)
51 #define CSR_WIFI_ROUTER_APP_TYPE_OTHER ((CsrWifiRouterAppType) 0x3)
52 
53 /*******************************************************************************
54 
55  NAME
56  CsrWifiRouterEncapsulation
57 
58  DESCRIPTION
59  Indicates the type of encapsulation used for the subscription
60 
61  VALUES
62  CSR_WIFI_ROUTER_ENCAPSULATION_ETHERNET
63  - Ethernet encapsulation
64  CSR_WIFI_ROUTER_ENCAPSULATION_LLC_SNAP
65  - LLC/SNAP encapsulation
66 
67 *******************************************************************************/
69 #define CSR_WIFI_ROUTER_ENCAPSULATION_ETHERNET ((CsrWifiRouterEncapsulation) 0x00)
70 #define CSR_WIFI_ROUTER_ENCAPSULATION_LLC_SNAP ((CsrWifiRouterEncapsulation) 0x01)
71 
72 /*******************************************************************************
73 
74  NAME
75  CsrWifiRouterOui
76 
77  DESCRIPTION
78 
79  VALUES
80  CSR_WIFI_ROUTER_OUI_RFC_1042 -
81  CSR_WIFI_ROUTER_OUI_BT -
82 
83 *******************************************************************************/
85 #define CSR_WIFI_ROUTER_OUI_RFC_1042 ((CsrWifiRouterOui) 0x000000)
86 #define CSR_WIFI_ROUTER_OUI_BT ((CsrWifiRouterOui) 0x001958)
87 
88 /*******************************************************************************
89 
90  NAME
91  CsrWifiRouterPriority
92 
93  DESCRIPTION
94  As defined in the IEEE 802.11 standards
95 
96  VALUES
97  CSR_WIFI_ROUTER_PRIORITY_QOS_UP0
98  - See IEEE 802.11 Standard
99  CSR_WIFI_ROUTER_PRIORITY_QOS_UP1
100  - See IEEE 802.11 Standard
101  CSR_WIFI_ROUTER_PRIORITY_QOS_UP2
102  - See IEEE 802.11 Standard
103  CSR_WIFI_ROUTER_PRIORITY_QOS_UP3
104  - See IEEE 802.11 Standard
105  CSR_WIFI_ROUTER_PRIORITY_QOS_UP4
106  - See IEEE 802.11 Standard
107  CSR_WIFI_ROUTER_PRIORITY_QOS_UP5
108  - See IEEE 802.11 Standard
109  CSR_WIFI_ROUTER_PRIORITY_QOS_UP6
110  - See IEEE 802.11 Standard
111  CSR_WIFI_ROUTER_PRIORITY_QOS_UP7
112  - See IEEE 802.11 Standard
113  CSR_WIFI_ROUTER_PRIORITY_CONTENTION
114  - See IEEE 802.11 Standard
115  CSR_WIFI_ROUTER_PRIORITY_MANAGEMENT
116  - See IEEE 802.11 Standard
117 
118 *******************************************************************************/
120 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP0 ((CsrWifiRouterPriority) 0x0000)
121 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP1 ((CsrWifiRouterPriority) 0x0001)
122 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP2 ((CsrWifiRouterPriority) 0x0002)
123 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP3 ((CsrWifiRouterPriority) 0x0003)
124 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP4 ((CsrWifiRouterPriority) 0x0004)
125 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP5 ((CsrWifiRouterPriority) 0x0005)
126 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP6 ((CsrWifiRouterPriority) 0x0006)
127 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP7 ((CsrWifiRouterPriority) 0x0007)
128 #define CSR_WIFI_ROUTER_PRIORITY_CONTENTION ((CsrWifiRouterPriority) 0x8000)
129 #define CSR_WIFI_ROUTER_PRIORITY_MANAGEMENT ((CsrWifiRouterPriority) 0x8010)
130 
131 
132 /* Downstream */
133 #define CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST (0x0000)
134 
135 #define CSR_WIFI_ROUTER_MA_PACKET_SUBSCRIBE_REQ ((CsrWifiRouterPrim) (0x0000 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST))
136 #define CSR_WIFI_ROUTER_MA_PACKET_UNSUBSCRIBE_REQ ((CsrWifiRouterPrim) (0x0001 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST))
137 #define CSR_WIFI_ROUTER_MA_PACKET_REQ ((CsrWifiRouterPrim) (0x0002 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST))
138 #define CSR_WIFI_ROUTER_MA_PACKET_RES ((CsrWifiRouterPrim) (0x0003 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST))
139 #define CSR_WIFI_ROUTER_MA_PACKET_CANCEL_REQ ((CsrWifiRouterPrim) (0x0004 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST))
140 
141 
142 #define CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_HIGHEST (0x0004 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST)
143 
144 /* Upstream */
145 #define CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST (0x0000 + CSR_PRIM_UPSTREAM)
146 
147 #define CSR_WIFI_ROUTER_MA_PACKET_SUBSCRIBE_CFM ((CsrWifiRouterPrim)(0x0000 + CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST))
148 #define CSR_WIFI_ROUTER_MA_PACKET_UNSUBSCRIBE_CFM ((CsrWifiRouterPrim)(0x0001 + CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST))
149 #define CSR_WIFI_ROUTER_MA_PACKET_CFM ((CsrWifiRouterPrim)(0x0002 + CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST))
150 #define CSR_WIFI_ROUTER_MA_PACKET_IND ((CsrWifiRouterPrim)(0x0003 + CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST))
151 
152 #define CSR_WIFI_ROUTER_PRIM_UPSTREAM_HIGHEST (0x0003 + CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST)
153 
154 #define CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_COUNT (CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_HIGHEST + 1 - CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST)
155 #define CSR_WIFI_ROUTER_PRIM_UPSTREAM_COUNT (CSR_WIFI_ROUTER_PRIM_UPSTREAM_HIGHEST + 1 - CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST)
156 
157 /*******************************************************************************
158 
159  NAME
160  CsrWifiRouterMaPacketSubscribeReq
161 
162  DESCRIPTION
163  A task can use this primitive to subscribe for a particular OUI/protocol
164  and transmit and receive frames matching the subscription.
165  NOTE: Multiple subscriptions for a given protocol and OUI will result in
166  the first subscription receiving the data and not the subsequent
167  subscriptions.
168 
169  MEMBERS
170  common - Common header for use with the CsrWifiFsm Module
171  interfaceTag - Interface Identifier; unique identifier of an interface
172  encapsulation - Specifies the encapsulation type, which will be used for the
173  subscription
174  protocol - Together with the OUI, specifies the protocol, which a task
175  wants to subscribe to
176  oui - Specifies the OUI for the protocol, which a task wants to
177  subscribe to
178 
179 *******************************************************************************/
180 typedef struct
181 {
184  CsrWifiRouterEncapsulation encapsulation;
188 
189 /*******************************************************************************
190 
191  NAME
192  CsrWifiRouterMaPacketUnsubscribeReq
193 
194  DESCRIPTION
195  A task sends this primitive to unsubscribe a subscription
196 
197  MEMBERS
198  common - Common header for use with the CsrWifiFsm Module
199  interfaceTag - Interface Identifier; unique identifier of an interface
200  subscriptionHandle - The handle of the subscription
201 
202 *******************************************************************************/
203 typedef struct
204 {
209 
210 /*******************************************************************************
211 
212  NAME
213  CsrWifiRouterMaPacketReq
214 
215  DESCRIPTION
216  A task sends this primitive to transmit a frame.
217 
218  MEMBERS
219  common - Common header for use with the CsrWifiFsm Module
220  interfaceTag - Interface Identifier; unique identifier of an interface
221  subscriptionHandle - The handle of the subscription
222  frameLength - Length of the frame to be sent in bytes
223  frame - Pointer to the frame to be sent
224  freeFunction - Pointer to function to be used to free the frame
225  priority - Priority of the frame, which should be sent
226  hostTag - An application shall set the bits b31..b28 using one of
227  the CSR_WIFI_ROUTER_APP_TYPE_* masks. Bits b0..b27 can
228  be used by the requestor without any restrictions, but
229  the hostTag shall be unique so the hostTag for
230  CSR_WIFI_ROUTER_APP _TYPE_OTHER should be constructured
231  in the following way [ CSR_WIFI_ROUTER_APP_TYPE_OTHER
232  (4 bits) | SubscriptionHandle (8 bits) | Sequence no.
233  (20 bits) ]. If the hostTag is not unique, the
234  behaviour of the system is unpredicatable with respect
235  to data/management frame transfer.
236  cfmRequested - Indicates if the requestor needs a confirm for packet
237  requests sent under this subscription. If set to TRUE,
238  the router will send a confirm, else it will not send
239  any confirm
240 
241 *******************************************************************************/
242 typedef struct
243 {
250  CsrWifiRouterPriority priority;
254 
255 /*******************************************************************************
256 
257  NAME
258  CsrWifiRouterMaPacketRes
259 
260  DESCRIPTION
261  A task send this primitive to confirm the reception of the received
262  frame.
263 
264  MEMBERS
265  common - Common header for use with the CsrWifiFsm Module
266  interfaceTag - Interface Identifier; unique identifier of an interface
267  subscriptionHandle - The handle of the subscription
268  result - Status of the operation
269 
270 *******************************************************************************/
271 typedef struct
272 {
278 
279 /*******************************************************************************
280 
281  NAME
282  CsrWifiRouterMaPacketCancelReq
283 
284  DESCRIPTION
285  This primitive is used to request cancellation of a previously send
286  CsrWifiRouterMaPacketReq.
287  The frame may already have been transmitted so there is no guarantees
288  that the CsrWifiRouterMaPacketCancelReq actually cancels the transmission
289  of the frame in question.
290  If the cancellation fails, the Router will send, if required,
291  CsrWifiRouterMaPacketCfm.
292  If the cancellation succeeds, the Router will not send
293  CsrWifiRouterMaPacketCfm.
294 
295  MEMBERS
296  common - Common header for use with the CsrWifiFsm Module
297  interfaceTag - Interface Identifier; unique identifier of an interface
298  hostTag - The hostTag for the frame, which should be cancelled.
299  priority - Priority of the frame, which should be cancelled
300  peerMacAddress - Destination MAC address of the frame, which should be
301  cancelled
302 
303 *******************************************************************************/
304 typedef struct
305 {
309  CsrWifiRouterPriority priority;
312 
313 /*******************************************************************************
314 
315  NAME
316  CsrWifiRouterMaPacketSubscribeCfm
317 
318  DESCRIPTION
319  The router sends this primitive to confirm the result of the
320  subscription.
321 
322  MEMBERS
323  common - Common header for use with the CsrWifiFsm Module
324  interfaceTag - Interface Identifier; unique identifier of an interface
325  subscriptionHandle - Handle to the subscription
326  This handle must be used in all subsequent requests
327  status - Status of the operation
328  allocOffset - Size of the offset for the frames of the subscription
329 
330 *******************************************************************************/
331 typedef struct
332 {
339 
340 /*******************************************************************************
341 
342  NAME
343  CsrWifiRouterMaPacketUnsubscribeCfm
344 
345  DESCRIPTION
346  The router sends this primitive to confirm the result of the
347  unsubscription.
348 
349  MEMBERS
350  common - Common header for use with the CsrWifiFsm Module
351  interfaceTag - Interface Identifier; unique identifier of an interface
352  status - Status of the operation
353 
354 *******************************************************************************/
355 typedef struct
356 {
361 
362 /*******************************************************************************
363 
364  NAME
365  CsrWifiRouterMaPacketCfm
366 
367  DESCRIPTION
368  The router sends the primitive to confirm the result of the transmission
369  of the packet of the corresponding CSR_WIFI_ROUTER MA_PACKET_REQ request.
370 
371  MEMBERS
372  common - Common header for use with the CsrWifiFsm Module
373  interfaceTag - Interface Identifier; unique identifier of an interface
374  result - Status of the operation
375  hostTag - The hostTrag will match the hostTag sent in the request.
376  rate - Transmission/Reception rate
377 
378 *******************************************************************************/
379 typedef struct
380 {
387 
388 /*******************************************************************************
389 
390  NAME
391  CsrWifiRouterMaPacketInd
392 
393  DESCRIPTION
394  The router sends the primitive to a subscribed task when it receives a
395  frame matching the subscription.
396 
397  MEMBERS
398  common - Common header for use with the CsrWifiFsm Module
399  interfaceTag - Interface Identifier; unique identifier of an interface
400  subscriptionHandle - The handle of the subscription
401  result - Status of the operation
402  frameLength - Length of the received frame in bytes
403  frame - Pointer to the received frame
404  freeFunction - Pointer to function to be used to free the frame
405  rssi - Received signal strength indication in dBm
406  snr - Signal to Noise Ratio
407  rate - Transmission/Reception rate
408 
409 *******************************************************************************/
410 typedef struct
411 {
423 
424 
425 #ifdef __cplusplus
426 }
427 #endif
428 
429 #endif /* CSR_WIFI_ROUTER_PRIM_H__ */
430