xref: /dpdk/drivers/net/dpaa/dpaa_rxtx.h (revision e77506397fc8005c5129e22e9e2d15d5876790fd)
1d81734caSHemant Agrawal /* SPDX-License-Identifier: BSD-3-Clause
237f9b54bSShreyansh Jain  *
337f9b54bSShreyansh Jain  *   Copyright 2016 Freescale Semiconductor, Inc. All rights reserved.
4a350a954SHemant Agrawal  *   Copyright 2017,2020-2024 NXP
537f9b54bSShreyansh Jain  *
637f9b54bSShreyansh Jain  */
737f9b54bSShreyansh Jain 
837f9b54bSShreyansh Jain #ifndef __DPDK_RXTX_H__
937f9b54bSShreyansh Jain #define __DPDK_RXTX_H__
1037f9b54bSShreyansh Jain 
1137f9b54bSShreyansh Jain /* internal offset from where IC is copied to packet buffer*/
1237f9b54bSShreyansh Jain #define DEFAULT_ICIOF          32
1337f9b54bSShreyansh Jain /* IC transfer size */
1437f9b54bSShreyansh Jain #define DEFAULT_ICSZ	48
1537f9b54bSShreyansh Jain 
1637f9b54bSShreyansh Jain /* IC offsets from buffer header address */
1737f9b54bSShreyansh Jain #define DEFAULT_RX_ICEOF	16
185a8cf1beSShreyansh Jain #define DEFAULT_TX_ICEOF	16
195a8cf1beSShreyansh Jain 
205a8cf1beSShreyansh Jain /*
215a8cf1beSShreyansh Jain  * Values for the L3R field of the FM Parse Results
225a8cf1beSShreyansh Jain  */
235a8cf1beSShreyansh Jain /* L3 Type field: First IP Present IPv4 */
245a8cf1beSShreyansh Jain #define DPAA_L3_PARSE_RESULT_IPV4 0x80
255a8cf1beSShreyansh Jain /* L3 Type field: First IP Present IPv6 */
265a8cf1beSShreyansh Jain #define DPAA_L3_PARSE_RESULT_IPV6	0x40
275a8cf1beSShreyansh Jain /* Values for the L4R field of the FM Parse Results
285a8cf1beSShreyansh Jain  * See $8.8.4.7.20 - L4 HXS - L4 Results from DPAA-Rev2 Reference Manual.
295a8cf1beSShreyansh Jain  */
305a8cf1beSShreyansh Jain /* L4 Type field: UDP */
315a8cf1beSShreyansh Jain #define DPAA_L4_PARSE_RESULT_UDP	0x40
325a8cf1beSShreyansh Jain /* L4 Type field: TCP */
335a8cf1beSShreyansh Jain #define DPAA_L4_PARSE_RESULT_TCP	0x20
3437f9b54bSShreyansh Jain 
3537f9b54bSShreyansh Jain #define DPAA_MAX_DEQUEUE_NUM_FRAMES    63
3637f9b54bSShreyansh Jain 	/** <Maximum number of frames to be dequeued in a single rx call*/
37a7bdc3bdSShreyansh Jain 
3837f9b54bSShreyansh Jain /* FD structure masks and offset */
3937f9b54bSShreyansh Jain #define DPAA_FD_FORMAT_MASK 0xE0000000
4037f9b54bSShreyansh Jain #define DPAA_FD_OFFSET_MASK 0x1FF00000
4137f9b54bSShreyansh Jain #define DPAA_FD_LENGTH_MASK 0xFFFFF
4237f9b54bSShreyansh Jain #define DPAA_FD_FORMAT_SHIFT 29
4337f9b54bSShreyansh Jain #define DPAA_FD_OFFSET_SHIFT 20
4437f9b54bSShreyansh Jain 
45a7bdc3bdSShreyansh Jain /* Parsing mask (Little Endian) - 0x00E044ED00800000
46a7bdc3bdSShreyansh Jain  *	Classification Plan ID 0x00
47a7bdc3bdSShreyansh Jain  *	L4R 0xE0 -
48a7bdc3bdSShreyansh Jain  *		0x20 - TCP
49a7bdc3bdSShreyansh Jain  *		0x40 - UDP
50e7524271SGagandeep Singh  *		0x60 - IPsec
51a7bdc3bdSShreyansh Jain  *		0x80 - SCTP
52a7bdc3bdSShreyansh Jain  *	L3R 0xEDC4 (in Big Endian) -
53a7bdc3bdSShreyansh Jain  *		0x8000 - IPv4
54a7bdc3bdSShreyansh Jain  *		0x4000 - IPv6
55a7bdc3bdSShreyansh Jain  *		0x8140 - IPv4 Ext + Frag
56a7bdc3bdSShreyansh Jain  *		0x8040 - IPv4 Frag
57a7bdc3bdSShreyansh Jain  *		0x8100 - IPv4 Ext
58a7bdc3bdSShreyansh Jain  *		0x4140 - IPv6 Ext + Frag
59a7bdc3bdSShreyansh Jain  *		0x4040 - IPv6 Frag
60a7bdc3bdSShreyansh Jain  *		0x4100 - IPv6 Ext
61a7bdc3bdSShreyansh Jain  *	L2R 0x8000 (in Big Endian) -
62a7bdc3bdSShreyansh Jain  *		0x8000 - Ethernet type
63a7bdc3bdSShreyansh Jain  *	ShimR & Logical Port ID 0x0000
64a7bdc3bdSShreyansh Jain  */
6595d226f0SNipun Gupta #define DPAA_PARSE_MASK			0x00F044EF00800000
66a7bdc3bdSShreyansh Jain #define DPAA_PARSE_VLAN_MASK		0x0000000000700000
67e7524271SGagandeep Singh #define DPAA_PARSE_ESP_MASK		0x0008000000000000
68a7bdc3bdSShreyansh Jain 
69a7bdc3bdSShreyansh Jain /* Parsed values (Little Endian) */
70a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_NONE		0x0000000000000000
71a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_ETHER		0x0000000000800000
72a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4 \
73a7bdc3bdSShreyansh Jain 			(0x0000008000000000 | DPAA_PKT_TYPE_ETHER)
74a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6 \
75a7bdc3bdSShreyansh Jain 			(0x0000004000000000 | DPAA_PKT_TYPE_ETHER)
76a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_GRE \
77a7bdc3bdSShreyansh Jain 			(0x0000002000000000 | DPAA_PKT_TYPE_ETHER)
78a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4_FRAG	\
79a7bdc3bdSShreyansh Jain 			(0x0000400000000000 | DPAA_PKT_TYPE_IPV4)
80a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6_FRAG	\
81a7bdc3bdSShreyansh Jain 			(0x0000400000000000 | DPAA_PKT_TYPE_IPV6)
82a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4_EXT \
83a7bdc3bdSShreyansh Jain 			(0x0000000100000000 | DPAA_PKT_TYPE_IPV4)
84a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6_EXT \
85a7bdc3bdSShreyansh Jain 			(0x0000000100000000 | DPAA_PKT_TYPE_IPV6)
86a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4_TCP \
87a7bdc3bdSShreyansh Jain 			(0x0020000000000000 | DPAA_PKT_TYPE_IPV4)
88a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6_TCP \
89a7bdc3bdSShreyansh Jain 			(0x0020000000000000 | DPAA_PKT_TYPE_IPV6)
90a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4_UDP \
91a7bdc3bdSShreyansh Jain 			(0x0040000000000000 | DPAA_PKT_TYPE_IPV4)
92a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6_UDP \
93a7bdc3bdSShreyansh Jain 			(0x0040000000000000 | DPAA_PKT_TYPE_IPV6)
94a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4_SCTP	\
95a7bdc3bdSShreyansh Jain 			(0x0080000000000000 | DPAA_PKT_TYPE_IPV4)
96a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6_SCTP	\
97a7bdc3bdSShreyansh Jain 			(0x0080000000000000 | DPAA_PKT_TYPE_IPV6)
98a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4_FRAG_TCP \
99a7bdc3bdSShreyansh Jain 			(0x0020000000000000 | DPAA_PKT_TYPE_IPV4_FRAG)
100a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6_FRAG_TCP \
101a7bdc3bdSShreyansh Jain 			(0x0020000000000000 | DPAA_PKT_TYPE_IPV6_FRAG)
102a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4_FRAG_UDP \
103a7bdc3bdSShreyansh Jain 			(0x0040000000000000 | DPAA_PKT_TYPE_IPV4_FRAG)
104a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6_FRAG_UDP \
105a7bdc3bdSShreyansh Jain 			(0x0040000000000000 | DPAA_PKT_TYPE_IPV6_FRAG)
106a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4_FRAG_SCTP \
107a7bdc3bdSShreyansh Jain 			(0x0080000000000000 | DPAA_PKT_TYPE_IPV4_FRAG)
108a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6_FRAG_SCTP \
109a7bdc3bdSShreyansh Jain 			(0x0080000000000000 | DPAA_PKT_TYPE_IPV6_FRAG)
110a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4_EXT_UDP \
111a7bdc3bdSShreyansh Jain 			(0x0040000000000000 | DPAA_PKT_TYPE_IPV4_EXT)
112a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6_EXT_UDP \
113a7bdc3bdSShreyansh Jain 			(0x0040000000000000 | DPAA_PKT_TYPE_IPV6_EXT)
114a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV4_EXT_TCP \
115a7bdc3bdSShreyansh Jain 			(0x0020000000000000 | DPAA_PKT_TYPE_IPV4_EXT)
116a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_IPV6_EXT_TCP \
117a7bdc3bdSShreyansh Jain 			(0x0020000000000000 | DPAA_PKT_TYPE_IPV6_EXT)
118a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_4_4 \
119a7bdc3bdSShreyansh Jain 			(0x0000000800000000 | DPAA_PKT_TYPE_IPV4)
120a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_6_6 \
121a7bdc3bdSShreyansh Jain 			(0x0000000400000000 | DPAA_PKT_TYPE_IPV6)
122a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_4_6 \
123a7bdc3bdSShreyansh Jain 			(0x0000000400000000 | DPAA_PKT_TYPE_IPV4)
124a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_6_4 \
125a7bdc3bdSShreyansh Jain 			(0x0000000800000000 | DPAA_PKT_TYPE_IPV6)
126a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_4_4_UDP \
127a7bdc3bdSShreyansh Jain 			(0x0040000000000000 | DPAA_PKT_TYPE_TUNNEL_4_4)
128a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_6_6_UDP \
129a7bdc3bdSShreyansh Jain 			(0x0040000000000000 | DPAA_PKT_TYPE_TUNNEL_6_6)
130a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_4_6_UDP \
131a7bdc3bdSShreyansh Jain 			(0x0040000000000000 | DPAA_PKT_TYPE_TUNNEL_4_6)
132a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_6_4_UDP \
133a7bdc3bdSShreyansh Jain 			(0x0040000000000000 | DPAA_PKT_TYPE_TUNNEL_6_4)
134a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_4_4_TCP \
135a7bdc3bdSShreyansh Jain 			(0x0020000000000000 | DPAA_PKT_TYPE_TUNNEL_4_4)
136a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_6_6_TCP \
137a7bdc3bdSShreyansh Jain 			(0x0020000000000000 | DPAA_PKT_TYPE_TUNNEL_6_6)
138a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_4_6_TCP \
139a7bdc3bdSShreyansh Jain 			(0x0020000000000000 | DPAA_PKT_TYPE_TUNNEL_4_6)
140a7bdc3bdSShreyansh Jain #define DPAA_PKT_TYPE_TUNNEL_6_4_TCP \
141a7bdc3bdSShreyansh Jain 			(0x0020000000000000 | DPAA_PKT_TYPE_TUNNEL_6_4)
142e7524271SGagandeep Singh #define DPAA_PKT_TYPE_IPSEC_IPV4 \
143e7524271SGagandeep Singh 			(0x0060000000000000 | DPAA_PKT_TYPE_IPV4)
144e7524271SGagandeep Singh #define DPAA_PKT_TYPE_IPSEC_IPV6 \
145e7524271SGagandeep Singh 			(0x0060000000000000 | DPAA_PKT_TYPE_IPV6)
14695d226f0SNipun Gupta 
14795d226f0SNipun Gupta /* Checksum Errors */
14895d226f0SNipun Gupta #define DPAA_PKT_IP_CSUM_ERR		0x0000400200000000
14995d226f0SNipun Gupta #define DPAA_PKT_L4_CSUM_ERR		0x0010000000000000
15095d226f0SNipun Gupta #define DPAA_PKT_TYPE_IPV4_CSUM_ERR \
15195d226f0SNipun Gupta 			(DPAA_PKT_IP_CSUM_ERR | DPAA_PKT_TYPE_IPV4)
15295d226f0SNipun Gupta #define DPAA_PKT_TYPE_IPV6_CSUM_ERR \
15395d226f0SNipun Gupta 			(DPAA_PKT_IP_CSUM_ERR | DPAA_PKT_TYPE_IPV6)
15495d226f0SNipun Gupta #define DPAA_PKT_TYPE_IPV4_TCP_CSUM_ERR \
15595d226f0SNipun Gupta 			(DPAA_PKT_L4_CSUM_ERR | DPAA_PKT_TYPE_IPV4_TCP)
15695d226f0SNipun Gupta #define DPAA_PKT_TYPE_IPV6_TCP_CSUM_ERR \
15795d226f0SNipun Gupta 			(DPAA_PKT_L4_CSUM_ERR | DPAA_PKT_TYPE_IPV6_TCP)
15895d226f0SNipun Gupta #define DPAA_PKT_TYPE_IPV4_UDP_CSUM_ERR \
15995d226f0SNipun Gupta 			(DPAA_PKT_L4_CSUM_ERR | DPAA_PKT_TYPE_IPV4_UDP)
16095d226f0SNipun Gupta #define DPAA_PKT_TYPE_IPV6_UDP_CSUM_ERR \
16195d226f0SNipun Gupta 			(DPAA_PKT_L4_CSUM_ERR | DPAA_PKT_TYPE_IPV6_UDP)
16295d226f0SNipun Gupta 
163a7bdc3bdSShreyansh Jain #define DPAA_PKT_L3_LEN_SHIFT	7
164a7bdc3bdSShreyansh Jain 
165a350a954SHemant Agrawal enum dpaa_parse_result_l4_type {
166a350a954SHemant Agrawal 	DPAA_PR_L4_TCP_TYPE = 1,
167a350a954SHemant Agrawal 	DPAA_PR_L4_UDP_TYPE = 2,
168a350a954SHemant Agrawal 	DPAA_PR_L4_IPSEC_TYPE = 3,
169a350a954SHemant Agrawal 	DPAA_PR_L4_SCTP_TYPE = 4,
170a350a954SHemant Agrawal 	DPAA_PR_L4_DCCP_TYPE = 5
171a350a954SHemant Agrawal };
172a350a954SHemant Agrawal 
173a7bdc3bdSShreyansh Jain /**
174a7bdc3bdSShreyansh Jain  * FMan parse result array
175a7bdc3bdSShreyansh Jain  */
176*e7750639SAndre Muezerie struct __rte_packed_begin dpaa_eth_parse_results_t {
177a7bdc3bdSShreyansh Jain 	uint8_t lpid; /**< Logical port id */
178a7bdc3bdSShreyansh Jain 	uint8_t shimr; /**< Shim header result  */
179*e7750639SAndre Muezerie 	union __rte_packed_begin {
180a7bdc3bdSShreyansh Jain 		uint16_t l2r; /**< Layer 2 result */
181*e7750639SAndre Muezerie 		struct __rte_packed_begin {
182a7bdc3bdSShreyansh Jain 			uint16_t unused_1:3;
183a350a954SHemant Agrawal 			uint16_t ppoe_ppp:1;
184a350a954SHemant Agrawal 			uint16_t mpls:1;
185a350a954SHemant Agrawal 			uint16_t llc_snap:1;
186a350a954SHemant Agrawal 			uint16_t vlan:1;
187a350a954SHemant Agrawal 			uint16_t ethernet:1;
188a350a954SHemant Agrawal 
189a7bdc3bdSShreyansh Jain 			uint16_t l2r_err:5;
190a350a954SHemant Agrawal 			uint16_t eth_frame_type:2;
191a7bdc3bdSShreyansh Jain 			/*00-unicast, 01-multicast, 11-broadcast*/
192a7bdc3bdSShreyansh Jain 			uint16_t unknown_eth_proto:1;
193*e7750639SAndre Muezerie 		} __rte_packed_end;
194*e7750639SAndre Muezerie 	} __rte_packed_end;
195*e7750639SAndre Muezerie 	union __rte_packed_begin {
196a7bdc3bdSShreyansh Jain 		uint16_t l3r;	/**< Layer 3 result */
197*e7750639SAndre Muezerie 		struct __rte_packed_begin {
198a350a954SHemant Agrawal 			uint16_t unused_2:1;
199a350a954SHemant Agrawal 			uint16_t l3_err:1;
200a7bdc3bdSShreyansh Jain 			uint16_t last_ipv6:1;
201a7bdc3bdSShreyansh Jain 			uint16_t last_ipv4:1;
202a7bdc3bdSShreyansh Jain 			uint16_t min_enc:1;
203a7bdc3bdSShreyansh Jain 			uint16_t gre:1;
204a7bdc3bdSShreyansh Jain 			uint16_t first_ipv6:1;
205a7bdc3bdSShreyansh Jain 			uint16_t first_ipv4:1;
206a350a954SHemant Agrawal 
207a350a954SHemant Agrawal 			uint16_t unused_3:8;
208*e7750639SAndre Muezerie 		} __rte_packed_end;
209*e7750639SAndre Muezerie 	} __rte_packed_end;
210*e7750639SAndre Muezerie 	union __rte_packed_begin {
211a7bdc3bdSShreyansh Jain 		uint8_t l4r;	/**< Layer 4 result */
212*e7750639SAndre Muezerie 		struct __rte_packed_begin {
213a350a954SHemant Agrawal 			uint8_t l4cv:1;
214a350a954SHemant Agrawal 			uint8_t unused_4:1;
215a350a954SHemant Agrawal 			uint8_t ah:1;
216a350a954SHemant Agrawal 			uint8_t esp_sum:1;
217a7bdc3bdSShreyansh Jain 			uint8_t l4_info_err:1;
218a7bdc3bdSShreyansh Jain 			uint8_t l4_type:3;
219*e7750639SAndre Muezerie 		} __rte_packed_end;
220*e7750639SAndre Muezerie 	} __rte_packed_end;
221a7bdc3bdSShreyansh Jain 	uint8_t cplan; /**< Classification plan id */
222a7bdc3bdSShreyansh Jain 	uint16_t nxthdr; /**< Next Header  */
223a7bdc3bdSShreyansh Jain 	uint16_t cksum; /**< Checksum */
224a7bdc3bdSShreyansh Jain 	uint32_t lcv; /**< LCV */
225a7bdc3bdSShreyansh Jain 	uint8_t shim_off[3]; /**< Shim offset */
226a7bdc3bdSShreyansh Jain 	uint8_t eth_off; /**< ETH offset */
227a7bdc3bdSShreyansh Jain 	uint8_t llc_snap_off; /**< LLC_SNAP offset */
228a7bdc3bdSShreyansh Jain 	uint8_t vlan_off[2]; /**< VLAN offset */
229a7bdc3bdSShreyansh Jain 	uint8_t etype_off; /**< ETYPE offset */
230a7bdc3bdSShreyansh Jain 	uint8_t pppoe_off; /**< PPP offset */
231a7bdc3bdSShreyansh Jain 	uint8_t mpls_off[2]; /**< MPLS offset */
232a7bdc3bdSShreyansh Jain 	uint8_t ip_off[2]; /**< IP offset */
233a7bdc3bdSShreyansh Jain 	uint8_t gre_off; /**< GRE offset */
234a7bdc3bdSShreyansh Jain 	uint8_t l4_off; /**< Layer 4 offset */
235a7bdc3bdSShreyansh Jain 	uint8_t nxthdr_off; /**< Parser end point */
236*e7750639SAndre Muezerie } __rte_packed_end;
237a7bdc3bdSShreyansh Jain 
238a7bdc3bdSShreyansh Jain /* The structure is the Prepended Data to the Frame which is used by FMAN */
239a7bdc3bdSShreyansh Jain struct annotations_t {
240a7bdc3bdSShreyansh Jain 	uint8_t reserved[DEFAULT_RX_ICEOF];
241a7bdc3bdSShreyansh Jain 	struct dpaa_eth_parse_results_t parse;	/**< Pointer to Parsed result*/
242615352f5SVanshika Shukla 	uint64_t timestamp;
243a7bdc3bdSShreyansh Jain 	uint64_t hash;			/**< Hash Result */
244a7bdc3bdSShreyansh Jain };
245a7bdc3bdSShreyansh Jain 
246a7bdc3bdSShreyansh Jain #define GET_ANNOTATIONS(_buf) \
247a7bdc3bdSShreyansh Jain 	(struct annotations_t *)(_buf)
248a7bdc3bdSShreyansh Jain 
249a7bdc3bdSShreyansh Jain #define GET_RX_PRS(_buf) \
2505a8cf1beSShreyansh Jain 	(struct dpaa_eth_parse_results_t *)((uint8_t *)(_buf) + \
2515a8cf1beSShreyansh Jain 	DEFAULT_RX_ICEOF)
2525a8cf1beSShreyansh Jain 
2535a8cf1beSShreyansh Jain #define GET_TX_PRS(_buf) \
2545a8cf1beSShreyansh Jain 	(struct dpaa_eth_parse_results_t *)((uint8_t *)(_buf) + \
2555a8cf1beSShreyansh Jain 	DEFAULT_TX_ICEOF)
256a7bdc3bdSShreyansh Jain 
25737f9b54bSShreyansh Jain uint16_t dpaa_eth_queue_rx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs);
25837f9b54bSShreyansh Jain 
2599124e65dSGagandeep Singh uint16_t dpaa_eth_queue_tx_slow(void *q, struct rte_mbuf **bufs,
2609124e65dSGagandeep Singh 				uint16_t nb_bufs);
26137f9b54bSShreyansh Jain uint16_t dpaa_eth_queue_tx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs);
26237f9b54bSShreyansh Jain 
26358e0420fSVanshika Shukla void dpaa_eth_tx_conf(void *q);
26458e0420fSVanshika Shukla 
26537f9b54bSShreyansh Jain uint16_t dpaa_eth_tx_drop_all(void *q  __rte_unused,
26637f9b54bSShreyansh Jain 			      struct rte_mbuf **bufs __rte_unused,
26737f9b54bSShreyansh Jain 			      uint16_t nb_bufs __rte_unused);
2688cffdcbeSShreyansh Jain 
2699124e65dSGagandeep Singh uint16_t dpaa_free_mbuf(const struct qm_fd *fd);
270b9083ea5SNipun Gupta void dpaa_rx_cb(struct qman_fq **fq,
271b9083ea5SNipun Gupta 		struct qm_dqrr_entry **dqrr, void **bufs, int num_bufs);
272b9083ea5SNipun Gupta 
273b9083ea5SNipun Gupta void dpaa_rx_cb_prepare(struct qm_dqrr_entry *dq, void **bufs);
27419b4aba2SHemant Agrawal 
27519b4aba2SHemant Agrawal void dpaa_rx_cb_no_prefetch(struct qman_fq **fq,
27619b4aba2SHemant Agrawal 		    struct qm_dqrr_entry **dqrr, void **bufs, int num_bufs);
277480ec5b4SHemant Agrawal #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
278480ec5b4SHemant Agrawal void
279480ec5b4SHemant Agrawal dpaa_force_display_frame_set(int set);
280480ec5b4SHemant Agrawal #endif
281480ec5b4SHemant Agrawal 
28237f9b54bSShreyansh Jain #endif
283