xref: /wlan-driver/qca-wifi-host-cmn/qdf/inc/i_qdf_nbuf_api_w.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2014-2017,2019-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name 
20*5113495bSYour Name /**
21*5113495bSYour Name  * DOC: i_qdf_nbuf_api_w.h
22*5113495bSYour Name  *
23*5113495bSYour Name  * Platform specific qdf_nbuf_public network buffer API
24*5113495bSYour Name  * This file defines the network buffer abstraction.
25*5113495bSYour Name  * Included by qdf_nbuf.h and should not be included
26*5113495bSYour Name  * directly from other files.
27*5113495bSYour Name  */
28*5113495bSYour Name 
29*5113495bSYour Name #ifndef _QDF_NBUF_W_H
30*5113495bSYour Name #define _QDF_NBUF_W_H
31*5113495bSYour Name 
qdf_nbuf_get_tx_fctx(qdf_nbuf_t buf)32*5113495bSYour Name static inline void *qdf_nbuf_get_tx_fctx(qdf_nbuf_t buf)
33*5113495bSYour Name {
34*5113495bSYour Name 	return  __qdf_nbuf_get_tx_fctx(buf);
35*5113495bSYour Name }
36*5113495bSYour Name 
qdf_nbuf_get_rx_fctx(qdf_nbuf_t buf)37*5113495bSYour Name static inline void *qdf_nbuf_get_rx_fctx(qdf_nbuf_t buf)
38*5113495bSYour Name {
39*5113495bSYour Name 	return  __qdf_nbuf_get_rx_fctx(buf);
40*5113495bSYour Name }
41*5113495bSYour Name 
42*5113495bSYour Name 
43*5113495bSYour Name static inline void
qdf_nbuf_set_tx_fctx_type(qdf_nbuf_t buf,void * ctx,uint8_t type)44*5113495bSYour Name qdf_nbuf_set_tx_fctx_type(qdf_nbuf_t buf, void *ctx, uint8_t type)
45*5113495bSYour Name {
46*5113495bSYour Name 	__qdf_nbuf_set_tx_fctx_type(buf, ctx, type);
47*5113495bSYour Name }
48*5113495bSYour Name 
49*5113495bSYour Name static inline void
qdf_nbuf_set_rx_fctx_type(qdf_nbuf_t buf,void * ctx,uint8_t type)50*5113495bSYour Name qdf_nbuf_set_rx_fctx_type(qdf_nbuf_t buf, void *ctx, uint8_t type)
51*5113495bSYour Name {
52*5113495bSYour Name 	__qdf_nbuf_set_rx_fctx_type(buf, ctx, type);
53*5113495bSYour Name }
54*5113495bSYour Name 
55*5113495bSYour Name 
56*5113495bSYour Name static inline void *
qdf_nbuf_get_ext_cb(qdf_nbuf_t buf)57*5113495bSYour Name qdf_nbuf_get_ext_cb(qdf_nbuf_t buf)
58*5113495bSYour Name {
59*5113495bSYour Name 	return  __qdf_nbuf_get_ext_cb(buf);
60*5113495bSYour Name }
61*5113495bSYour Name 
62*5113495bSYour Name static inline void
qdf_nbuf_set_ext_cb(qdf_nbuf_t buf,void * ref)63*5113495bSYour Name qdf_nbuf_set_ext_cb(qdf_nbuf_t buf, void *ref)
64*5113495bSYour Name {
65*5113495bSYour Name 	__qdf_nbuf_set_ext_cb(buf, ref);
66*5113495bSYour Name }
67*5113495bSYour Name 
68*5113495bSYour Name /**
69*5113495bSYour Name  * qdf_nbuf_set_rx_protocol_tag() - set given value in protocol_tag
70*5113495bSYour Name  * field of buf(skb->cb)
71*5113495bSYour Name  * @buf: Network buffer
72*5113495bSYour Name  * @val: Value to be set in the nbuf
73*5113495bSYour Name  * Return: None
74*5113495bSYour Name  */
qdf_nbuf_set_rx_protocol_tag(qdf_nbuf_t buf,uint16_t val)75*5113495bSYour Name static inline void qdf_nbuf_set_rx_protocol_tag(qdf_nbuf_t buf, uint16_t val)
76*5113495bSYour Name {
77*5113495bSYour Name 	__qdf_nbuf_set_rx_protocol_tag(buf, val);
78*5113495bSYour Name }
79*5113495bSYour Name 
80*5113495bSYour Name /**
81*5113495bSYour Name  * qdf_nbuf_get_rx_protocol_tag() - Get the value of protocol_tag
82*5113495bSYour Name  * field of buf(skb->cb)
83*5113495bSYour Name  * @buf: Network buffer
84*5113495bSYour Name  * Return: Value of Rx protocol tag in the nbuf
85*5113495bSYour Name  */
qdf_nbuf_get_rx_protocol_tag(qdf_nbuf_t buf)86*5113495bSYour Name static inline uint16_t qdf_nbuf_get_rx_protocol_tag(qdf_nbuf_t buf)
87*5113495bSYour Name {
88*5113495bSYour Name 	return __qdf_nbuf_get_rx_protocol_tag(buf);
89*5113495bSYour Name }
90*5113495bSYour Name 
91*5113495bSYour Name /**
92*5113495bSYour Name  * qdf_nbuf_set_rx_flow_tag() - set given value in flow tag field
93*5113495bSYour Name  * of buf(skb->cb)
94*5113495bSYour Name  * @buf: Network buffer
95*5113495bSYour Name  * @val: Value of Rx flow tag to be set in the nbuf
96*5113495bSYour Name  * Return: None
97*5113495bSYour Name  */
qdf_nbuf_set_rx_flow_tag(qdf_nbuf_t buf,uint16_t val)98*5113495bSYour Name static inline void qdf_nbuf_set_rx_flow_tag(qdf_nbuf_t buf, uint16_t val)
99*5113495bSYour Name {
100*5113495bSYour Name 	__qdf_nbuf_set_rx_flow_tag(buf, val);
101*5113495bSYour Name }
102*5113495bSYour Name 
103*5113495bSYour Name /**
104*5113495bSYour Name  * qdf_nbuf_get_rx_flow_tag() - Get the value of flow_tag
105*5113495bSYour Name  * field of buf(skb->cb)
106*5113495bSYour Name  * @buf: Network buffer
107*5113495bSYour Name  * Return: Value of the Rx flow tag in the nbuf
108*5113495bSYour Name  */
qdf_nbuf_get_rx_flow_tag(qdf_nbuf_t buf)109*5113495bSYour Name static inline uint16_t qdf_nbuf_get_rx_flow_tag(qdf_nbuf_t buf)
110*5113495bSYour Name {
111*5113495bSYour Name 	return __qdf_nbuf_get_rx_flow_tag(buf);
112*5113495bSYour Name }
113*5113495bSYour Name 
114*5113495bSYour Name /**
115*5113495bSYour Name  * qdf_nbuf_set_rx_flow_idx_valid() - set given value in flow idx valid
116*5113495bSYour Name  * of buf(skb->cb)
117*5113495bSYour Name  * @buf: Network buffer
118*5113495bSYour Name  * @val: Value of Rx flow tag to be set in the nbuf
119*5113495bSYour Name  * Return: None
120*5113495bSYour Name  */
qdf_nbuf_set_rx_flow_idx_valid(qdf_nbuf_t buf,uint8_t val)121*5113495bSYour Name static inline void qdf_nbuf_set_rx_flow_idx_valid(qdf_nbuf_t buf, uint8_t val)
122*5113495bSYour Name {
123*5113495bSYour Name 	__qdf_nbuf_set_rx_flow_idx_valid(buf, val);
124*5113495bSYour Name }
125*5113495bSYour Name 
126*5113495bSYour Name /**
127*5113495bSYour Name  * qdf_nbuf_get_rx_flow_idx_valid() - Get the value of flow_idx_valid
128*5113495bSYour Name  * field of buf(skb->cb)
129*5113495bSYour Name  * @buf: Network buffer
130*5113495bSYour Name  * Return: Value of the Rx flow tag in the nbuf
131*5113495bSYour Name  */
qdf_nbuf_get_rx_flow_idx_valid(qdf_nbuf_t buf)132*5113495bSYour Name static inline uint8_t qdf_nbuf_get_rx_flow_idx_valid(qdf_nbuf_t buf)
133*5113495bSYour Name {
134*5113495bSYour Name 	return __qdf_nbuf_get_rx_flow_idx_valid(buf);
135*5113495bSYour Name }
136*5113495bSYour Name 
137*5113495bSYour Name /**
138*5113495bSYour Name  * qdf_nbuf_set_rx_flow_idx_timeout() - set given value in flow idx timeout
139*5113495bSYour Name  * of buf(skb->cb)
140*5113495bSYour Name  * @buf: Network buffer
141*5113495bSYour Name  * @val: Value of Rx flow tag to be set in the nbuf
142*5113495bSYour Name  * Return: None
143*5113495bSYour Name  */
qdf_nbuf_set_rx_flow_idx_timeout(qdf_nbuf_t buf,uint8_t val)144*5113495bSYour Name static inline void qdf_nbuf_set_rx_flow_idx_timeout(qdf_nbuf_t buf, uint8_t val)
145*5113495bSYour Name {
146*5113495bSYour Name 	__qdf_nbuf_set_rx_flow_idx_timeout(buf, val);
147*5113495bSYour Name }
148*5113495bSYour Name 
149*5113495bSYour Name /**
150*5113495bSYour Name  * qdf_nbuf_get_rx_flow_idx_timeout() - Get the value of flow_idx_timeout
151*5113495bSYour Name  * field of buf(skb->cb)
152*5113495bSYour Name  * @buf: Network buffer
153*5113495bSYour Name  * Return: Value of the Rx flow idx timeout in the nbuf
154*5113495bSYour Name  */
qdf_nbuf_get_rx_flow_idx_timeout(qdf_nbuf_t buf)155*5113495bSYour Name static inline uint8_t qdf_nbuf_get_rx_flow_idx_timeout(qdf_nbuf_t buf)
156*5113495bSYour Name {
157*5113495bSYour Name 	return __qdf_nbuf_get_rx_flow_idx_timeout(buf);
158*5113495bSYour Name }
159*5113495bSYour Name 
160*5113495bSYour Name /**
161*5113495bSYour Name  * qdf_nbuf_set_exc_frame() - set exception frame flag
162*5113495bSYour Name  * @buf: Network buffer whose cb is to set exception frame flag
163*5113495bSYour Name  * @value: exception frame flag, value 0 or 1.
164*5113495bSYour Name  *
165*5113495bSYour Name  * Return: none
166*5113495bSYour Name  */
qdf_nbuf_set_exc_frame(qdf_nbuf_t buf,uint8_t value)167*5113495bSYour Name static inline void qdf_nbuf_set_exc_frame(qdf_nbuf_t buf, uint8_t value)
168*5113495bSYour Name {
169*5113495bSYour Name }
170*5113495bSYour Name 
171*5113495bSYour Name /**
172*5113495bSYour Name  * qdf_nbuf_set_rx_ipa_smmu_map() - set ipa smmu mapped flag
173*5113495bSYour Name  * @buf: Network buffer
174*5113495bSYour Name  * @value: 1 - ipa smmu mapped, 0 - ipa smmu unmapped
175*5113495bSYour Name  *
176*5113495bSYour Name  * Return: none
177*5113495bSYour Name  */
qdf_nbuf_set_rx_ipa_smmu_map(qdf_nbuf_t buf,uint8_t value)178*5113495bSYour Name static inline void qdf_nbuf_set_rx_ipa_smmu_map(qdf_nbuf_t buf,
179*5113495bSYour Name 						uint8_t value)
180*5113495bSYour Name {
181*5113495bSYour Name 	QDF_NBUF_CB_RX_PACKET_IPA_SMMU_MAP(buf) = value;
182*5113495bSYour Name }
183*5113495bSYour Name 
184*5113495bSYour Name /**
185*5113495bSYour Name  * qdf_nbuf_is_intra_bss() - get intra bss bit
186*5113495bSYour Name  * @buf: Network buffer
187*5113495bSYour Name  *
188*5113495bSYour Name  * Return: integer value - 0/1
189*5113495bSYour Name  */
qdf_nbuf_is_intra_bss(qdf_nbuf_t buf)190*5113495bSYour Name static inline int qdf_nbuf_is_intra_bss(qdf_nbuf_t buf)
191*5113495bSYour Name {
192*5113495bSYour Name 	return __qdf_nbuf_is_intra_bss(buf);
193*5113495bSYour Name }
194*5113495bSYour Name 
195*5113495bSYour Name /**
196*5113495bSYour Name  * qdf_nbuf_set_intra_bss() - set  intra bss bit
197*5113495bSYour Name  * @buf: Network buffer
198*5113495bSYour Name  * @val: 0/1
199*5113495bSYour Name  *
200*5113495bSYour Name  * Return: void
201*5113495bSYour Name  */
qdf_nbuf_set_intra_bss(qdf_nbuf_t buf,uint8_t val)202*5113495bSYour Name static inline void qdf_nbuf_set_intra_bss(qdf_nbuf_t buf, uint8_t val)
203*5113495bSYour Name {
204*5113495bSYour Name 	__qdf_nbuf_set_intra_bss(buf, val);
205*5113495bSYour Name }
206*5113495bSYour Name 
207*5113495bSYour Name /**
208*5113495bSYour Name  * qdf_nbuf_is_rx_ipa_smmu_map() - check ipa smmu map flag
209*5113495bSYour Name  * @buf: Network buffer
210*5113495bSYour Name  *
211*5113495bSYour Name  * Return 0 or 1
212*5113495bSYour Name  */
qdf_nbuf_is_rx_ipa_smmu_map(qdf_nbuf_t buf)213*5113495bSYour Name static inline uint8_t qdf_nbuf_is_rx_ipa_smmu_map(qdf_nbuf_t buf)
214*5113495bSYour Name {
215*5113495bSYour Name 	return QDF_NBUF_CB_RX_PACKET_IPA_SMMU_MAP(buf);
216*5113495bSYour Name }
217*5113495bSYour Name 
qdf_nbuf_ipa_owned_get(qdf_nbuf_t buf)218*5113495bSYour Name static inline int qdf_nbuf_ipa_owned_get(qdf_nbuf_t buf)
219*5113495bSYour Name {
220*5113495bSYour Name 	return 0;
221*5113495bSYour Name }
222*5113495bSYour Name 
qdf_nbuf_ipa_owned_set(qdf_nbuf_t buf)223*5113495bSYour Name static inline void qdf_nbuf_ipa_owned_set(qdf_nbuf_t buf)
224*5113495bSYour Name { }
225*5113495bSYour Name 
qdf_nbuf_ipa_owned_clear(qdf_nbuf_t buf)226*5113495bSYour Name static inline void qdf_nbuf_ipa_owned_clear(qdf_nbuf_t buf)
227*5113495bSYour Name { }
228*5113495bSYour Name 
qdf_nbuf_ipa_priv_get(qdf_nbuf_t buf)229*5113495bSYour Name static inline int qdf_nbuf_ipa_priv_get(qdf_nbuf_t buf)
230*5113495bSYour Name {
231*5113495bSYour Name 	return 0;
232*5113495bSYour Name }
233*5113495bSYour Name 
qdf_nbuf_ipa_priv_set(qdf_nbuf_t buf,uint32_t priv)234*5113495bSYour Name static inline void qdf_nbuf_ipa_priv_set(qdf_nbuf_t buf, uint32_t priv)
235*5113495bSYour Name { }
236*5113495bSYour Name 
237*5113495bSYour Name /**
238*5113495bSYour Name  * qdf_nbuf_set_rx_reo_dest_ind_or_sw_excpt() - set reo destination indication
239*5113495bSYour Name  *						or sw exception flag
240*5113495bSYour Name  * @buf: Network buffer
241*5113495bSYour Name  * @value: value to set
242*5113495bSYour Name  *
243*5113495bSYour Name  * Return: none
244*5113495bSYour Name  */
qdf_nbuf_set_rx_reo_dest_ind_or_sw_excpt(qdf_nbuf_t buf,uint8_t value)245*5113495bSYour Name static inline void qdf_nbuf_set_rx_reo_dest_ind_or_sw_excpt(qdf_nbuf_t buf,
246*5113495bSYour Name 							    uint8_t value)
247*5113495bSYour Name {
248*5113495bSYour Name }
249*5113495bSYour Name 
qdf_nbuf_tx_notify_comp_set(qdf_nbuf_t buf,uint8_t val)250*5113495bSYour Name static inline void qdf_nbuf_tx_notify_comp_set(qdf_nbuf_t buf, uint8_t val)
251*5113495bSYour Name {
252*5113495bSYour Name }
253*5113495bSYour Name 
qdf_nbuf_tx_notify_comp_get(qdf_nbuf_t buf)254*5113495bSYour Name static inline uint8_t qdf_nbuf_tx_notify_comp_get(qdf_nbuf_t buf)
255*5113495bSYour Name {
256*5113495bSYour Name 	return 0;
257*5113495bSYour Name }
258*5113495bSYour Name 
qdf_nbuf_set_lmac_id(qdf_nbuf_t buf,uint8_t value)259*5113495bSYour Name static inline void qdf_nbuf_set_lmac_id(qdf_nbuf_t buf, uint8_t value)
260*5113495bSYour Name {
261*5113495bSYour Name }
262*5113495bSYour Name 
qdf_nbuf_get_lmac_id(qdf_nbuf_t buf)263*5113495bSYour Name static inline uint8_t qdf_nbuf_get_lmac_id(qdf_nbuf_t buf)
264*5113495bSYour Name {
265*5113495bSYour Name 	return 0;
266*5113495bSYour Name }
267*5113495bSYour Name 
qdf_nbuf_get_mpdu_seq_num(qdf_nbuf_t buf)268*5113495bSYour Name static inline uint16_t qdf_nbuf_get_mpdu_seq_num(qdf_nbuf_t buf)
269*5113495bSYour Name {
270*5113495bSYour Name 	return 0;
271*5113495bSYour Name }
272*5113495bSYour Name 
273*5113495bSYour Name /**
274*5113495bSYour Name  * qdf_nbuf_tx_set_band() - Set band in nbuf cb
275*5113495bSYour Name  * @nbuf: nbuf pointer
276*5113495bSYour Name  * @band: peer band
277*5113495bSYour Name  *
278*5113495bSYour Name  * Return: None
279*5113495bSYour Name  */
280*5113495bSYour Name static inline void
qdf_nbuf_tx_set_band(qdf_nbuf_t nbuf,uint8_t band)281*5113495bSYour Name qdf_nbuf_tx_set_band(qdf_nbuf_t nbuf, uint8_t band)
282*5113495bSYour Name {
283*5113495bSYour Name }
284*5113495bSYour Name 
285*5113495bSYour Name /**
286*5113495bSYour Name  * qdf_nbuf_tx_get_band() - Get band from nbuf cb
287*5113495bSYour Name  * @nbuf: nbuf pointer
288*5113495bSYour Name  *
289*5113495bSYour Name  * Return: Band
290*5113495bSYour Name  */
291*5113495bSYour Name static inline uint8_t
qdf_nbuf_tx_get_band(qdf_nbuf_t nbuf)292*5113495bSYour Name qdf_nbuf_tx_get_band(qdf_nbuf_t nbuf)
293*5113495bSYour Name {
294*5113495bSYour Name 	return 0;
295*5113495bSYour Name }
296*5113495bSYour Name 
297*5113495bSYour Name /**
298*5113495bSYour Name  * qdf_nbuf_rx_set_band() - Set band in nbuf cb
299*5113495bSYour Name  * @nbuf: nbuf pointer
300*5113495bSYour Name  * @band: peer band
301*5113495bSYour Name  *
302*5113495bSYour Name  * Return: None
303*5113495bSYour Name  */
304*5113495bSYour Name static inline void
qdf_nbuf_rx_set_band(qdf_nbuf_t nbuf,uint8_t band)305*5113495bSYour Name qdf_nbuf_rx_set_band(qdf_nbuf_t nbuf, uint8_t band)
306*5113495bSYour Name {
307*5113495bSYour Name }
308*5113495bSYour Name 
309*5113495bSYour Name /**
310*5113495bSYour Name  * qdf_nbuf_rx_get_band() - Get band from nbuf cb
311*5113495bSYour Name  * @nbuf: nbuf pointer
312*5113495bSYour Name  *
313*5113495bSYour Name  * Return: Band
314*5113495bSYour Name  */
315*5113495bSYour Name static inline uint8_t
qdf_nbuf_rx_get_band(qdf_nbuf_t nbuf)316*5113495bSYour Name qdf_nbuf_rx_get_band(qdf_nbuf_t nbuf)
317*5113495bSYour Name {
318*5113495bSYour Name 	return 0;
319*5113495bSYour Name }
320*5113495bSYour Name #endif /* _QDF_NBUF_W_H */
321