2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
36 #define DEFAULT_MGN_LIFETIME_RES_64us 125 /* 64us */
37 #define DEFAULT_MSDU_LIFETIME_RES_64us 8000
39 /* MIC HDR data header */
44 u8 ccmp_pn[IEEE80211_CCMP_PN_LEN];
53 u16 packing; /* packing to 48 bytes */
56 /* RsvTime buffer header */
57 struct vnt_rrv_time_rts {
58 __le16 rts_rrv_time_ba;
59 __le16 rts_rrv_time_aa;
60 __le16 rts_rrv_time_bb;
66 struct vnt_rrv_time_cts {
67 __le16 cts_rrv_time_ba;
73 struct vnt_rrv_time_ab {
79 struct vnt_tx_datahead_g {
80 struct vnt_phy_field b;
81 struct vnt_phy_field a;
84 __le16 time_stamp_off_b;
85 __le16 time_stamp_off_a;
86 struct ieee80211_hdr hdr;
89 struct vnt_tx_datahead_g_fb {
90 struct vnt_phy_field b;
91 struct vnt_phy_field a;
96 __le16 time_stamp_off_b;
97 __le16 time_stamp_off_a;
98 struct ieee80211_hdr hdr;
101 struct vnt_tx_datahead_ab {
102 struct vnt_phy_field ab;
104 __le16 time_stamp_off;
105 struct ieee80211_hdr hdr;
108 struct vnt_tx_datahead_a_fb {
109 struct vnt_phy_field a;
111 __le16 time_stamp_off;
114 struct ieee80211_hdr hdr;
117 /* RTS buffer header */
119 struct vnt_phy_field b;
120 struct vnt_phy_field a;
125 struct ieee80211_rts data;
126 struct vnt_tx_datahead_g data_head;
129 struct vnt_rts_g_fb {
130 struct vnt_phy_field b;
131 struct vnt_phy_field a;
136 __le16 rts_duration_ba_f0;
137 __le16 rts_duration_aa_f0;
138 __le16 rts_duration_ba_f1;
139 __le16 rts_duration_aa_f1;
140 struct ieee80211_rts data;
141 struct vnt_tx_datahead_g_fb data_head;
145 struct vnt_phy_field ab;
148 struct ieee80211_rts data;
149 struct vnt_tx_datahead_ab data_head;
152 struct vnt_rts_a_fb {
153 struct vnt_phy_field a;
156 __le16 rts_duration_f0;
157 __le16 rts_duration_f1;
158 struct ieee80211_rts data;
159 struct vnt_tx_datahead_a_fb data_head;
162 /* CTS buffer header */
164 struct vnt_phy_field b;
167 struct ieee80211_cts data;
169 struct vnt_tx_datahead_g data_head;
173 struct vnt_phy_field b;
176 __le16 cts_duration_ba_f0;
177 __le16 cts_duration_ba_f1;
178 struct ieee80211_cts data;
180 struct vnt_tx_datahead_g_fb data_head;
183 union vnt_tx_data_head {
185 struct vnt_rts_g rts_g;
186 struct vnt_rts_g_fb rts_g_fb;
188 struct vnt_rts_ab rts_ab;
189 struct vnt_rts_a_fb rts_a_fb;
191 struct vnt_cts cts_g;
192 struct vnt_cts_fb cts_g_fb;
194 struct vnt_tx_datahead_a_fb data_head_a_fb;
195 struct vnt_tx_datahead_ab data_head_ab;
198 struct vnt_tx_mic_hdr {
199 struct vnt_mic_hdr hdr;
200 union vnt_tx_data_head head;
204 struct vnt_tx_mic_hdr mic;
205 union vnt_tx_data_head head;
210 struct vnt_rrv_time_rts rts;
214 struct vnt_rrv_time_cts cts;
218 struct vnt_rrv_time_ab ab;
223 struct vnt_tx_fifo_head {
224 u8 tx_key[WLAN_KEY_LEN_CCMP];
231 struct vnt_tx_buffer {
234 __le16 tx_byte_count;
235 struct vnt_tx_fifo_head fifo_head;
236 union vnt_tx_head tx_head;
239 struct vnt_tx_short_buf_head {
242 struct vnt_phy_field ab;
244 __le16 time_stamp_off;
247 struct vnt_beacon_buffer {
250 __le16 tx_byte_count;
251 struct vnt_tx_short_buf_head short_head;
252 struct ieee80211_mgmt mgmt_hdr;
255 int vnt_tx_packet(struct vnt_private *, struct sk_buff *);
256 int vnt_beacon_make(struct vnt_private *, struct ieee80211_vif *);
257 int vnt_beacon_enable(struct vnt_private *, struct ieee80211_vif *,
258 struct ieee80211_bss_conf *);
260 #endif /* __RXTX_H__ */