xref: /wlan-driver/fw-api/hw/qcn6432/tx_raw_or_native_frame_setup.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_RAW_OR_NATIVE_FRAME_SETUP_H_
18*5113495bSYour Name #define _TX_RAW_OR_NATIVE_FRAME_SETUP_H_
19*5113495bSYour Name #if !defined(__ASSEMBLER__)
20*5113495bSYour Name #endif
21*5113495bSYour Name 
22*5113495bSYour Name #define NUM_OF_DWORDS_TX_RAW_OR_NATIVE_FRAME_SETUP 2
23*5113495bSYour Name 
24*5113495bSYour Name #define NUM_OF_QWORDS_TX_RAW_OR_NATIVE_FRAME_SETUP 1
25*5113495bSYour Name 
26*5113495bSYour Name 
27*5113495bSYour Name struct tx_raw_or_native_frame_setup {
28*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
29*5113495bSYour Name              uint32_t fc_to_ds_mask                                           :  1, // [0:0]
30*5113495bSYour Name                       fc_from_ds_mask                                         :  1, // [1:1]
31*5113495bSYour Name                       fc_more_frag_mask                                       :  1, // [2:2]
32*5113495bSYour Name                       fc_retry_mask                                           :  1, // [3:3]
33*5113495bSYour Name                       fc_pwr_mgt_mask                                         :  1, // [4:4]
34*5113495bSYour Name                       fc_more_data_mask                                       :  1, // [5:5]
35*5113495bSYour Name                       fc_prot_frame_mask                                      :  1, // [6:6]
36*5113495bSYour Name                       fc_order_mask                                           :  1, // [7:7]
37*5113495bSYour Name                       duration_field_mask                                     :  1, // [8:8]
38*5113495bSYour Name                       sequence_control_mask                                   :  1, // [9:9]
39*5113495bSYour Name                       qc_tid_mask                                             :  1, // [10:10]
40*5113495bSYour Name                       qc_eosp_mask                                            :  1, // [11:11]
41*5113495bSYour Name                       qc_ack_policy_mask                                      :  1, // [12:12]
42*5113495bSYour Name                       qc_amsdu_mask                                           :  1, // [13:13]
43*5113495bSYour Name                       reserved_0a                                             :  1, // [14:14]
44*5113495bSYour Name                       qc_15to8_mask                                           :  1, // [15:15]
45*5113495bSYour Name                       iv_mask                                                 :  1, // [16:16]
46*5113495bSYour Name                       fc_to_ds_setting                                        :  1, // [17:17]
47*5113495bSYour Name                       fc_from_ds_setting                                      :  1, // [18:18]
48*5113495bSYour Name                       fc_more_frag_setting                                    :  1, // [19:19]
49*5113495bSYour Name                       fc_retry_setting                                        :  2, // [21:20]
50*5113495bSYour Name                       fc_pwr_mgt_setting                                      :  1, // [22:22]
51*5113495bSYour Name                       fc_more_data_setting                                    :  2, // [24:23]
52*5113495bSYour Name                       fc_prot_frame_setting                                   :  2, // [26:25]
53*5113495bSYour Name                       fc_order_setting                                        :  1, // [27:27]
54*5113495bSYour Name                       qc_tid_setting                                          :  4; // [31:28]
55*5113495bSYour Name              uint32_t qc_eosp_setting                                         :  2, // [1:0]
56*5113495bSYour Name                       qc_ack_policy_setting                                   :  2, // [3:2]
57*5113495bSYour Name                       qc_amsdu_setting                                        :  1, // [4:4]
58*5113495bSYour Name                       qc_15to8_setting                                        :  8, // [12:5]
59*5113495bSYour Name                       mlo_addr_override                                       :  1, // [13:13]
60*5113495bSYour Name                       mlo_ignore_addr3_override                               :  1, // [14:14]
61*5113495bSYour Name                       sequence_control_source                                 :  1, // [15:15]
62*5113495bSYour Name                       fragment_number                                         :  4, // [19:16]
63*5113495bSYour Name                       sequence_number                                         : 12; // [31:20]
64*5113495bSYour Name #else
65*5113495bSYour Name              uint32_t qc_tid_setting                                          :  4, // [31:28]
66*5113495bSYour Name                       fc_order_setting                                        :  1, // [27:27]
67*5113495bSYour Name                       fc_prot_frame_setting                                   :  2, // [26:25]
68*5113495bSYour Name                       fc_more_data_setting                                    :  2, // [24:23]
69*5113495bSYour Name                       fc_pwr_mgt_setting                                      :  1, // [22:22]
70*5113495bSYour Name                       fc_retry_setting                                        :  2, // [21:20]
71*5113495bSYour Name                       fc_more_frag_setting                                    :  1, // [19:19]
72*5113495bSYour Name                       fc_from_ds_setting                                      :  1, // [18:18]
73*5113495bSYour Name                       fc_to_ds_setting                                        :  1, // [17:17]
74*5113495bSYour Name                       iv_mask                                                 :  1, // [16:16]
75*5113495bSYour Name                       qc_15to8_mask                                           :  1, // [15:15]
76*5113495bSYour Name                       reserved_0a                                             :  1, // [14:14]
77*5113495bSYour Name                       qc_amsdu_mask                                           :  1, // [13:13]
78*5113495bSYour Name                       qc_ack_policy_mask                                      :  1, // [12:12]
79*5113495bSYour Name                       qc_eosp_mask                                            :  1, // [11:11]
80*5113495bSYour Name                       qc_tid_mask                                             :  1, // [10:10]
81*5113495bSYour Name                       sequence_control_mask                                   :  1, // [9:9]
82*5113495bSYour Name                       duration_field_mask                                     :  1, // [8:8]
83*5113495bSYour Name                       fc_order_mask                                           :  1, // [7:7]
84*5113495bSYour Name                       fc_prot_frame_mask                                      :  1, // [6:6]
85*5113495bSYour Name                       fc_more_data_mask                                       :  1, // [5:5]
86*5113495bSYour Name                       fc_pwr_mgt_mask                                         :  1, // [4:4]
87*5113495bSYour Name                       fc_retry_mask                                           :  1, // [3:3]
88*5113495bSYour Name                       fc_more_frag_mask                                       :  1, // [2:2]
89*5113495bSYour Name                       fc_from_ds_mask                                         :  1, // [1:1]
90*5113495bSYour Name                       fc_to_ds_mask                                           :  1; // [0:0]
91*5113495bSYour Name              uint32_t sequence_number                                         : 12, // [31:20]
92*5113495bSYour Name                       fragment_number                                         :  4, // [19:16]
93*5113495bSYour Name                       sequence_control_source                                 :  1, // [15:15]
94*5113495bSYour Name                       mlo_ignore_addr3_override                               :  1, // [14:14]
95*5113495bSYour Name                       mlo_addr_override                                       :  1, // [13:13]
96*5113495bSYour Name                       qc_15to8_setting                                        :  8, // [12:5]
97*5113495bSYour Name                       qc_amsdu_setting                                        :  1, // [4:4]
98*5113495bSYour Name                       qc_ack_policy_setting                                   :  2, // [3:2]
99*5113495bSYour Name                       qc_eosp_setting                                         :  2; // [1:0]
100*5113495bSYour Name #endif
101*5113495bSYour Name };
102*5113495bSYour Name 
103*5113495bSYour Name 
104*5113495bSYour Name /* Description		FC_TO_DS_MASK
105*5113495bSYour Name 
106*5113495bSYour Name 			Consumer: TXOLE
107*5113495bSYour Name 			Producer: SW
108*5113495bSYour Name 
109*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
110*5113495bSYour Name 			 Native WiFi
111*5113495bSYour Name 			Note: Enc_type is NOT allowed b
112*5113495bSYour Name 
113*5113495bSYour Name 			Note:
114*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will get the setting
115*5113495bSYour Name 			 from the frame_ctl field in the MPDU_queue extension data
116*5113495bSYour Name 			 structure.
117*5113495bSYour Name 
118*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
119*5113495bSYour Name 			The value that HW (OLE) will insert is the given in field:
120*5113495bSYour Name 			fc_to_ds_setting.
121*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
122*5113495bSYour Name 			 of this field.
123*5113495bSYour Name 
124*5113495bSYour Name 			<legal all>
125*5113495bSYour Name 
126*5113495bSYour Name 			In 11ah mode of Operation, same description as above applies
127*5113495bSYour Name 			 if this field is a part of FC field of the MPDU. This field
128*5113495bSYour Name 			 does not apply to Short MAC header (PV=1) and is ignored
129*5113495bSYour Name 			 by HW
130*5113495bSYour Name */
131*5113495bSYour Name 
132*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_OFFSET                           0x0000000000000000
133*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_LSB                              0
134*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_MSB                              0
135*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_MASK_MASK                             0x0000000000000001
136*5113495bSYour Name 
137*5113495bSYour Name 
138*5113495bSYour Name /* Description		FC_FROM_DS_MASK
139*5113495bSYour Name 
140*5113495bSYour Name 			Consumer: TXOLE
141*5113495bSYour Name 			Producer: SW
142*5113495bSYour Name 
143*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
144*5113495bSYour Name 			 Native WiFi
145*5113495bSYour Name 
146*5113495bSYour Name 			Note:
147*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will get the setting
148*5113495bSYour Name 			 from the frame_ctl field in the MPDU_queue extension data
149*5113495bSYour Name 			 structure.
150*5113495bSYour Name 
151*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
152*5113495bSYour Name 			The value that HW (OLE) will insert is the given in field:
153*5113495bSYour Name 			fc_from_ds_setting.
154*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
155*5113495bSYour Name 			 of this field.
156*5113495bSYour Name 
157*5113495bSYour Name 			<legal all>
158*5113495bSYour Name 
159*5113495bSYour Name 			In 11ah mode of Operation, same description as above applies
160*5113495bSYour Name 			 if this field is a part of FC field of the MPDU.
161*5113495bSYour Name */
162*5113495bSYour Name 
163*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_OFFSET                         0x0000000000000000
164*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_LSB                            1
165*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_MSB                            1
166*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_MASK_MASK                           0x0000000000000002
167*5113495bSYour Name 
168*5113495bSYour Name 
169*5113495bSYour Name /* Description		FC_MORE_FRAG_MASK
170*5113495bSYour Name 
171*5113495bSYour Name 			Consumer: TXOLE
172*5113495bSYour Name 			Producer: SW
173*5113495bSYour Name 
174*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
175*5113495bSYour Name 			 Native WiFi
176*5113495bSYour Name 
177*5113495bSYour Name 			Note:
178*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will get the setting
179*5113495bSYour Name 			 from the frame_ctl field in the MPDU_queue extension data
180*5113495bSYour Name 			 structure.
181*5113495bSYour Name 
182*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
183*5113495bSYour Name 			The value that HW (OLE) will insert is the given in field:
184*5113495bSYour Name 			fc_more_frag_setting.
185*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
186*5113495bSYour Name 			 of this field.
187*5113495bSYour Name 
188*5113495bSYour Name 			<legal all>
189*5113495bSYour Name */
190*5113495bSYour Name 
191*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_OFFSET                       0x0000000000000000
192*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_LSB                          2
193*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_MSB                          2
194*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_MASK_MASK                         0x0000000000000004
195*5113495bSYour Name 
196*5113495bSYour Name 
197*5113495bSYour Name /* Description		FC_RETRY_MASK
198*5113495bSYour Name 
199*5113495bSYour Name 			Consumer: TXOLE
200*5113495bSYour Name 			Producer: SW
201*5113495bSYour Name 
202*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
203*5113495bSYour Name 			 Native WiFi
204*5113495bSYour Name 
205*5113495bSYour Name 			Note:
206*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will base the setting
207*5113495bSYour Name 			 for this field on the retry_bitmap_31_0 and retry_bitmap_63_32
208*5113495bSYour Name 			 fields in the MPDU_queue_extension descriptor
209*5113495bSYour Name 
210*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
211*5113495bSYour Name 			The value that HW (OLE) will insert is the given in field:
212*5113495bSYour Name 			fc_retry_setting.
213*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
214*5113495bSYour Name 			 of this field.
215*5113495bSYour Name 
216*5113495bSYour Name 			<legal all>
217*5113495bSYour Name */
218*5113495bSYour Name 
219*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_OFFSET                           0x0000000000000000
220*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_LSB                              3
221*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_MSB                              3
222*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_MASK_MASK                             0x0000000000000008
223*5113495bSYour Name 
224*5113495bSYour Name 
225*5113495bSYour Name /* Description		FC_PWR_MGT_MASK
226*5113495bSYour Name 
227*5113495bSYour Name 			Consumer: TXOLE
228*5113495bSYour Name 			Producer: SW
229*5113495bSYour Name 
230*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
231*5113495bSYour Name 			 Native WiFi
232*5113495bSYour Name 
233*5113495bSYour Name 			Note:
234*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will get the setting
235*5113495bSYour Name 			 from the frame_ctl field in the MPDU_queue extension data
236*5113495bSYour Name 			 structure.
237*5113495bSYour Name 
238*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
239*5113495bSYour Name 			The value that HW (OLE) will insert is the given in field:
240*5113495bSYour Name 			fc_pwr_mgt_setting.
241*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
242*5113495bSYour Name 			 of this field.
243*5113495bSYour Name 
244*5113495bSYour Name 			<legal all>
245*5113495bSYour Name */
246*5113495bSYour Name 
247*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_OFFSET                         0x0000000000000000
248*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_LSB                            4
249*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_MSB                            4
250*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_MASK_MASK                           0x0000000000000010
251*5113495bSYour Name 
252*5113495bSYour Name 
253*5113495bSYour Name /* Description		FC_MORE_DATA_MASK
254*5113495bSYour Name 
255*5113495bSYour Name 			Consumer: TXOLE
256*5113495bSYour Name 			Producer: SW
257*5113495bSYour Name 
258*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
259*5113495bSYour Name 			 Native WiFi
260*5113495bSYour Name 
261*5113495bSYour Name 			Note:
262*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will get the setting
263*5113495bSYour Name 			 from the frame_ctl field in the MPDU_queue extension data
264*5113495bSYour Name 			 structure.
265*5113495bSYour Name 
266*5113495bSYour Name 			TX_PCU has the abilty of overwrite the More data field,
267*5113495bSYour Name 			based on the Set_fc_more_data field in the PPDU_SS_... TLVs
268*5113495bSYour Name 			 given by PDG.
269*5113495bSYour Name 
270*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
271*5113495bSYour Name 			The value that HW (OLE) will insert is the given in field:
272*5113495bSYour Name 			fc_more_data_setting.
273*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
274*5113495bSYour Name 			 of this field.
275*5113495bSYour Name 
276*5113495bSYour Name 			<legal all>
277*5113495bSYour Name */
278*5113495bSYour Name 
279*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_OFFSET                       0x0000000000000000
280*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_LSB                          5
281*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_MSB                          5
282*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_MASK_MASK                         0x0000000000000020
283*5113495bSYour Name 
284*5113495bSYour Name 
285*5113495bSYour Name /* Description		FC_PROT_FRAME_MASK
286*5113495bSYour Name 
287*5113495bSYour Name 			Consumer: TXOLE
288*5113495bSYour Name 			Producer: SW
289*5113495bSYour Name 
290*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
291*5113495bSYour Name 			 Native WiFi
292*5113495bSYour Name 
293*5113495bSYour Name 			Note:
294*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will base the setting
295*5113495bSYour Name 			 for the Protected frame bit on the key_type setting  in
296*5113495bSYour Name 			 the peer entry. When NO encryption is needed, the bit will
297*5113495bSYour Name 			 be set to 0, When the any encryption is needed, the bit
298*5113495bSYour Name 			 will be set to 0.
299*5113495bSYour Name 
300*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
301*5113495bSYour Name 			The value that HW (OLE) will insert is the given in field:
302*5113495bSYour Name 			fc_prot_frame_setting. When fc_prot_frame_setting is set,
303*5113495bSYour Name 			OLE will encrypt the frame, based on the encryption type
304*5113495bSYour Name 			 indicate with the key_type setting  in the peer entry
305*5113495bSYour Name 
306*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
307*5113495bSYour Name 			 of this field.
308*5113495bSYour Name 			<legal all>
309*5113495bSYour Name */
310*5113495bSYour Name 
311*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_OFFSET                      0x0000000000000000
312*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_LSB                         6
313*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_MSB                         6
314*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_MASK_MASK                        0x0000000000000040
315*5113495bSYour Name 
316*5113495bSYour Name 
317*5113495bSYour Name /* Description		FC_ORDER_MASK
318*5113495bSYour Name 
319*5113495bSYour Name 			Consumer: TXOLE
320*5113495bSYour Name 			Producer: SW
321*5113495bSYour Name 
322*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
323*5113495bSYour Name 			 Native WiFi
324*5113495bSYour Name 
325*5113495bSYour Name 			Note:
326*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will get the setting
327*5113495bSYour Name 			 from the frame_ctl field in the MPDU_queue extension data
328*5113495bSYour Name 			 structure.
329*5113495bSYour Name 
330*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
331*5113495bSYour Name 			The value that HW (OLE) will insert is the given in field:
332*5113495bSYour Name 			fc_order_setting.
333*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
334*5113495bSYour Name 			 of this field.
335*5113495bSYour Name 
336*5113495bSYour Name 			<legal all>
337*5113495bSYour Name 
338*5113495bSYour Name 			In 11ah mode of Operation, same description as above applies
339*5113495bSYour Name 			 if this field is a part of FC field of the MPDU.
340*5113495bSYour Name */
341*5113495bSYour Name 
342*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_OFFSET                           0x0000000000000000
343*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_LSB                              7
344*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_MSB                              7
345*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_MASK_MASK                             0x0000000000000080
346*5113495bSYour Name 
347*5113495bSYour Name 
348*5113495bSYour Name /* Description		DURATION_FIELD_MASK
349*5113495bSYour Name 
350*5113495bSYour Name 			Consumer: TXOLE
351*5113495bSYour Name 			Producer: SW
352*5113495bSYour Name 
353*5113495bSYour Name 			Field only valid for MPDU frames with MSDU enc_type == RAW
354*5113495bSYour Name 			 or Native WiFi
355*5113495bSYour Name 
356*5113495bSYour Name 			Note:
357*5113495bSYour Name 			When enc_type != RAW or Native WiFi, TX PCU will get the
358*5113495bSYour Name 			 value for this field from the Duration fields in the PPDU_SS_...
359*5113495bSYour Name 			TLVs from PDG.
360*5113495bSYour Name 
361*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
362*5113495bSYour Name 			The value that HW (TX_PCU) will insert is coming from the
363*5113495bSYour Name 			 Duration fields in the PPDU_SS_... TLVs from PDG (similar
364*5113495bSYour Name 			 as with NON RAW/Native WiFi frames).
365*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
366*5113495bSYour Name 			 of this field.
367*5113495bSYour Name 
368*5113495bSYour Name 			<legal all>
369*5113495bSYour Name 
370*5113495bSYour Name 			In 11ah mode of Operation, same description as above applies
371*5113495bSYour Name 			 if this field is a part of FC field of the MPDU.
372*5113495bSYour Name */
373*5113495bSYour Name 
374*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_OFFSET                     0x0000000000000000
375*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_LSB                        8
376*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_MSB                        8
377*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_DURATION_FIELD_MASK_MASK                       0x0000000000000100
378*5113495bSYour Name 
379*5113495bSYour Name 
380*5113495bSYour Name /* Description		SEQUENCE_CONTROL_MASK
381*5113495bSYour Name 
382*5113495bSYour Name 			Consumer: TXOLE
383*5113495bSYour Name 			Producer: SW
384*5113495bSYour Name 
385*5113495bSYour Name 			Field only valid for MPDU frames with MSDU enc_type == RAW
386*5113495bSYour Name 			 or Native WiFi
387*5113495bSYour Name 
388*5113495bSYour Name 			Note:
389*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will base the value
390*5113495bSYour Name 			 for  this field on sequence number field in the TX_MPDU_START
391*5113495bSYour Name 			 descriptor
392*5113495bSYour Name 
393*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
394*5113495bSYour Name 			The value that HW (OLE) will insert is dependent on the
395*5113495bSYour Name 			setting in the 'sequence_control_source' field
396*5113495bSYour Name 
397*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
398*5113495bSYour Name 			 of this field.
399*5113495bSYour Name 
400*5113495bSYour Name 			<legal all>
401*5113495bSYour Name */
402*5113495bSYour Name 
403*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_OFFSET                   0x0000000000000000
404*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_LSB                      9
405*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_MSB                      9
406*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_MASK_MASK                     0x0000000000000200
407*5113495bSYour Name 
408*5113495bSYour Name 
409*5113495bSYour Name /* Description		QC_TID_MASK
410*5113495bSYour Name 
411*5113495bSYour Name 			Consumer: TXOLE
412*5113495bSYour Name 			Producer: SW
413*5113495bSYour Name 
414*5113495bSYour Name 			Field only valid for MPDU frames with MSDU enc_type == RAW
415*5113495bSYour Name 			 or Native WiFi
416*5113495bSYour Name 
417*5113495bSYour Name 			Note:
418*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will base the value
419*5113495bSYour Name 			 for  this field on the qos_ctl field from the MPDU_queue_ext
420*5113495bSYour Name 			 data structure.
421*5113495bSYour Name 
422*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update this field.
423*5113495bSYour Name 			The value that HW (OLE) will insert is the given in field:
424*5113495bSYour Name 			qc_tid_setting.
425*5113495bSYour Name 
426*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
427*5113495bSYour Name 			 of this field.
428*5113495bSYour Name 
429*5113495bSYour Name 			<legal all>
430*5113495bSYour Name */
431*5113495bSYour Name 
432*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_OFFSET                             0x0000000000000000
433*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_LSB                                10
434*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_MSB                                10
435*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_MASK_MASK                               0x0000000000000400
436*5113495bSYour Name 
437*5113495bSYour Name 
438*5113495bSYour Name /* Description		QC_EOSP_MASK
439*5113495bSYour Name 
440*5113495bSYour Name 			Consumer: TXOLE
441*5113495bSYour Name 			Producer: SW
442*5113495bSYour Name 
443*5113495bSYour Name 			Field only valid for MPDU frames with MSDU enc_type == RAW
444*5113495bSYour Name 			 or Native WiFi
445*5113495bSYour Name 
446*5113495bSYour Name 			Note:
447*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will base the value
448*5113495bSYour Name 			 for  this field on the qos_ctl field from the MPDU_queue_ext
449*5113495bSYour Name 			 data structure.
450*5113495bSYour Name 
451*5113495bSYour Name 			TX_PCU has the abilty of overwrite the QoS eosp field, based
452*5113495bSYour Name 			 on the Set_fc_more_data field in the PPDU_SS_... TLVs given
453*5113495bSYour Name 			 by PDG.
454*5113495bSYour Name 
455*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update the QoS eosp
456*5113495bSYour Name 			 field. The value that HW (OLE) will insert is the given
457*5113495bSYour Name 			 in field: qc_eosp_setting.
458*5113495bSYour Name 
459*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
460*5113495bSYour Name 			 of this field.
461*5113495bSYour Name 
462*5113495bSYour Name 			<legal all>
463*5113495bSYour Name 
464*5113495bSYour Name 			In 11ah mode of Operation, same description as above applies
465*5113495bSYour Name 			 if this field is a part of FC field of the MPDU.
466*5113495bSYour Name */
467*5113495bSYour Name 
468*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_OFFSET                            0x0000000000000000
469*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_LSB                               11
470*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_MSB                               11
471*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_MASK_MASK                              0x0000000000000800
472*5113495bSYour Name 
473*5113495bSYour Name 
474*5113495bSYour Name /* Description		QC_ACK_POLICY_MASK
475*5113495bSYour Name 
476*5113495bSYour Name 			Consumer: TXOLE
477*5113495bSYour Name 			Producer: SW
478*5113495bSYour Name 
479*5113495bSYour Name 			Field only valid for MPDU frames with MSDU enc_type == RAW
480*5113495bSYour Name 			 or Native WiFi
481*5113495bSYour Name 
482*5113495bSYour Name 			Note:
483*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will base the value
484*5113495bSYour Name 			 for  this field on the qos_ctl field from the MPDU_queue_ext
485*5113495bSYour Name 			 data structure.
486*5113495bSYour Name 
487*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update the QoS ack
488*5113495bSYour Name 			 policy field. The value that HW (OLE) will insert is determined
489*5113495bSYour Name 			 by field: qc_ack_policy_setting.
490*5113495bSYour Name 
491*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
492*5113495bSYour Name 			 of this field.
493*5113495bSYour Name 
494*5113495bSYour Name 			<legal all>
495*5113495bSYour Name */
496*5113495bSYour Name 
497*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_OFFSET                      0x0000000000000000
498*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_LSB                         12
499*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_MSB                         12
500*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_MASK_MASK                        0x0000000000001000
501*5113495bSYour Name 
502*5113495bSYour Name 
503*5113495bSYour Name /* Description		QC_AMSDU_MASK
504*5113495bSYour Name 
505*5113495bSYour Name 			Consumer: TXOLE
506*5113495bSYour Name 			Producer: SW
507*5113495bSYour Name 
508*5113495bSYour Name 			Field only valid for MPDU frames with MSDU enc_type == RAW
509*5113495bSYour Name 			 or Native WiFi
510*5113495bSYour Name 
511*5113495bSYour Name 			Note:
512*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will base the value
513*5113495bSYour Name 			 for  this field on the qos_ctl field from the MPDU_queue_ext
514*5113495bSYour Name 			 data structure.
515*5113495bSYour Name 
516*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update the QoS amsdu
517*5113495bSYour Name 			 field. The value that HW (OLE) will insert is determined
518*5113495bSYour Name 			 by field: qc_amsdu_setting.
519*5113495bSYour Name 
520*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
521*5113495bSYour Name 			 of this field.
522*5113495bSYour Name 
523*5113495bSYour Name 			<legal all>
524*5113495bSYour Name */
525*5113495bSYour Name 
526*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_OFFSET                           0x0000000000000000
527*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_LSB                              13
528*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_MSB                              13
529*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_MASK_MASK                             0x0000000000002000
530*5113495bSYour Name 
531*5113495bSYour Name 
532*5113495bSYour Name /* Description		RESERVED_0A
533*5113495bSYour Name 
534*5113495bSYour Name 			<legal 0>
535*5113495bSYour Name */
536*5113495bSYour Name 
537*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_OFFSET                             0x0000000000000000
538*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_LSB                                14
539*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_MSB                                14
540*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_RESERVED_0A_MASK                               0x0000000000004000
541*5113495bSYour Name 
542*5113495bSYour Name 
543*5113495bSYour Name /* Description		QC_15TO8_MASK
544*5113495bSYour Name 
545*5113495bSYour Name 			Consumer: TXOLE
546*5113495bSYour Name 			Producer: SW
547*5113495bSYour Name 
548*5113495bSYour Name 			Field only valid for MPDU frames with MSDU enc_type == RAW
549*5113495bSYour Name 			 or Native WiFi
550*5113495bSYour Name 
551*5113495bSYour Name 			Note:
552*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will base the value
553*5113495bSYour Name 			 for  this field on the qos_ctl field from the MPDU_queue_ext
554*5113495bSYour Name 			 data structure.
555*5113495bSYour Name 
556*5113495bSYour Name 			<enum 0 mask_disable>: HW is allowed to update the QoS control
557*5113495bSYour Name 			 field, bits 15-8. The value that HW (OLE) will insert is
558*5113495bSYour Name 			 determined by field: qc_15to8_setting.
559*5113495bSYour Name 
560*5113495bSYour Name 			<enum 1 mask_enable>: HW is not allowed to update the contents
561*5113495bSYour Name 			 of this field.
562*5113495bSYour Name 
563*5113495bSYour Name 			<legal all>
564*5113495bSYour Name */
565*5113495bSYour Name 
566*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_OFFSET                           0x0000000000000000
567*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_LSB                              15
568*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_MSB                              15
569*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_MASK_MASK                             0x0000000000008000
570*5113495bSYour Name 
571*5113495bSYour Name 
572*5113495bSYour Name /* Description		IV_MASK
573*5113495bSYour Name 
574*5113495bSYour Name 			Consumer: TXOLE
575*5113495bSYour Name 			Producer: SW
576*5113495bSYour Name 
577*5113495bSYour Name 			Field only valid for MPDU frames with MSDU enc_type == RAW
578*5113495bSYour Name 			 or Native WiFi
579*5113495bSYour Name 
580*5113495bSYour Name 			Note:
581*5113495bSYour Name 			When enc_type != RAW or Native WiFi, OLE will base the IV
582*5113495bSYour Name 			 field insertion/value on the on the encryption type indicate
583*5113495bSYour Name 			 with the key_type setting  in the peer entry
584*5113495bSYour Name 
585*5113495bSYour Name 			<enum 0 mask_disable>: OLE is allowed to overwrite the IV
586*5113495bSYour Name 			 field, in case key_type setting  in the peer entry indicates
587*5113495bSYour Name 			 some encryption.
588*5113495bSYour Name 
589*5113495bSYour Name 			<enum 1 mask_enable>: OLE  is not allowed to overwrite any
590*5113495bSYour Name 			 of the IV field contents.
591*5113495bSYour Name 			<legal all>
592*5113495bSYour Name */
593*5113495bSYour Name 
594*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_OFFSET                                 0x0000000000000000
595*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_LSB                                    16
596*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_MSB                                    16
597*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_IV_MASK_MASK                                   0x0000000000010000
598*5113495bSYour Name 
599*5113495bSYour Name 
600*5113495bSYour Name /* Description		FC_TO_DS_SETTING
601*5113495bSYour Name 
602*5113495bSYour Name 			Consumer: TXOLE
603*5113495bSYour Name 			Producer: SW
604*5113495bSYour Name 
605*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
606*5113495bSYour Name 			 Native WiFi.
607*5113495bSYour Name 			Field only valid when field Fc_to_ds_mask is not set.
608*5113495bSYour Name 
609*5113495bSYour Name 			<enum 0 clear>: OLE will set the frame control field, to
610*5113495bSYour Name 			 ds bit to 0
611*5113495bSYour Name 			<enum 1 set>: OLE will set the frame control field, to ds
612*5113495bSYour Name 			 bit to 1
613*5113495bSYour Name 			<legal all>
614*5113495bSYour Name */
615*5113495bSYour Name 
616*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_OFFSET                        0x0000000000000000
617*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_LSB                           17
618*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_MSB                           17
619*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_TO_DS_SETTING_MASK                          0x0000000000020000
620*5113495bSYour Name 
621*5113495bSYour Name 
622*5113495bSYour Name /* Description		FC_FROM_DS_SETTING
623*5113495bSYour Name 
624*5113495bSYour Name 			Consumer: TXOLE
625*5113495bSYour Name 			Producer: SW
626*5113495bSYour Name 
627*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
628*5113495bSYour Name 			 Native WiFi.
629*5113495bSYour Name 			Field only valid when field Fc_from_ds_mask is not set.
630*5113495bSYour Name 
631*5113495bSYour Name 			<enum 0 clear>: OLE will set the frame control field, from
632*5113495bSYour Name 			 ds bit to 0
633*5113495bSYour Name 			<enum 1 set>: OLE will set the frame control field, from
634*5113495bSYour Name 			 ds bit to 1
635*5113495bSYour Name 			<legal all>
636*5113495bSYour Name */
637*5113495bSYour Name 
638*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_OFFSET                      0x0000000000000000
639*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_LSB                         18
640*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_MSB                         18
641*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_FROM_DS_SETTING_MASK                        0x0000000000040000
642*5113495bSYour Name 
643*5113495bSYour Name 
644*5113495bSYour Name /* Description		FC_MORE_FRAG_SETTING
645*5113495bSYour Name 
646*5113495bSYour Name 			Consumer: TXOLE
647*5113495bSYour Name 			Producer: SW
648*5113495bSYour Name 
649*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
650*5113495bSYour Name 			 Native WiFi.
651*5113495bSYour Name 			Field only valid when field Fc_more_frag_mask is not set.
652*5113495bSYour Name 
653*5113495bSYour Name 
654*5113495bSYour Name 			<enum 0 clear>: OLE will set the frame control field, more
655*5113495bSYour Name 			 frag bit to 0
656*5113495bSYour Name 			<enum 1 set>: OLE will set the frame control field, more
657*5113495bSYour Name 			 frag bit to 1
658*5113495bSYour Name 			<legal all>
659*5113495bSYour Name */
660*5113495bSYour Name 
661*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_OFFSET                    0x0000000000000000
662*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_LSB                       19
663*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_MSB                       19
664*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_FRAG_SETTING_MASK                      0x0000000000080000
665*5113495bSYour Name 
666*5113495bSYour Name 
667*5113495bSYour Name /* Description		FC_RETRY_SETTING
668*5113495bSYour Name 
669*5113495bSYour Name 			Consumer: TXOLE
670*5113495bSYour Name 			Producer: SW
671*5113495bSYour Name 
672*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
673*5113495bSYour Name 			 Native WiFi.
674*5113495bSYour Name 			Field only valid when field Fc_retry_mask is not set.
675*5113495bSYour Name 
676*5113495bSYour Name 			<enum 0 fc_retry_clear>: OLE will set the frame control
677*5113495bSYour Name 			field, retry bit to 0
678*5113495bSYour Name 			<enum 1 fc_retry_set>: OLE will set the frame control field,
679*5113495bSYour Name 			retry bit to 1
680*5113495bSYour Name 			<enum 2 fc_retry_bimap_based>: OLE will base the setting
681*5113495bSYour Name 			 for this field on the retry_bitmap_31_0 and retry_bitmap_63_32
682*5113495bSYour Name 			 fields in the MPDU_queue_extension descriptor
683*5113495bSYour Name 
684*5113495bSYour Name 			<legal 0-2>
685*5113495bSYour Name */
686*5113495bSYour Name 
687*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_OFFSET                        0x0000000000000000
688*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_LSB                           20
689*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_MSB                           21
690*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_RETRY_SETTING_MASK                          0x0000000000300000
691*5113495bSYour Name 
692*5113495bSYour Name 
693*5113495bSYour Name /* Description		FC_PWR_MGT_SETTING
694*5113495bSYour Name 
695*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
696*5113495bSYour Name 			 Native WiFi.
697*5113495bSYour Name 			Field only valid when field Fc_pwr_mgt_mask is not set.
698*5113495bSYour Name 
699*5113495bSYour Name 			<enum 0 clear>: OLE will set the frame control field, pwr_mgt
700*5113495bSYour Name 			 bit to 0
701*5113495bSYour Name 			<enum 1 set>: OLE will set the frame control field, pwr_mgt
702*5113495bSYour Name 			 bit to 1
703*5113495bSYour Name 			<legal all>
704*5113495bSYour Name */
705*5113495bSYour Name 
706*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_OFFSET                      0x0000000000000000
707*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_LSB                         22
708*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_MSB                         22
709*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PWR_MGT_SETTING_MASK                        0x0000000000400000
710*5113495bSYour Name 
711*5113495bSYour Name 
712*5113495bSYour Name /* Description		FC_MORE_DATA_SETTING
713*5113495bSYour Name 
714*5113495bSYour Name 			Consumer: TXOLE
715*5113495bSYour Name 			Producer: SW
716*5113495bSYour Name 
717*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
718*5113495bSYour Name 			 Native WiFi.
719*5113495bSYour Name 			Field only valid when field Fc_more_Data_mask is not set.
720*5113495bSYour Name 
721*5113495bSYour Name 
722*5113495bSYour Name 			<enum 0 fc_more_data_clear>: OLE will set the frame control
723*5113495bSYour Name 			 field, More data bit to 0
724*5113495bSYour Name 			<enum 1 fc_more_data_set>: OLE will set the frame control
725*5113495bSYour Name 			 field, More data bit to 1
726*5113495bSYour Name 
727*5113495bSYour Name 			<enum 2 fc_more_data_pdg_based>: OLE will set the Frame
728*5113495bSYour Name 			control, More data bit to 0, but TX_PCU has the abilty to
729*5113495bSYour Name 			 overwrite this based on the Set_fc_more_data field in the
730*5113495bSYour Name 			 PPDU_SS_... TLVs given by PDG.
731*5113495bSYour Name 
732*5113495bSYour Name 			<legal 0-2>
733*5113495bSYour Name */
734*5113495bSYour Name 
735*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_OFFSET                    0x0000000000000000
736*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_LSB                       23
737*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_MSB                       24
738*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_MORE_DATA_SETTING_MASK                      0x0000000001800000
739*5113495bSYour Name 
740*5113495bSYour Name 
741*5113495bSYour Name /* Description		FC_PROT_FRAME_SETTING
742*5113495bSYour Name 
743*5113495bSYour Name 			Consumer: TXOLE
744*5113495bSYour Name 			Producer: SW
745*5113495bSYour Name 
746*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
747*5113495bSYour Name 			 Native WiFi.
748*5113495bSYour Name 			Field only valid when field Fc_prot_frame_mask is not set.
749*5113495bSYour Name 
750*5113495bSYour Name 
751*5113495bSYour Name 			<enum 0 fc_prot_frame_clear>: OLE will set the frame control
752*5113495bSYour Name 			 field , "Protected Frame" bit to 0
753*5113495bSYour Name 			<enum 1 fc_prot_frame_set>: OLE will set the frame control
754*5113495bSYour Name 			 field , "Protected Frame" bit to 1
755*5113495bSYour Name 			<enum 2 fc_prot_frame_encap_type_based>: OLE configures
756*5113495bSYour Name 			the Frame Control field, Prot frame bit according to the
757*5113495bSYour Name 			 following rule:
758*5113495bSYour Name 			When the encryption type indicated with the key_type setting
759*5113495bSYour Name 			  in the peer entry is set to no crypto, the Frame control
760*5113495bSYour Name 			 "Protected Frame" bit is set to 0.
761*5113495bSYour Name 			When the encryption type indicated with the key_type setting
762*5113495bSYour Name 			 in the peer entry is set to some encryption type, the OLE
763*5113495bSYour Name 			 will set the frame control "Protected Frame" bit to 1.
764*5113495bSYour Name 			OLE changes only the value of the prot_frame bit. It won't
765*5113495bSYour Name 			 push IV in the frame according to this bit.
766*5113495bSYour Name 
767*5113495bSYour Name 			<legal 0-2>
768*5113495bSYour Name */
769*5113495bSYour Name 
770*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_OFFSET                   0x0000000000000000
771*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_LSB                      25
772*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_MSB                      26
773*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_PROT_FRAME_SETTING_MASK                     0x0000000006000000
774*5113495bSYour Name 
775*5113495bSYour Name 
776*5113495bSYour Name /* Description		FC_ORDER_SETTING
777*5113495bSYour Name 
778*5113495bSYour Name 			Consumer: TXOLE
779*5113495bSYour Name 			Producer: SW
780*5113495bSYour Name 
781*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
782*5113495bSYour Name 			 Native WiFi.
783*5113495bSYour Name 			Field only valid when field Fc_order_mask is not set.
784*5113495bSYour Name 
785*5113495bSYour Name 			<enum 0 clear>: OLE will set the frame control field , order
786*5113495bSYour Name 			 bit to 0
787*5113495bSYour Name 			<enum 1 set>: OLE will set the frame control field , order
788*5113495bSYour Name 			 bit to 1
789*5113495bSYour Name 			<legal all>
790*5113495bSYour Name */
791*5113495bSYour Name 
792*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_OFFSET                        0x0000000000000000
793*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_LSB                           27
794*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_MSB                           27
795*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FC_ORDER_SETTING_MASK                          0x0000000008000000
796*5113495bSYour Name 
797*5113495bSYour Name 
798*5113495bSYour Name /* Description		QC_TID_SETTING
799*5113495bSYour Name 
800*5113495bSYour Name 			Consumer: TXOLE
801*5113495bSYour Name 			Producer: SW
802*5113495bSYour Name 
803*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
804*5113495bSYour Name 			 Native WiFi.
805*5113495bSYour Name 			Field only valid when field Qc_tid_mask is not set.
806*5113495bSYour Name 
807*5113495bSYour Name 			OLE sets the TID field in the QoS control field to this
808*5113495bSYour Name 			value.
809*5113495bSYour Name 
810*5113495bSYour Name 			<legal all>
811*5113495bSYour Name */
812*5113495bSYour Name 
813*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_OFFSET                          0x0000000000000000
814*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_LSB                             28
815*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_MSB                             31
816*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_TID_SETTING_MASK                            0x00000000f0000000
817*5113495bSYour Name 
818*5113495bSYour Name 
819*5113495bSYour Name /* Description		QC_EOSP_SETTING
820*5113495bSYour Name 
821*5113495bSYour Name 			Consumer: TXOLE
822*5113495bSYour Name 			Producer: SW
823*5113495bSYour Name 
824*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
825*5113495bSYour Name 			 Native WiFi.
826*5113495bSYour Name 			Field only valid when field Qc_eosp_mask is not set.
827*5113495bSYour Name 
828*5113495bSYour Name 			<enum 0 qc_eosp_clear>: OLE will set the QoS control bit
829*5113495bSYour Name 			 to 0
830*5113495bSYour Name 			<enum 1 qc_eosp_set>: OLE will set the QoS control bit to
831*5113495bSYour Name 			 1
832*5113495bSYour Name 			<enum 2 qc_eosp_pdg_based>: OLE will set the QoS control
833*5113495bSYour Name 			 bit to 0, but TX_PCU has the abilty of overwrite the QoS
834*5113495bSYour Name 			 eosp field, based on the Set_fc_more_data field in the
835*5113495bSYour Name 			PPDU_SS_... TLVs given by PDG.
836*5113495bSYour Name 
837*5113495bSYour Name 			<legal 0-2>
838*5113495bSYour Name */
839*5113495bSYour Name 
840*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_OFFSET                         0x0000000000000000
841*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_LSB                            32
842*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_MSB                            33
843*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_EOSP_SETTING_MASK                           0x0000000300000000
844*5113495bSYour Name 
845*5113495bSYour Name 
846*5113495bSYour Name /* Description		QC_ACK_POLICY_SETTING
847*5113495bSYour Name 
848*5113495bSYour Name 			Consumer: TXOLE
849*5113495bSYour Name 			Producer: SW
850*5113495bSYour Name 
851*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
852*5113495bSYour Name 			 Native WiFi.
853*5113495bSYour Name 			Field only valid when field Qc_ack_policy_mask is not set.
854*5113495bSYour Name 
855*5113495bSYour Name 
856*5113495bSYour Name 			This is is QoS ACK policy value that RXOLE shall put in
857*5113495bSYour Name 			the ACK policy field in the QoS control field
858*5113495bSYour Name 
859*5113495bSYour Name 			<legal all>
860*5113495bSYour Name */
861*5113495bSYour Name 
862*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_OFFSET                   0x0000000000000000
863*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_LSB                      34
864*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_MSB                      35
865*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_ACK_POLICY_SETTING_MASK                     0x0000000c00000000
866*5113495bSYour Name 
867*5113495bSYour Name 
868*5113495bSYour Name /* Description		QC_AMSDU_SETTING
869*5113495bSYour Name 
870*5113495bSYour Name 			Consumer: TXOLE
871*5113495bSYour Name 			Producer: SW
872*5113495bSYour Name 
873*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
874*5113495bSYour Name 			 Native WiFi.
875*5113495bSYour Name 			Field only valid when field Qc_amsdu_mask is not set.
876*5113495bSYour Name 
877*5113495bSYour Name 			<enum 0 clear>: OLE will set the QoS control field amsdu
878*5113495bSYour Name 			 bit to 0
879*5113495bSYour Name 			<enum 1 set>: OLE will set the QoS control field amsdu bit
880*5113495bSYour Name 			 to 1
881*5113495bSYour Name 
882*5113495bSYour Name 			<legal all>
883*5113495bSYour Name */
884*5113495bSYour Name 
885*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_OFFSET                        0x0000000000000000
886*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_LSB                           36
887*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_MSB                           36
888*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_AMSDU_SETTING_MASK                          0x0000001000000000
889*5113495bSYour Name 
890*5113495bSYour Name 
891*5113495bSYour Name /* Description		QC_15TO8_SETTING
892*5113495bSYour Name 
893*5113495bSYour Name 			Consumer: TXOLE
894*5113495bSYour Name 			Producer: SW
895*5113495bSYour Name 
896*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
897*5113495bSYour Name 			 Native WiFi.
898*5113495bSYour Name 			Field only valid when field Qc_15to8_mask is not set.
899*5113495bSYour Name 
900*5113495bSYour Name 			OLE sets bit 8 to 16 in the QoS control field to this value.
901*5113495bSYour Name 
902*5113495bSYour Name 
903*5113495bSYour Name 			<legal all>
904*5113495bSYour Name */
905*5113495bSYour Name 
906*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_OFFSET                        0x0000000000000000
907*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_LSB                           37
908*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_MSB                           44
909*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_QC_15TO8_SETTING_MASK                          0x00001fe000000000
910*5113495bSYour Name 
911*5113495bSYour Name 
912*5113495bSYour Name /* Description		MLO_ADDR_OVERRIDE
913*5113495bSYour Name 
914*5113495bSYour Name 			Consumer: TXOLE
915*5113495bSYour Name 			Producer: SW
916*5113495bSYour Name 
917*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
918*5113495bSYour Name 			 Native WiFi.
919*5113495bSYour Name 
920*5113495bSYour Name 			Enables address translation for raw Wi-Fi frames to multi-link
921*5113495bSYour Name 			 peers, esp. management frames
922*5113495bSYour Name 			<legal all>
923*5113495bSYour Name */
924*5113495bSYour Name 
925*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_OFFSET                       0x0000000000000000
926*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_LSB                          45
927*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_MSB                          45
928*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_ADDR_OVERRIDE_MASK                         0x0000200000000000
929*5113495bSYour Name 
930*5113495bSYour Name 
931*5113495bSYour Name /* Description		MLO_IGNORE_ADDR3_OVERRIDE
932*5113495bSYour Name 
933*5113495bSYour Name 			Consumer: TXOLE
934*5113495bSYour Name 			Producer: SW
935*5113495bSYour Name 
936*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
937*5113495bSYour Name 			 Native WiFi when Mlo_addr_override is set.
938*5113495bSYour Name 
939*5113495bSYour Name 			Preserves Address3 (BSSID) for raw Wi-Fi management frames
940*5113495bSYour Name 			 to multi-link peers.
941*5113495bSYour Name 
942*5113495bSYour Name 			<legal all>
943*5113495bSYour Name */
944*5113495bSYour Name 
945*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_OFFSET               0x0000000000000000
946*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_LSB                  46
947*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_MSB                  46
948*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_MLO_IGNORE_ADDR3_OVERRIDE_MASK                 0x0000400000000000
949*5113495bSYour Name 
950*5113495bSYour Name 
951*5113495bSYour Name /* Description		SEQUENCE_CONTROL_SOURCE
952*5113495bSYour Name 
953*5113495bSYour Name 			Field only valid when field Sequence_control_mask is set
954*5113495bSYour Name 			 to 'mask_disable'.
955*5113495bSYour Name 
956*5113495bSYour Name 			<enum 0 seq_ctrl_source_mpdu_start>: OLE will set the sequence
957*5113495bSYour Name 			 control field based on what is indicated in the TX_MPDU_START
958*5113495bSYour Name 			 TLV.
959*5113495bSYour Name 
960*5113495bSYour Name 			<enum 1 seq_ctrl_source_this_tlv>: OLE will set the sequence
961*5113495bSYour Name 			 control field based on what is indicated in this TLV, fields
962*5113495bSYour Name 			 Fragment_number and Sequence_number
963*5113495bSYour Name 			Note that this setting assumes that there is only a single
964*5113495bSYour Name 			 RAW or Native Wifi MPDU for this user in the transmit path.
965*5113495bSYour Name 			This works well for level 1 fragmentation. Reason that there
966*5113495bSYour Name 			 should only be a single RAW or Native WiFi frames is that
967*5113495bSYour Name 			 with this feature they would all get the same sequence +
968*5113495bSYour Name 			fragment  number
969*5113495bSYour Name 
970*5113495bSYour Name 			<legal 0-1>
971*5113495bSYour Name */
972*5113495bSYour Name 
973*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_OFFSET                 0x0000000000000000
974*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_LSB                    47
975*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_MSB                    47
976*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_CONTROL_SOURCE_MASK                   0x0000800000000000
977*5113495bSYour Name 
978*5113495bSYour Name 
979*5113495bSYour Name /* Description		FRAGMENT_NUMBER
980*5113495bSYour Name 
981*5113495bSYour Name 			Consumer: TXOLE
982*5113495bSYour Name 			Producer: SW
983*5113495bSYour Name 
984*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
985*5113495bSYour Name 			 Native WiFi.
986*5113495bSYour Name 
987*5113495bSYour Name 			Field only valid when field Sequence_control_mask =  mask_disable
988*5113495bSYour Name 			 AND sequence_control_source is set to seq_ctrl_source_this_tlv
989*5113495bSYour Name 
990*5113495bSYour Name 
991*5113495bSYour Name 			The Fragment number to be filled in
992*5113495bSYour Name 			<legal all>
993*5113495bSYour Name */
994*5113495bSYour Name 
995*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_OFFSET                         0x0000000000000000
996*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_LSB                            48
997*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_MSB                            51
998*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_FRAGMENT_NUMBER_MASK                           0x000f000000000000
999*5113495bSYour Name 
1000*5113495bSYour Name 
1001*5113495bSYour Name /* Description		SEQUENCE_NUMBER
1002*5113495bSYour Name 
1003*5113495bSYour Name 			Consumer: TXOLE
1004*5113495bSYour Name 			Producer: SW
1005*5113495bSYour Name 
1006*5113495bSYour Name 			Field only valid for MSDU frames with enc_type == RAW or
1007*5113495bSYour Name 			 Native WiFi.
1008*5113495bSYour Name 
1009*5113495bSYour Name 			Field only valid when field Sequence_control_mask =  mask_disable
1010*5113495bSYour Name 			 AND sequence_control_source is set to seq_ctrl_source_this_tlv
1011*5113495bSYour Name 
1012*5113495bSYour Name 
1013*5113495bSYour Name 			The Sequence number to be filled in
1014*5113495bSYour Name 			<legal all>
1015*5113495bSYour Name */
1016*5113495bSYour Name 
1017*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_OFFSET                         0x0000000000000000
1018*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_LSB                            52
1019*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_MSB                            63
1020*5113495bSYour Name #define TX_RAW_OR_NATIVE_FRAME_SETUP_SEQUENCE_NUMBER_MASK                           0xfff0000000000000
1021*5113495bSYour Name 
1022*5113495bSYour Name 
1023*5113495bSYour Name 
1024*5113495bSYour Name #endif   // TX_RAW_OR_NATIVE_FRAME_SETUP
1025