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