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__ */