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