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.
33 #define DEFAULT_MGN_LIFETIME_RES_64us 125 /* 64us */
34 #define DEFAULT_MSDU_LIFETIME_RES_64us 8000
36 /* MIC HDR data header */
41 u8 ccmp_pn[IEEE80211_CCMP_PN_LEN];
50 u16 packing; /* packing to 48 bytes */
53 /* RsvTime buffer header */
54 struct vnt_rrv_time_rts {
55 __le16 rts_rrv_time_ba;
56 __le16 rts_rrv_time_aa;
57 __le16 rts_rrv_time_bb;
63 struct vnt_rrv_time_cts {
64 __le16 cts_rrv_time_ba;
70 struct vnt_rrv_time_ab {
76 struct vnt_tx_datahead_g {
77 struct vnt_phy_field b;
78 struct vnt_phy_field a;
81 __le16 time_stamp_off_b;
82 __le16 time_stamp_off_a;
83 struct ieee80211_hdr hdr;
86 struct vnt_tx_datahead_g_fb {
87 struct vnt_phy_field b;
88 struct vnt_phy_field a;
93 __le16 time_stamp_off_b;
94 __le16 time_stamp_off_a;
95 struct ieee80211_hdr hdr;
98 struct vnt_tx_datahead_ab {
99 struct vnt_phy_field ab;
101 __le16 time_stamp_off;
102 struct ieee80211_hdr hdr;
105 struct vnt_tx_datahead_a_fb {
106 struct vnt_phy_field a;
108 __le16 time_stamp_off;
111 struct ieee80211_hdr hdr;
114 /* RTS buffer header */
116 struct vnt_phy_field b;
117 struct vnt_phy_field a;
122 struct ieee80211_rts data;
123 struct vnt_tx_datahead_g data_head;
126 struct vnt_rts_g_fb {
127 struct vnt_phy_field b;
128 struct vnt_phy_field a;
133 __le16 rts_duration_ba_f0;
134 __le16 rts_duration_aa_f0;
135 __le16 rts_duration_ba_f1;
136 __le16 rts_duration_aa_f1;
137 struct ieee80211_rts data;
138 struct vnt_tx_datahead_g_fb data_head;
142 struct vnt_phy_field ab;
145 struct ieee80211_rts data;
146 struct vnt_tx_datahead_ab data_head;
149 struct vnt_rts_a_fb {
150 struct vnt_phy_field a;
153 __le16 rts_duration_f0;
154 __le16 rts_duration_f1;
155 struct ieee80211_rts data;
156 struct vnt_tx_datahead_a_fb data_head;
159 /* CTS buffer header */
161 struct vnt_phy_field b;
164 struct ieee80211_cts data;
166 struct vnt_tx_datahead_g data_head;
170 struct vnt_phy_field b;
173 __le16 cts_duration_ba_f0;
174 __le16 cts_duration_ba_f1;
175 struct ieee80211_cts data;
177 struct vnt_tx_datahead_g_fb data_head;
180 union vnt_tx_data_head {
182 struct vnt_rts_g rts_g;
183 struct vnt_rts_g_fb rts_g_fb;
185 struct vnt_rts_ab rts_ab;
186 struct vnt_rts_a_fb rts_a_fb;
188 struct vnt_cts cts_g;
189 struct vnt_cts_fb cts_g_fb;
191 struct vnt_tx_datahead_a_fb data_head_a_fb;
192 struct vnt_tx_datahead_ab data_head_ab;
195 struct vnt_tx_mic_hdr {
196 struct vnt_mic_hdr hdr;
197 union vnt_tx_data_head head;
201 struct vnt_tx_mic_hdr mic;
202 union vnt_tx_data_head head;
207 struct vnt_rrv_time_rts rts;
211 struct vnt_rrv_time_cts cts;
215 struct vnt_rrv_time_ab ab;
220 struct vnt_tx_fifo_head {
221 u8 tx_key[WLAN_KEY_LEN_CCMP];
228 struct vnt_tx_buffer {
231 __le16 tx_byte_count;
232 struct vnt_tx_fifo_head fifo_head;
233 union vnt_tx_head tx_head;
236 struct vnt_tx_short_buf_head {
239 struct vnt_phy_field ab;
241 __le16 time_stamp_off;
244 struct vnt_beacon_buffer {
247 __le16 tx_byte_count;
248 struct vnt_tx_short_buf_head short_head;
249 struct ieee80211_mgmt mgmt_hdr;
252 int vnt_tx_packet(struct vnt_private *, struct sk_buff *);
253 int vnt_beacon_make(struct vnt_private *, struct ieee80211_vif *);
254 int vnt_beacon_enable(struct vnt_private *, struct ieee80211_vif *,
255 struct ieee80211_bss_conf *);
257 #endif /* __RXTX_H__ */