1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
23 #define DEFAULT_MGN_LIFETIME_RES_64us 125 /* 64us */
24 #define DEFAULT_MSDU_LIFETIME_RES_64us 8000
26 /* MIC HDR data header */
31 u8 ccmp_pn
[IEEE80211_CCMP_PN_LEN
];
40 u16 packing
; /* packing to 48 bytes */
43 /* RsvTime buffer header */
44 struct vnt_rrv_time_rts
{
45 __le16 rts_rrv_time_ba
;
46 __le16 rts_rrv_time_aa
;
47 __le16 rts_rrv_time_bb
;
53 struct vnt_rrv_time_cts
{
54 __le16 cts_rrv_time_ba
;
60 struct vnt_rrv_time_ab
{
66 struct vnt_tx_datahead_g
{
67 struct vnt_phy_field b
;
68 struct vnt_phy_field a
;
71 __le16 time_stamp_off_b
;
72 __le16 time_stamp_off_a
;
73 struct ieee80211_hdr hdr
;
76 struct vnt_tx_datahead_g_fb
{
77 struct vnt_phy_field b
;
78 struct vnt_phy_field a
;
83 __le16 time_stamp_off_b
;
84 __le16 time_stamp_off_a
;
85 struct ieee80211_hdr hdr
;
88 struct vnt_tx_datahead_ab
{
89 struct vnt_phy_field ab
;
91 __le16 time_stamp_off
;
92 struct ieee80211_hdr hdr
;
95 struct vnt_tx_datahead_a_fb
{
96 struct vnt_phy_field a
;
98 __le16 time_stamp_off
;
101 struct ieee80211_hdr hdr
;
104 /* RTS buffer header */
106 struct vnt_phy_field b
;
107 struct vnt_phy_field a
;
112 struct ieee80211_rts data
;
113 struct vnt_tx_datahead_g data_head
;
116 struct vnt_rts_g_fb
{
117 struct vnt_phy_field b
;
118 struct vnt_phy_field a
;
123 __le16 rts_duration_ba_f0
;
124 __le16 rts_duration_aa_f0
;
125 __le16 rts_duration_ba_f1
;
126 __le16 rts_duration_aa_f1
;
127 struct ieee80211_rts data
;
128 struct vnt_tx_datahead_g_fb data_head
;
132 struct vnt_phy_field ab
;
135 struct ieee80211_rts data
;
136 struct vnt_tx_datahead_ab data_head
;
139 struct vnt_rts_a_fb
{
140 struct vnt_phy_field a
;
143 __le16 rts_duration_f0
;
144 __le16 rts_duration_f1
;
145 struct ieee80211_rts data
;
146 struct vnt_tx_datahead_a_fb data_head
;
149 /* CTS buffer header */
151 struct vnt_phy_field b
;
154 struct ieee80211_cts data
;
156 struct vnt_tx_datahead_g data_head
;
160 struct vnt_phy_field b
;
163 __le16 cts_duration_ba_f0
;
164 __le16 cts_duration_ba_f1
;
165 struct ieee80211_cts data
;
167 struct vnt_tx_datahead_g_fb data_head
;
170 union vnt_tx_data_head
{
172 struct vnt_rts_g rts_g
;
173 struct vnt_rts_g_fb rts_g_fb
;
175 struct vnt_rts_ab rts_ab
;
176 struct vnt_rts_a_fb rts_a_fb
;
178 struct vnt_cts cts_g
;
179 struct vnt_cts_fb cts_g_fb
;
181 struct vnt_tx_datahead_a_fb data_head_a_fb
;
182 struct vnt_tx_datahead_ab data_head_ab
;
185 struct vnt_tx_mic_hdr
{
186 struct vnt_mic_hdr hdr
;
187 union vnt_tx_data_head head
;
191 struct vnt_tx_mic_hdr mic
;
192 union vnt_tx_data_head head
;
197 struct vnt_rrv_time_rts rts
;
201 struct vnt_rrv_time_cts cts
;
205 struct vnt_rrv_time_ab ab
;
210 struct vnt_tx_fifo_head
{
211 u8 tx_key
[WLAN_KEY_LEN_CCMP
];
218 struct vnt_tx_buffer
{
221 __le16 tx_byte_count
;
222 struct vnt_tx_fifo_head fifo_head
;
223 union vnt_tx_head tx_head
;
226 struct vnt_tx_short_buf_head
{
229 struct vnt_phy_field ab
;
231 __le16 time_stamp_off
;
234 struct vnt_beacon_buffer
{
237 __le16 tx_byte_count
;
238 struct vnt_tx_short_buf_head short_head
;
239 struct ieee80211_mgmt mgmt_hdr
;
242 int vnt_tx_packet(struct vnt_private
*priv
, struct sk_buff
*skb
);
243 int vnt_beacon_make(struct vnt_private
*priv
, struct ieee80211_vif
*vif
);
244 int vnt_beacon_enable(struct vnt_private
*priv
, struct ieee80211_vif
*vif
,
245 struct ieee80211_bss_conf
*conf
);
247 #endif /* __RXTX_H__ */