xref: /wlan-driver/fw-api/hw/qca5332/tx_msdu_extension.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name 
2*5113495bSYour Name /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for any
5*5113495bSYour Name  * purpose with or without fee is hereby granted, provided that the above
6*5113495bSYour Name  * copyright notice and this permission notice appear in all copies.
7*5113495bSYour Name  *
8*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9*5113495bSYour Name  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10*5113495bSYour Name  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11*5113495bSYour Name  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12*5113495bSYour Name  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13*5113495bSYour Name  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14*5113495bSYour Name  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*5113495bSYour Name  */
16*5113495bSYour Name 
17*5113495bSYour Name 
18*5113495bSYour Name 
19*5113495bSYour Name 
20*5113495bSYour Name 
21*5113495bSYour Name 
22*5113495bSYour Name 
23*5113495bSYour Name 
24*5113495bSYour Name 
25*5113495bSYour Name 
26*5113495bSYour Name #ifndef _TX_MSDU_EXTENSION_H_
27*5113495bSYour Name #define _TX_MSDU_EXTENSION_H_
28*5113495bSYour Name #if !defined(__ASSEMBLER__)
29*5113495bSYour Name #endif
30*5113495bSYour Name 
31*5113495bSYour Name #define NUM_OF_DWORDS_TX_MSDU_EXTENSION 18
32*5113495bSYour Name 
33*5113495bSYour Name 
34*5113495bSYour Name struct tx_msdu_extension {
35*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
36*5113495bSYour Name              uint32_t tso_enable                                              :  1, // [0:0]
37*5113495bSYour Name                       reserved_0a                                             :  6, // [6:1]
38*5113495bSYour Name                       tcp_flag                                                :  9, // [15:7]
39*5113495bSYour Name                       tcp_flag_mask                                           :  9, // [24:16]
40*5113495bSYour Name                       reserved_0b                                             :  7; // [31:25]
41*5113495bSYour Name              uint32_t l2_length                                               : 16, // [15:0]
42*5113495bSYour Name                       ip_length                                               : 16; // [31:16]
43*5113495bSYour Name              uint32_t tcp_seq_number                                          : 32; // [31:0]
44*5113495bSYour Name              uint32_t ip_identification                                       : 16, // [15:0]
45*5113495bSYour Name                       udp_length                                              : 16; // [31:16]
46*5113495bSYour Name              uint32_t checksum_offset                                         : 14, // [13:0]
47*5113495bSYour Name                       partial_checksum_en                                     :  1, // [14:14]
48*5113495bSYour Name                       reserved_4a                                             :  1, // [15:15]
49*5113495bSYour Name                       payload_start_offset                                    : 14, // [29:16]
50*5113495bSYour Name                       reserved_4b                                             :  2; // [31:30]
51*5113495bSYour Name              uint32_t payload_end_offset                                      : 14, // [13:0]
52*5113495bSYour Name                       reserved_5a                                             :  2, // [15:14]
53*5113495bSYour Name                       wds                                                     :  1, // [16:16]
54*5113495bSYour Name                       reserved_5b                                             : 15; // [31:17]
55*5113495bSYour Name              uint32_t buf0_ptr_31_0                                           : 32; // [31:0]
56*5113495bSYour Name              uint32_t buf0_ptr_39_32                                          :  8, // [7:0]
57*5113495bSYour Name                       extn_override                                           :  1, // [8:8]
58*5113495bSYour Name                       encap_type                                              :  2, // [10:9]
59*5113495bSYour Name                       encrypt_type                                            :  4, // [14:11]
60*5113495bSYour Name                       tqm_no_drop                                             :  1, // [15:15]
61*5113495bSYour Name                       buf0_len                                                : 16; // [31:16]
62*5113495bSYour Name              uint32_t buf1_ptr_31_0                                           : 32; // [31:0]
63*5113495bSYour Name              uint32_t buf1_ptr_39_32                                          :  8, // [7:0]
64*5113495bSYour Name                       epd                                                     :  1, // [8:8]
65*5113495bSYour Name                       mesh_enable                                             :  2, // [10:9]
66*5113495bSYour Name                       reserved_9a                                             :  5, // [15:11]
67*5113495bSYour Name                       buf1_len                                                : 16; // [31:16]
68*5113495bSYour Name              uint32_t buf2_ptr_31_0                                           : 32; // [31:0]
69*5113495bSYour Name              uint32_t buf2_ptr_39_32                                          :  8, // [7:0]
70*5113495bSYour Name                       dscp_tid_table_num                                      :  6, // [13:8]
71*5113495bSYour Name                       reserved_11a                                            :  2, // [15:14]
72*5113495bSYour Name                       buf2_len                                                : 16; // [31:16]
73*5113495bSYour Name              uint32_t buf3_ptr_31_0                                           : 32; // [31:0]
74*5113495bSYour Name              uint32_t buf3_ptr_39_32                                          :  8, // [7:0]
75*5113495bSYour Name                       reserved_13a                                            :  8, // [15:8]
76*5113495bSYour Name                       buf3_len                                                : 16; // [31:16]
77*5113495bSYour Name              uint32_t buf4_ptr_31_0                                           : 32; // [31:0]
78*5113495bSYour Name              uint32_t buf4_ptr_39_32                                          :  8, // [7:0]
79*5113495bSYour Name                       reserved_15a                                            :  8, // [15:8]
80*5113495bSYour Name                       buf4_len                                                : 16; // [31:16]
81*5113495bSYour Name              uint32_t buf5_ptr_31_0                                           : 32; // [31:0]
82*5113495bSYour Name              uint32_t buf5_ptr_39_32                                          :  8, // [7:0]
83*5113495bSYour Name                       reserved_17a                                            :  8, // [15:8]
84*5113495bSYour Name                       buf5_len                                                : 16; // [31:16]
85*5113495bSYour Name #else
86*5113495bSYour Name              uint32_t reserved_0b                                             :  7, // [31:25]
87*5113495bSYour Name                       tcp_flag_mask                                           :  9, // [24:16]
88*5113495bSYour Name                       tcp_flag                                                :  9, // [15:7]
89*5113495bSYour Name                       reserved_0a                                             :  6, // [6:1]
90*5113495bSYour Name                       tso_enable                                              :  1; // [0:0]
91*5113495bSYour Name              uint32_t ip_length                                               : 16, // [31:16]
92*5113495bSYour Name                       l2_length                                               : 16; // [15:0]
93*5113495bSYour Name              uint32_t tcp_seq_number                                          : 32; // [31:0]
94*5113495bSYour Name              uint32_t udp_length                                              : 16, // [31:16]
95*5113495bSYour Name                       ip_identification                                       : 16; // [15:0]
96*5113495bSYour Name              uint32_t reserved_4b                                             :  2, // [31:30]
97*5113495bSYour Name                       payload_start_offset                                    : 14, // [29:16]
98*5113495bSYour Name                       reserved_4a                                             :  1, // [15:15]
99*5113495bSYour Name                       partial_checksum_en                                     :  1, // [14:14]
100*5113495bSYour Name                       checksum_offset                                         : 14; // [13:0]
101*5113495bSYour Name              uint32_t reserved_5b                                             : 15, // [31:17]
102*5113495bSYour Name                       wds                                                     :  1, // [16:16]
103*5113495bSYour Name                       reserved_5a                                             :  2, // [15:14]
104*5113495bSYour Name                       payload_end_offset                                      : 14; // [13:0]
105*5113495bSYour Name              uint32_t buf0_ptr_31_0                                           : 32; // [31:0]
106*5113495bSYour Name              uint32_t buf0_len                                                : 16, // [31:16]
107*5113495bSYour Name                       tqm_no_drop                                             :  1, // [15:15]
108*5113495bSYour Name                       encrypt_type                                            :  4, // [14:11]
109*5113495bSYour Name                       encap_type                                              :  2, // [10:9]
110*5113495bSYour Name                       extn_override                                           :  1, // [8:8]
111*5113495bSYour Name                       buf0_ptr_39_32                                          :  8; // [7:0]
112*5113495bSYour Name              uint32_t buf1_ptr_31_0                                           : 32; // [31:0]
113*5113495bSYour Name              uint32_t buf1_len                                                : 16, // [31:16]
114*5113495bSYour Name                       reserved_9a                                             :  5, // [15:11]
115*5113495bSYour Name                       mesh_enable                                             :  2, // [10:9]
116*5113495bSYour Name                       epd                                                     :  1, // [8:8]
117*5113495bSYour Name                       buf1_ptr_39_32                                          :  8; // [7:0]
118*5113495bSYour Name              uint32_t buf2_ptr_31_0                                           : 32; // [31:0]
119*5113495bSYour Name              uint32_t buf2_len                                                : 16, // [31:16]
120*5113495bSYour Name                       reserved_11a                                            :  2, // [15:14]
121*5113495bSYour Name                       dscp_tid_table_num                                      :  6, // [13:8]
122*5113495bSYour Name                       buf2_ptr_39_32                                          :  8; // [7:0]
123*5113495bSYour Name              uint32_t buf3_ptr_31_0                                           : 32; // [31:0]
124*5113495bSYour Name              uint32_t buf3_len                                                : 16, // [31:16]
125*5113495bSYour Name                       reserved_13a                                            :  8, // [15:8]
126*5113495bSYour Name                       buf3_ptr_39_32                                          :  8; // [7:0]
127*5113495bSYour Name              uint32_t buf4_ptr_31_0                                           : 32; // [31:0]
128*5113495bSYour Name              uint32_t buf4_len                                                : 16, // [31:16]
129*5113495bSYour Name                       reserved_15a                                            :  8, // [15:8]
130*5113495bSYour Name                       buf4_ptr_39_32                                          :  8; // [7:0]
131*5113495bSYour Name              uint32_t buf5_ptr_31_0                                           : 32; // [31:0]
132*5113495bSYour Name              uint32_t buf5_len                                                : 16, // [31:16]
133*5113495bSYour Name                       reserved_17a                                            :  8, // [15:8]
134*5113495bSYour Name                       buf5_ptr_39_32                                          :  8; // [7:0]
135*5113495bSYour Name #endif
136*5113495bSYour Name };
137*5113495bSYour Name 
138*5113495bSYour Name 
139*5113495bSYour Name /* Description		TSO_ENABLE
140*5113495bSYour Name 
141*5113495bSYour Name 			Enable transmit segmentation offload <legal all>
142*5113495bSYour Name */
143*5113495bSYour Name 
144*5113495bSYour Name #define TX_MSDU_EXTENSION_TSO_ENABLE_OFFSET                                         0x00000000
145*5113495bSYour Name #define TX_MSDU_EXTENSION_TSO_ENABLE_LSB                                            0
146*5113495bSYour Name #define TX_MSDU_EXTENSION_TSO_ENABLE_MSB                                            0
147*5113495bSYour Name #define TX_MSDU_EXTENSION_TSO_ENABLE_MASK                                           0x00000001
148*5113495bSYour Name 
149*5113495bSYour Name 
150*5113495bSYour Name /* Description		RESERVED_0A
151*5113495bSYour Name 
152*5113495bSYour Name 			FW will set to 0, MAC will ignore.  <legal 0>
153*5113495bSYour Name */
154*5113495bSYour Name 
155*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_0A_OFFSET                                        0x00000000
156*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_0A_LSB                                           1
157*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_0A_MSB                                           6
158*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_0A_MASK                                          0x0000007e
159*5113495bSYour Name 
160*5113495bSYour Name 
161*5113495bSYour Name /* Description		TCP_FLAG
162*5113495bSYour Name 
163*5113495bSYour Name 			TCP flags
164*5113495bSYour Name 			{NS,CWR,ECE,URG,ACK,PSH, RST ,SYN,FIN}<legal all>
165*5113495bSYour Name */
166*5113495bSYour Name 
167*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_FLAG_OFFSET                                           0x00000000
168*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_FLAG_LSB                                              7
169*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_FLAG_MSB                                              15
170*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_FLAG_MASK                                             0x0000ff80
171*5113495bSYour Name 
172*5113495bSYour Name 
173*5113495bSYour Name /* Description		TCP_FLAG_MASK
174*5113495bSYour Name 
175*5113495bSYour Name 			TCP flag mask. Tcp_flag is inserted into the header based
176*5113495bSYour Name 			 on the mask, if TSO is enabled
177*5113495bSYour Name */
178*5113495bSYour Name 
179*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_FLAG_MASK_OFFSET                                      0x00000000
180*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_FLAG_MASK_LSB                                         16
181*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_FLAG_MASK_MSB                                         24
182*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_FLAG_MASK_MASK                                        0x01ff0000
183*5113495bSYour Name 
184*5113495bSYour Name 
185*5113495bSYour Name /* Description		RESERVED_0B
186*5113495bSYour Name 
187*5113495bSYour Name 			FW will set to 0, MAC will ignore.  <legal 0>
188*5113495bSYour Name */
189*5113495bSYour Name 
190*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_0B_OFFSET                                        0x00000000
191*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_0B_LSB                                           25
192*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_0B_MSB                                           31
193*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_0B_MASK                                          0xfe000000
194*5113495bSYour Name 
195*5113495bSYour Name 
196*5113495bSYour Name /* Description		L2_LENGTH
197*5113495bSYour Name 
198*5113495bSYour Name 			L2 length for the msdu, if TSO is enabled <legal all>
199*5113495bSYour Name */
200*5113495bSYour Name 
201*5113495bSYour Name #define TX_MSDU_EXTENSION_L2_LENGTH_OFFSET                                          0x00000004
202*5113495bSYour Name #define TX_MSDU_EXTENSION_L2_LENGTH_LSB                                             0
203*5113495bSYour Name #define TX_MSDU_EXTENSION_L2_LENGTH_MSB                                             15
204*5113495bSYour Name #define TX_MSDU_EXTENSION_L2_LENGTH_MASK                                            0x0000ffff
205*5113495bSYour Name 
206*5113495bSYour Name 
207*5113495bSYour Name /* Description		IP_LENGTH
208*5113495bSYour Name 
209*5113495bSYour Name 			IP length for the msdu, if TSO is enabled <legal all>
210*5113495bSYour Name */
211*5113495bSYour Name 
212*5113495bSYour Name #define TX_MSDU_EXTENSION_IP_LENGTH_OFFSET                                          0x00000004
213*5113495bSYour Name #define TX_MSDU_EXTENSION_IP_LENGTH_LSB                                             16
214*5113495bSYour Name #define TX_MSDU_EXTENSION_IP_LENGTH_MSB                                             31
215*5113495bSYour Name #define TX_MSDU_EXTENSION_IP_LENGTH_MASK                                            0xffff0000
216*5113495bSYour Name 
217*5113495bSYour Name 
218*5113495bSYour Name /* Description		TCP_SEQ_NUMBER
219*5113495bSYour Name 
220*5113495bSYour Name 			Tcp_seq_number for the msdu, if TSO is enabled <legal all>
221*5113495bSYour Name 
222*5113495bSYour Name */
223*5113495bSYour Name 
224*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_OFFSET                                     0x00000008
225*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_LSB                                        0
226*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_MSB                                        31
227*5113495bSYour Name #define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_MASK                                       0xffffffff
228*5113495bSYour Name 
229*5113495bSYour Name 
230*5113495bSYour Name /* Description		IP_IDENTIFICATION
231*5113495bSYour Name 
232*5113495bSYour Name 			IP_identification for the msdu, if TSO is enabled <legal
233*5113495bSYour Name 			 all>
234*5113495bSYour Name */
235*5113495bSYour Name 
236*5113495bSYour Name #define TX_MSDU_EXTENSION_IP_IDENTIFICATION_OFFSET                                  0x0000000c
237*5113495bSYour Name #define TX_MSDU_EXTENSION_IP_IDENTIFICATION_LSB                                     0
238*5113495bSYour Name #define TX_MSDU_EXTENSION_IP_IDENTIFICATION_MSB                                     15
239*5113495bSYour Name #define TX_MSDU_EXTENSION_IP_IDENTIFICATION_MASK                                    0x0000ffff
240*5113495bSYour Name 
241*5113495bSYour Name 
242*5113495bSYour Name /* Description		UDP_LENGTH
243*5113495bSYour Name 
244*5113495bSYour Name 			TXDMA is copies this field into MSDU START TLV
245*5113495bSYour Name */
246*5113495bSYour Name 
247*5113495bSYour Name #define TX_MSDU_EXTENSION_UDP_LENGTH_OFFSET                                         0x0000000c
248*5113495bSYour Name #define TX_MSDU_EXTENSION_UDP_LENGTH_LSB                                            16
249*5113495bSYour Name #define TX_MSDU_EXTENSION_UDP_LENGTH_MSB                                            31
250*5113495bSYour Name #define TX_MSDU_EXTENSION_UDP_LENGTH_MASK                                           0xffff0000
251*5113495bSYour Name 
252*5113495bSYour Name 
253*5113495bSYour Name /* Description		CHECKSUM_OFFSET
254*5113495bSYour Name 
255*5113495bSYour Name 			The calculated checksum from start offset to end offset
256*5113495bSYour Name 			will be added to the checksum at the offset given by this
257*5113495bSYour Name 			 field<legal all>
258*5113495bSYour Name */
259*5113495bSYour Name 
260*5113495bSYour Name #define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_OFFSET                                    0x00000010
261*5113495bSYour Name #define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_LSB                                       0
262*5113495bSYour Name #define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_MSB                                       13
263*5113495bSYour Name #define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_MASK                                      0x00003fff
264*5113495bSYour Name 
265*5113495bSYour Name 
266*5113495bSYour Name /* Description		PARTIAL_CHECKSUM_EN
267*5113495bSYour Name 
268*5113495bSYour Name 			Partial Checksum Enable Bit.
269*5113495bSYour Name 			<legal 0-1>
270*5113495bSYour Name */
271*5113495bSYour Name 
272*5113495bSYour Name #define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_OFFSET                                0x00000010
273*5113495bSYour Name #define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_LSB                                   14
274*5113495bSYour Name #define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_MSB                                   14
275*5113495bSYour Name #define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_MASK                                  0x00004000
276*5113495bSYour Name 
277*5113495bSYour Name 
278*5113495bSYour Name /* Description		RESERVED_4A
279*5113495bSYour Name 
280*5113495bSYour Name 			<Legal 0>
281*5113495bSYour Name */
282*5113495bSYour Name 
283*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_4A_OFFSET                                        0x00000010
284*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_4A_LSB                                           15
285*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_4A_MSB                                           15
286*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_4A_MASK                                          0x00008000
287*5113495bSYour Name 
288*5113495bSYour Name 
289*5113495bSYour Name /* Description		PAYLOAD_START_OFFSET
290*5113495bSYour Name 
291*5113495bSYour Name 			L4 checksum calculations will start fromt this offset
292*5113495bSYour Name 			<Legal all>
293*5113495bSYour Name */
294*5113495bSYour Name 
295*5113495bSYour Name #define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_OFFSET                               0x00000010
296*5113495bSYour Name #define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_LSB                                  16
297*5113495bSYour Name #define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_MSB                                  29
298*5113495bSYour Name #define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_MASK                                 0x3fff0000
299*5113495bSYour Name 
300*5113495bSYour Name 
301*5113495bSYour Name /* Description		RESERVED_4B
302*5113495bSYour Name 
303*5113495bSYour Name 			<Legal 0>
304*5113495bSYour Name */
305*5113495bSYour Name 
306*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_4B_OFFSET                                        0x00000010
307*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_4B_LSB                                           30
308*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_4B_MSB                                           31
309*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_4B_MASK                                          0xc0000000
310*5113495bSYour Name 
311*5113495bSYour Name 
312*5113495bSYour Name /* Description		PAYLOAD_END_OFFSET
313*5113495bSYour Name 
314*5113495bSYour Name 			L4 checksum calculations will end at this offset.
315*5113495bSYour Name 			<Legal all>
316*5113495bSYour Name */
317*5113495bSYour Name 
318*5113495bSYour Name #define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_OFFSET                                 0x00000014
319*5113495bSYour Name #define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_LSB                                    0
320*5113495bSYour Name #define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_MSB                                    13
321*5113495bSYour Name #define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_MASK                                   0x00003fff
322*5113495bSYour Name 
323*5113495bSYour Name 
324*5113495bSYour Name /* Description		RESERVED_5A
325*5113495bSYour Name 
326*5113495bSYour Name 			<Legal 0>
327*5113495bSYour Name */
328*5113495bSYour Name 
329*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_5A_OFFSET                                        0x00000014
330*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_5A_LSB                                           14
331*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_5A_MSB                                           15
332*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_5A_MASK                                          0x0000c000
333*5113495bSYour Name 
334*5113495bSYour Name 
335*5113495bSYour Name /* Description		WDS
336*5113495bSYour Name 
337*5113495bSYour Name 			If set the current packet is 4-address frame.  Required
338*5113495bSYour Name 			because an aggregate can include some frames with 3 address
339*5113495bSYour Name 			 format and other frames with 4 address format.  Used by
340*5113495bSYour Name 			 the OLE during encapsulation.
341*5113495bSYour Name 			Note: there is also global wds tx control in the TX_PEER_ENTRY
342*5113495bSYour Name 
343*5113495bSYour Name 			<legal all>
344*5113495bSYour Name */
345*5113495bSYour Name 
346*5113495bSYour Name #define TX_MSDU_EXTENSION_WDS_OFFSET                                                0x00000014
347*5113495bSYour Name #define TX_MSDU_EXTENSION_WDS_LSB                                                   16
348*5113495bSYour Name #define TX_MSDU_EXTENSION_WDS_MSB                                                   16
349*5113495bSYour Name #define TX_MSDU_EXTENSION_WDS_MASK                                                  0x00010000
350*5113495bSYour Name 
351*5113495bSYour Name 
352*5113495bSYour Name /* Description		RESERVED_5B
353*5113495bSYour Name 
354*5113495bSYour Name 			<Legal 0>
355*5113495bSYour Name */
356*5113495bSYour Name 
357*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_5B_OFFSET                                        0x00000014
358*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_5B_LSB                                           17
359*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_5B_MSB                                           31
360*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_5B_MASK                                          0xfffe0000
361*5113495bSYour Name 
362*5113495bSYour Name 
363*5113495bSYour Name /* Description		BUF0_PTR_31_0
364*5113495bSYour Name 
365*5113495bSYour Name 			Lower 32 bits of the first buffer pointer
366*5113495bSYour Name 
367*5113495bSYour Name 			NOTE: SW/FW manages the 'cookie' info related to this buffer
368*5113495bSYour Name 			 together with the 'cookie' info for this MSDU_EXTENSION
369*5113495bSYour Name 			 descriptor
370*5113495bSYour Name 			<legal all>
371*5113495bSYour Name */
372*5113495bSYour Name 
373*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_PTR_31_0_OFFSET                                      0x00000018
374*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_PTR_31_0_LSB                                         0
375*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_PTR_31_0_MSB                                         31
376*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_PTR_31_0_MASK                                        0xffffffff
377*5113495bSYour Name 
378*5113495bSYour Name 
379*5113495bSYour Name /* Description		BUF0_PTR_39_32
380*5113495bSYour Name 
381*5113495bSYour Name 			Upper 8 bits of the first buffer pointer <legal all>
382*5113495bSYour Name */
383*5113495bSYour Name 
384*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_PTR_39_32_OFFSET                                     0x0000001c
385*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_PTR_39_32_LSB                                        0
386*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_PTR_39_32_MSB                                        7
387*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_PTR_39_32_MASK                                       0x000000ff
388*5113495bSYour Name 
389*5113495bSYour Name 
390*5113495bSYour Name /* Description		EXTN_OVERRIDE
391*5113495bSYour Name 
392*5113495bSYour Name 			Field only used by TCL
393*5113495bSYour Name 
394*5113495bSYour Name 			When set, the fields encap_type, Encrypt_type, TQM_NO_DROP,
395*5113495bSYour Name 			EPD and mesh_enable are valid and override any TCL per-bank
396*5113495bSYour Name 			 registers specifying these values (except TQM_NO_DROP).
397*5113495bSYour Name 
398*5113495bSYour Name 
399*5113495bSYour Name 			When clear, the values for encap_type, Encrypt_type, EPD,
400*5113495bSYour Name 			mesh_enable and DSCP_TID_TABLE_NUM are taken from per-bank
401*5113495bSYour Name 			 registers in TCL and TQM_NO_DROP is not being requested
402*5113495bSYour Name 			 by SW.
403*5113495bSYour Name 
404*5113495bSYour Name 			<legal all>
405*5113495bSYour Name */
406*5113495bSYour Name 
407*5113495bSYour Name #define TX_MSDU_EXTENSION_EXTN_OVERRIDE_OFFSET                                      0x0000001c
408*5113495bSYour Name #define TX_MSDU_EXTENSION_EXTN_OVERRIDE_LSB                                         8
409*5113495bSYour Name #define TX_MSDU_EXTENSION_EXTN_OVERRIDE_MSB                                         8
410*5113495bSYour Name #define TX_MSDU_EXTENSION_EXTN_OVERRIDE_MASK                                        0x00000100
411*5113495bSYour Name 
412*5113495bSYour Name 
413*5113495bSYour Name /* Description		ENCAP_TYPE
414*5113495bSYour Name 
415*5113495bSYour Name 			Field only used by TCL, only valid if Extn_override is set.
416*5113495bSYour Name 
417*5113495bSYour Name 
418*5113495bSYour Name 			Indicates the encapsulation that HW will perform:
419*5113495bSYour Name 			<enum 0 RAW> No encapsulation
420*5113495bSYour Name 			<enum 1 Native_WiFi>
421*5113495bSYour Name 			<enum 2 Ethernet> Ethernet 2 (DIX)  or 802.3 (uses SNAP/LLC)
422*5113495bSYour Name 
423*5113495bSYour Name 			<enum 3 802_3> DO NOT USE. Indicate Ethernet
424*5113495bSYour Name 
425*5113495bSYour Name 			Used by the OLE during encapsulation.
426*5113495bSYour Name 			<legal all>
427*5113495bSYour Name */
428*5113495bSYour Name 
429*5113495bSYour Name #define TX_MSDU_EXTENSION_ENCAP_TYPE_OFFSET                                         0x0000001c
430*5113495bSYour Name #define TX_MSDU_EXTENSION_ENCAP_TYPE_LSB                                            9
431*5113495bSYour Name #define TX_MSDU_EXTENSION_ENCAP_TYPE_MSB                                            10
432*5113495bSYour Name #define TX_MSDU_EXTENSION_ENCAP_TYPE_MASK                                           0x00000600
433*5113495bSYour Name 
434*5113495bSYour Name 
435*5113495bSYour Name /* Description		ENCRYPT_TYPE
436*5113495bSYour Name 
437*5113495bSYour Name 			Field only used by TCL, only valid if Extn_override is set
438*5113495bSYour Name 			 and encap_type = RAW
439*5113495bSYour Name 
440*5113495bSYour Name 			Indicates type of decrypt cipher used (as defined in the
441*5113495bSYour Name 			 peer entry)
442*5113495bSYour Name 			<enum 0 wep_40> WEP 40-bit
443*5113495bSYour Name 			<enum 1 wep_104> WEP 104-bit
444*5113495bSYour Name 			<enum 2 tkip_no_mic> TKIP without MIC
445*5113495bSYour Name 			<enum 3 wep_128> WEP 128-bit
446*5113495bSYour Name 			<enum 4 tkip_with_mic> TKIP with MIC
447*5113495bSYour Name 			<enum 5 wapi> WAPI
448*5113495bSYour Name 			<enum 6 aes_ccmp_128> AES CCMP 128
449*5113495bSYour Name 			<enum 7 no_cipher> No crypto
450*5113495bSYour Name 			<enum 8 aes_ccmp_256> AES CCMP 256
451*5113495bSYour Name 			<enum 9 aes_gcmp_128> AES CCMP 128
452*5113495bSYour Name 			<enum 10 aes_gcmp_256> AES CCMP 256
453*5113495bSYour Name 			<enum 11 wapi_gcm_sm4> WAPI GCM SM4
454*5113495bSYour Name 
455*5113495bSYour Name 			<enum 12 wep_varied_width> DO not use... Only for higher
456*5113495bSYour Name 			 layer modules..
457*5113495bSYour Name 			<legal 0-12>
458*5113495bSYour Name */
459*5113495bSYour Name 
460*5113495bSYour Name #define TX_MSDU_EXTENSION_ENCRYPT_TYPE_OFFSET                                       0x0000001c
461*5113495bSYour Name #define TX_MSDU_EXTENSION_ENCRYPT_TYPE_LSB                                          11
462*5113495bSYour Name #define TX_MSDU_EXTENSION_ENCRYPT_TYPE_MSB                                          14
463*5113495bSYour Name #define TX_MSDU_EXTENSION_ENCRYPT_TYPE_MASK                                         0x00007800
464*5113495bSYour Name 
465*5113495bSYour Name 
466*5113495bSYour Name /* Description		TQM_NO_DROP
467*5113495bSYour Name 
468*5113495bSYour Name 			Field only used by TCL, only valid if Extn_override is set.
469*5113495bSYour Name 
470*5113495bSYour Name 
471*5113495bSYour Name 			This bit is used to stop TQM from dropping MSDUs while adding
472*5113495bSYour Name 			 them to MSDU flows1'b1: Do not drop MSDU when any of the
473*5113495bSYour Name 			 threshold value is met while adding MSDU in a flow1'b1:
474*5113495bSYour Name 			Drop MSDU when any of the threshold value is met while adding
475*5113495bSYour Name 			 MSDU in a flow
476*5113495bSYour Name 			Note: TCL can also have CCE/LCE rules to set 'TQM_NO_DROP'
477*5113495bSYour Name 			which will be OR'd to this value.
478*5113495bSYour Name 			<legal all>
479*5113495bSYour Name */
480*5113495bSYour Name 
481*5113495bSYour Name #define TX_MSDU_EXTENSION_TQM_NO_DROP_OFFSET                                        0x0000001c
482*5113495bSYour Name #define TX_MSDU_EXTENSION_TQM_NO_DROP_LSB                                           15
483*5113495bSYour Name #define TX_MSDU_EXTENSION_TQM_NO_DROP_MSB                                           15
484*5113495bSYour Name #define TX_MSDU_EXTENSION_TQM_NO_DROP_MASK                                          0x00008000
485*5113495bSYour Name 
486*5113495bSYour Name 
487*5113495bSYour Name /* Description		BUF0_LEN
488*5113495bSYour Name 
489*5113495bSYour Name 			Length of the first buffer <legal all>
490*5113495bSYour Name */
491*5113495bSYour Name 
492*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_LEN_OFFSET                                           0x0000001c
493*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_LEN_LSB                                              16
494*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_LEN_MSB                                              31
495*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF0_LEN_MASK                                             0xffff0000
496*5113495bSYour Name 
497*5113495bSYour Name 
498*5113495bSYour Name /* Description		BUF1_PTR_31_0
499*5113495bSYour Name 
500*5113495bSYour Name 			Lower 32 bits of the second buffer pointer
501*5113495bSYour Name 
502*5113495bSYour Name 			NOTE: SW/FW manages the 'cookie' info related to this buffer
503*5113495bSYour Name 			 together with the 'cookie' info for this MSDU_EXTENSION
504*5113495bSYour Name 			 descriptor
505*5113495bSYour Name 			<legal all>
506*5113495bSYour Name */
507*5113495bSYour Name 
508*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_PTR_31_0_OFFSET                                      0x00000020
509*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_PTR_31_0_LSB                                         0
510*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_PTR_31_0_MSB                                         31
511*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_PTR_31_0_MASK                                        0xffffffff
512*5113495bSYour Name 
513*5113495bSYour Name 
514*5113495bSYour Name /* Description		BUF1_PTR_39_32
515*5113495bSYour Name 
516*5113495bSYour Name 			Upper 8 bits of the second buffer pointer <legal all>
517*5113495bSYour Name */
518*5113495bSYour Name 
519*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_PTR_39_32_OFFSET                                     0x00000024
520*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_PTR_39_32_LSB                                        0
521*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_PTR_39_32_MSB                                        7
522*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_PTR_39_32_MASK                                       0x000000ff
523*5113495bSYour Name 
524*5113495bSYour Name 
525*5113495bSYour Name /* Description		EPD
526*5113495bSYour Name 
527*5113495bSYour Name 			Field only used by TCL, only valid if Extn_override is set.
528*5113495bSYour Name 
529*5113495bSYour Name 
530*5113495bSYour Name 			When this bit is set then input packet is an EPD type
531*5113495bSYour Name 			<legal all>
532*5113495bSYour Name */
533*5113495bSYour Name 
534*5113495bSYour Name #define TX_MSDU_EXTENSION_EPD_OFFSET                                                0x00000024
535*5113495bSYour Name #define TX_MSDU_EXTENSION_EPD_LSB                                                   8
536*5113495bSYour Name #define TX_MSDU_EXTENSION_EPD_MSB                                                   8
537*5113495bSYour Name #define TX_MSDU_EXTENSION_EPD_MASK                                                  0x00000100
538*5113495bSYour Name 
539*5113495bSYour Name 
540*5113495bSYour Name /* Description		MESH_ENABLE
541*5113495bSYour Name 
542*5113495bSYour Name 			Field only used by TCL, only valid if Extn_override is set.
543*5113495bSYour Name 
544*5113495bSYour Name 
545*5113495bSYour Name 			If set to a non-zero value:
546*5113495bSYour Name 			* For raw WiFi frames, this indicates transmission to a
547*5113495bSYour Name 			mesh STA, enabling the interpretation of the 'Mesh Control
548*5113495bSYour Name 			 Present' bit (bit 8) of QoS Control (otherwise this bit
549*5113495bSYour Name 			 is ignored). The interpretation of the A-MSDU 'Length'
550*5113495bSYour Name 			field is decided by the e-numerations below.
551*5113495bSYour Name 			* For native WiFi frames, this indicates that a 'Mesh Control'
552*5113495bSYour Name 			field is present between the header and the LLC. The three
553*5113495bSYour Name 			 non-zero values are interchangeable.
554*5113495bSYour Name 
555*5113495bSYour Name 			<enum 0 MESH_DISABLE>
556*5113495bSYour Name 			<enum 1 MESH_Q2Q> A-MSDU 'Length' is big endian and includes
557*5113495bSYour Name 			 the length of Mesh Control.
558*5113495bSYour Name 			<enum 2 MESH_11S_BE> A-MSDU 'Length' is big endian and excludes
559*5113495bSYour Name 			 the length of Mesh Control.
560*5113495bSYour Name 			<enum 3 MESH_11S_LE> A-MSDU 'Length' is little endian and
561*5113495bSYour Name 			 excludes the length of Mesh Control. This is 802.11s-compliant.
562*5113495bSYour Name 
563*5113495bSYour Name 			<legal 0-3>
564*5113495bSYour Name */
565*5113495bSYour Name 
566*5113495bSYour Name #define TX_MSDU_EXTENSION_MESH_ENABLE_OFFSET                                        0x00000024
567*5113495bSYour Name #define TX_MSDU_EXTENSION_MESH_ENABLE_LSB                                           9
568*5113495bSYour Name #define TX_MSDU_EXTENSION_MESH_ENABLE_MSB                                           10
569*5113495bSYour Name #define TX_MSDU_EXTENSION_MESH_ENABLE_MASK                                          0x00000600
570*5113495bSYour Name 
571*5113495bSYour Name 
572*5113495bSYour Name /* Description		RESERVED_9A
573*5113495bSYour Name 
574*5113495bSYour Name 			<Legal 0>
575*5113495bSYour Name */
576*5113495bSYour Name 
577*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_9A_OFFSET                                        0x00000024
578*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_9A_LSB                                           11
579*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_9A_MSB                                           15
580*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_9A_MASK                                          0x0000f800
581*5113495bSYour Name 
582*5113495bSYour Name 
583*5113495bSYour Name /* Description		BUF1_LEN
584*5113495bSYour Name 
585*5113495bSYour Name 			Length of the second buffer <legal all>
586*5113495bSYour Name */
587*5113495bSYour Name 
588*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_LEN_OFFSET                                           0x00000024
589*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_LEN_LSB                                              16
590*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_LEN_MSB                                              31
591*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF1_LEN_MASK                                             0xffff0000
592*5113495bSYour Name 
593*5113495bSYour Name 
594*5113495bSYour Name /* Description		BUF2_PTR_31_0
595*5113495bSYour Name 
596*5113495bSYour Name 			Lower 32 bits of the third buffer pointer
597*5113495bSYour Name 			NOTE: SW/FW manages the 'cookie' info related to this buffer
598*5113495bSYour Name 			 together with the 'cookie' info for this MSDU_EXTENSION
599*5113495bSYour Name 			 descriptor
600*5113495bSYour Name 			<legal all>
601*5113495bSYour Name */
602*5113495bSYour Name 
603*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_PTR_31_0_OFFSET                                      0x00000028
604*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_PTR_31_0_LSB                                         0
605*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_PTR_31_0_MSB                                         31
606*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_PTR_31_0_MASK                                        0xffffffff
607*5113495bSYour Name 
608*5113495bSYour Name 
609*5113495bSYour Name /* Description		BUF2_PTR_39_32
610*5113495bSYour Name 
611*5113495bSYour Name 			Upper 8 bits of the third buffer pointer <legal all>
612*5113495bSYour Name */
613*5113495bSYour Name 
614*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_PTR_39_32_OFFSET                                     0x0000002c
615*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_PTR_39_32_LSB                                        0
616*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_PTR_39_32_MSB                                        7
617*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_PTR_39_32_MASK                                       0x000000ff
618*5113495bSYour Name 
619*5113495bSYour Name 
620*5113495bSYour Name /* Description		DSCP_TID_TABLE_NUM
621*5113495bSYour Name 
622*5113495bSYour Name 			Field only used by TCL, only valid if Extn_override is set.
623*5113495bSYour Name 
624*5113495bSYour Name 
625*5113495bSYour Name 			This specifies the DSCP to TID mapping table to be used
626*5113495bSYour Name 			for the MSDU
627*5113495bSYour Name 			<legal all>
628*5113495bSYour Name */
629*5113495bSYour Name 
630*5113495bSYour Name #define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_OFFSET                                 0x0000002c
631*5113495bSYour Name #define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_LSB                                    8
632*5113495bSYour Name #define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_MSB                                    13
633*5113495bSYour Name #define TX_MSDU_EXTENSION_DSCP_TID_TABLE_NUM_MASK                                   0x00003f00
634*5113495bSYour Name 
635*5113495bSYour Name 
636*5113495bSYour Name /* Description		RESERVED_11A
637*5113495bSYour Name 
638*5113495bSYour Name 			<Legal 0>
639*5113495bSYour Name */
640*5113495bSYour Name 
641*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_11A_OFFSET                                       0x0000002c
642*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_11A_LSB                                          14
643*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_11A_MSB                                          15
644*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_11A_MASK                                         0x0000c000
645*5113495bSYour Name 
646*5113495bSYour Name 
647*5113495bSYour Name /* Description		BUF2_LEN
648*5113495bSYour Name 
649*5113495bSYour Name 			Length of the third buffer <legal all>
650*5113495bSYour Name */
651*5113495bSYour Name 
652*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_LEN_OFFSET                                           0x0000002c
653*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_LEN_LSB                                              16
654*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_LEN_MSB                                              31
655*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF2_LEN_MASK                                             0xffff0000
656*5113495bSYour Name 
657*5113495bSYour Name 
658*5113495bSYour Name /* Description		BUF3_PTR_31_0
659*5113495bSYour Name 
660*5113495bSYour Name 			Lower 32 bits of the fourth buffer pointer
661*5113495bSYour Name 
662*5113495bSYour Name 			NOTE: SW/FW manages the 'cookie' info related to this buffer
663*5113495bSYour Name 			 together with the 'cookie' info for this MSDU_EXTENSION
664*5113495bSYour Name 			 descriptor
665*5113495bSYour Name 			 <legal all>
666*5113495bSYour Name */
667*5113495bSYour Name 
668*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_PTR_31_0_OFFSET                                      0x00000030
669*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_PTR_31_0_LSB                                         0
670*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_PTR_31_0_MSB                                         31
671*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_PTR_31_0_MASK                                        0xffffffff
672*5113495bSYour Name 
673*5113495bSYour Name 
674*5113495bSYour Name /* Description		BUF3_PTR_39_32
675*5113495bSYour Name 
676*5113495bSYour Name 			Upper 8 bits of the fourth buffer pointer <legal all>
677*5113495bSYour Name */
678*5113495bSYour Name 
679*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_PTR_39_32_OFFSET                                     0x00000034
680*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_PTR_39_32_LSB                                        0
681*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_PTR_39_32_MSB                                        7
682*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_PTR_39_32_MASK                                       0x000000ff
683*5113495bSYour Name 
684*5113495bSYour Name 
685*5113495bSYour Name /* Description		RESERVED_13A
686*5113495bSYour Name 
687*5113495bSYour Name 			<Legal 0>
688*5113495bSYour Name */
689*5113495bSYour Name 
690*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_13A_OFFSET                                       0x00000034
691*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_13A_LSB                                          8
692*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_13A_MSB                                          15
693*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_13A_MASK                                         0x0000ff00
694*5113495bSYour Name 
695*5113495bSYour Name 
696*5113495bSYour Name /* Description		BUF3_LEN
697*5113495bSYour Name 
698*5113495bSYour Name 			Length of the fourth buffer <legal all>
699*5113495bSYour Name */
700*5113495bSYour Name 
701*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_LEN_OFFSET                                           0x00000034
702*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_LEN_LSB                                              16
703*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_LEN_MSB                                              31
704*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF3_LEN_MASK                                             0xffff0000
705*5113495bSYour Name 
706*5113495bSYour Name 
707*5113495bSYour Name /* Description		BUF4_PTR_31_0
708*5113495bSYour Name 
709*5113495bSYour Name 			Lower 32 bits of the fifth buffer pointer
710*5113495bSYour Name 
711*5113495bSYour Name 			NOTE: SW/FW manages the 'cookie' info related to this buffer
712*5113495bSYour Name 			 together with the 'cookie' info for this MSDU_EXTENSION
713*5113495bSYour Name 			 descriptor
714*5113495bSYour Name 			<legal all>
715*5113495bSYour Name */
716*5113495bSYour Name 
717*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_PTR_31_0_OFFSET                                      0x00000038
718*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_PTR_31_0_LSB                                         0
719*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_PTR_31_0_MSB                                         31
720*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_PTR_31_0_MASK                                        0xffffffff
721*5113495bSYour Name 
722*5113495bSYour Name 
723*5113495bSYour Name /* Description		BUF4_PTR_39_32
724*5113495bSYour Name 
725*5113495bSYour Name 			Upper 8 bits of the fifth buffer pointer <legal all>
726*5113495bSYour Name */
727*5113495bSYour Name 
728*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_PTR_39_32_OFFSET                                     0x0000003c
729*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_PTR_39_32_LSB                                        0
730*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_PTR_39_32_MSB                                        7
731*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_PTR_39_32_MASK                                       0x000000ff
732*5113495bSYour Name 
733*5113495bSYour Name 
734*5113495bSYour Name /* Description		RESERVED_15A
735*5113495bSYour Name 
736*5113495bSYour Name 			<Legal 0>
737*5113495bSYour Name */
738*5113495bSYour Name 
739*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_15A_OFFSET                                       0x0000003c
740*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_15A_LSB                                          8
741*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_15A_MSB                                          15
742*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_15A_MASK                                         0x0000ff00
743*5113495bSYour Name 
744*5113495bSYour Name 
745*5113495bSYour Name /* Description		BUF4_LEN
746*5113495bSYour Name 
747*5113495bSYour Name 			Length of the fifth buffer <legal all>
748*5113495bSYour Name */
749*5113495bSYour Name 
750*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_LEN_OFFSET                                           0x0000003c
751*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_LEN_LSB                                              16
752*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_LEN_MSB                                              31
753*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF4_LEN_MASK                                             0xffff0000
754*5113495bSYour Name 
755*5113495bSYour Name 
756*5113495bSYour Name /* Description		BUF5_PTR_31_0
757*5113495bSYour Name 
758*5113495bSYour Name 			Lower 32 bits of the sixth buffer pointer
759*5113495bSYour Name 
760*5113495bSYour Name 			NOTE: SW/FW manages the 'cookie' info related to this buffer
761*5113495bSYour Name 			 together with the 'cookie' info for this MSDU_EXTENSION
762*5113495bSYour Name 			 descriptor
763*5113495bSYour Name 			 <legal all>
764*5113495bSYour Name */
765*5113495bSYour Name 
766*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_PTR_31_0_OFFSET                                      0x00000040
767*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_PTR_31_0_LSB                                         0
768*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_PTR_31_0_MSB                                         31
769*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_PTR_31_0_MASK                                        0xffffffff
770*5113495bSYour Name 
771*5113495bSYour Name 
772*5113495bSYour Name /* Description		BUF5_PTR_39_32
773*5113495bSYour Name 
774*5113495bSYour Name 			Upper 8 bits of the sixth buffer pointer <legal all>
775*5113495bSYour Name */
776*5113495bSYour Name 
777*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_PTR_39_32_OFFSET                                     0x00000044
778*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_PTR_39_32_LSB                                        0
779*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_PTR_39_32_MSB                                        7
780*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_PTR_39_32_MASK                                       0x000000ff
781*5113495bSYour Name 
782*5113495bSYour Name 
783*5113495bSYour Name /* Description		RESERVED_17A
784*5113495bSYour Name 
785*5113495bSYour Name 			<Legal 0>
786*5113495bSYour Name */
787*5113495bSYour Name 
788*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_17A_OFFSET                                       0x00000044
789*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_17A_LSB                                          8
790*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_17A_MSB                                          15
791*5113495bSYour Name #define TX_MSDU_EXTENSION_RESERVED_17A_MASK                                         0x0000ff00
792*5113495bSYour Name 
793*5113495bSYour Name 
794*5113495bSYour Name /* Description		BUF5_LEN
795*5113495bSYour Name 
796*5113495bSYour Name 			Length of the sixth buffer <legal all>
797*5113495bSYour Name */
798*5113495bSYour Name 
799*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_LEN_OFFSET                                           0x00000044
800*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_LEN_LSB                                              16
801*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_LEN_MSB                                              31
802*5113495bSYour Name #define TX_MSDU_EXTENSION_BUF5_LEN_MASK                                             0xffff0000
803*5113495bSYour Name 
804*5113495bSYour Name 
805*5113495bSYour Name 
806*5113495bSYour Name #endif   // TX_MSDU_EXTENSION
807