1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
21 #define DEFAULT_MGN_LIFETIME_RES_64us 125 /* 64us */
22 #define DEFAULT_MSDU_LIFETIME_RES_64us 8000
24 /* Length, Service, and Signal fields of Phy for Tx */
25 struct vnt_phy_field
{
31 /* MIC HDR data header */
36 u8 ccmp_pn
[IEEE80211_CCMP_PN_LEN
];
45 u16 packing
; /* packing to 48 bytes */
48 /* RsvTime buffer header */
49 struct vnt_rrv_time_rts
{
50 __le16 rts_rrv_time_ba
;
51 __le16 rts_rrv_time_aa
;
52 __le16 rts_rrv_time_bb
;
58 struct vnt_rrv_time_cts
{
59 __le16 cts_rrv_time_ba
;
65 struct vnt_rrv_time_ab
{
71 struct vnt_tx_datahead_g
{
72 struct vnt_phy_field b
;
73 struct vnt_phy_field a
;
76 __le16 time_stamp_off_b
;
77 __le16 time_stamp_off_a
;
80 struct vnt_tx_datahead_ab
{
81 struct vnt_phy_field ab
;
83 __le16 time_stamp_off
;
86 /* RTS buffer header */
88 struct vnt_phy_field b
;
89 struct vnt_phy_field a
;
94 struct ieee80211_rts data
;
95 struct vnt_tx_datahead_g data_head
;
96 } __packed
__aligned(2);
99 struct vnt_phy_field ab
;
102 struct ieee80211_rts data
;
103 struct vnt_tx_datahead_ab data_head
;
104 } __packed
__aligned(2);
106 /* CTS buffer header */
108 struct vnt_phy_field b
;
111 struct ieee80211_cts data
;
113 struct vnt_tx_datahead_g data_head
;
114 } __packed
__aligned(2);
116 union vnt_tx_data_head
{
118 struct vnt_rts_g rts_g
;
120 struct vnt_rts_ab rts_ab
;
122 struct vnt_cts cts_g
;
124 struct vnt_tx_datahead_ab data_head_ab
;
127 struct vnt_tx_mic_hdr
{
128 struct vnt_mic_hdr hdr
;
129 union vnt_tx_data_head head
;
133 struct vnt_tx_mic_hdr mic
;
134 union vnt_tx_data_head head
;
139 struct vnt_rrv_time_rts rts
;
143 struct vnt_rrv_time_cts cts
;
147 struct vnt_rrv_time_ab ab
;
152 struct vnt_tx_fifo_head
{
153 u8 tx_key
[WLAN_KEY_LEN_CCMP
];
160 struct vnt_tx_buffer
{
161 struct vnt_tx_fifo_head fifo_head
;
162 union vnt_tx_head tx_head
;
165 struct vnt_tx_short_buf_head
{
168 struct vnt_phy_field ab
;
170 __le16 time_stamp_off
;
173 int vnt_tx_packet(struct vnt_private
*priv
, struct sk_buff
*skb
);
174 int vnt_beacon_make(struct vnt_private
*priv
, struct ieee80211_vif
*vif
);
175 int vnt_beacon_enable(struct vnt_private
*priv
, struct ieee80211_vif
*vif
,
176 struct ieee80211_bss_conf
*conf
);
178 #endif /* __RXTX_H__ */