2 * Copyright (c) 2010 Broadcom Corporation
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
24 #include <packed_section_start.h>
26 #define WME_TSPEC_HDR_LEN 2
27 #define WME_TSPEC_BODY_OFF 2
29 #define WME_CATEGORY_CODE_OFFSET 0
30 #define WME_ACTION_CODE_OFFSET 1
31 #define WME_TOKEN_CODE_OFFSET 2
32 #define WME_STATUS_CODE_OFFSET 3
34 BWL_PRE_PACKED_STRUCT struct tsinfo {
36 } BWL_POST_PACKED_STRUCT;
38 typedef struct tsinfo tsinfo_t;
40 typedef BWL_PRE_PACKED_STRUCT struct tspec {
41 uint8 oui[DOT11_OUI_LEN];
48 uint32 min_srv_interval;
49 uint32 max_srv_interval;
50 uint32 inactivity_interval;
51 uint32 suspension_interval;
52 uint32 srv_start_time;
54 uint32 mean_data_rate;
55 uint32 peak_data_rate;
56 uint32 max_burst_size;
61 } BWL_POST_PACKED_STRUCT tspec_t;
63 #define WME_TSPEC_LEN (sizeof(tspec_t))
65 #define TS_INFO_TID_SHIFT 1
66 #define TS_INFO_TID_MASK (0xf << TS_INFO_TID_SHIFT)
67 #define TS_INFO_CONTENTION_SHIFT 7
68 #define TS_INFO_CONTENTION_MASK (0x1 << TS_INFO_CONTENTION_SHIFT)
69 #define TS_INFO_DIRECTION_SHIFT 5
70 #define TS_INFO_DIRECTION_MASK (0x3 << TS_INFO_DIRECTION_SHIFT)
71 #define TS_INFO_PSB_SHIFT 2
72 #define TS_INFO_PSB_MASK (1 << TS_INFO_PSB_SHIFT)
73 #define TS_INFO_UPLINK (0 << TS_INFO_DIRECTION_SHIFT)
74 #define TS_INFO_DOWNLINK (1 << TS_INFO_DIRECTION_SHIFT)
75 #define TS_INFO_BIDIRECTIONAL (3 << TS_INFO_DIRECTION_SHIFT)
76 #define TS_INFO_USER_PRIO_SHIFT 3
77 #define TS_INFO_USER_PRIO_MASK (0x7 << TS_INFO_USER_PRIO_SHIFT)
79 #define WLC_CAC_GET_TID(pt) ((((pt).octets[0]) & \
80 TS_INFO_TID_MASK) >> TS_INFO_TID_SHIFT)
81 #define WLC_CAC_GET_DIR(pt) ((((pt).octets[0]) & \
82 TS_INFO_DIRECTION_MASK) >> TS_INFO_DIRECTION_SHIFT)
83 #define WLC_CAC_GET_PSB(pt) ((((pt).octets[1]) & \
84 TS_INFO_PSB_MASK) >> TS_INFO_PSB_SHIFT)
85 #define WLC_CAC_GET_USER_PRIO(pt) ((((pt).octets[1]) & \
86 TS_INFO_USER_PRIO_MASK) >> TS_INFO_USER_PRIO_SHIFT)
88 #define WLC_CAC_SET_TID(pt, id) ((((pt).octets[0]) & (~TS_INFO_TID_MASK)) | \
89 ((id) << TS_INFO_TID_SHIFT))
90 #define WLC_CAC_SET_USER_PRIO(pt, prio) ((((pt).octets[0]) & \
91 (~TS_INFO_USER_PRIO_MASK)) | ((prio) << TS_INFO_USER_PRIO_SHIFT))
93 #define QBSS_LOAD_IE_LEN 5
94 #define QBSS_LOAD_AAC_OFF 3
96 #define CAC_ADDTS_RESP_TIMEOUT 300
98 #define DOT11E_STATUS_ADMISSION_ACCEPTED 0
99 #define DOT11E_STATUS_ADDTS_INVALID_PARAM 1
100 #define DOT11E_STATUS_ADDTS_REFUSED_NSBW 3
101 #define DOT11E_STATUS_ADDTS_REFUSED_AWHILE 47
103 #define DOT11E_STATUS_QSTA_LEAVE_QBSS 36
104 #define DOT11E_STATUS_END_TS 37
105 #define DOT11E_STATUS_UNKNOWN_TS 38
106 #define DOT11E_STATUS_QSTA_REQ_TIMEOUT 39
108 #include <packed_section_end.h>
110 #endif /* _802_11e_H_ */