ffc905f3b8
Create a rte_ethdev_driver.h file and move PMD specific APIs here. Drivers updated to include this new header file. There is no update in header content and since ethdev.h included by ethdev_driver.h, nothing changed from driver point of view, only logically grouping of APIs. From applications point of view they can't access to driver specific APIs anymore and they shouldn't. More PMD specific data structures still remain in ethdev.h because of inline functions in header use them. Those will be handled separately. Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
110 lines
4.3 KiB
C
110 lines
4.3 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2017 Cavium, Inc
|
|
*/
|
|
|
|
#ifndef __OCTEONTX_RXTX_H__
|
|
#define __OCTEONTX_RXTX_H__
|
|
|
|
#include <rte_ethdev_driver.h>
|
|
|
|
#ifndef __hot
|
|
#define __hot __attribute__((hot))
|
|
#endif
|
|
|
|
/* Packet type table */
|
|
#define PTYPE_SIZE OCCTX_PKI_LTYPE_LAST
|
|
|
|
static const uint32_t __rte_cache_aligned
|
|
ptype_table[PTYPE_SIZE][PTYPE_SIZE][PTYPE_SIZE] = {
|
|
[LC_NONE][LE_NONE][LF_NONE] = RTE_PTYPE_UNKNOWN,
|
|
[LC_NONE][LE_NONE][LF_IPSEC_ESP] = RTE_PTYPE_UNKNOWN,
|
|
[LC_NONE][LE_NONE][LF_IPFRAG] = RTE_PTYPE_L4_FRAG,
|
|
[LC_NONE][LE_NONE][LF_IPCOMP] = RTE_PTYPE_UNKNOWN,
|
|
[LC_NONE][LE_NONE][LF_TCP] = RTE_PTYPE_L4_TCP,
|
|
[LC_NONE][LE_NONE][LF_UDP] = RTE_PTYPE_L4_UDP,
|
|
[LC_NONE][LE_NONE][LF_GRE] = RTE_PTYPE_TUNNEL_GRE,
|
|
[LC_NONE][LE_NONE][LF_UDP_GENEVE] = RTE_PTYPE_TUNNEL_GENEVE,
|
|
[LC_NONE][LE_NONE][LF_UDP_VXLAN] = RTE_PTYPE_TUNNEL_VXLAN,
|
|
[LC_NONE][LE_NONE][LF_NVGRE] = RTE_PTYPE_TUNNEL_NVGRE,
|
|
|
|
[LC_IPV4][LE_NONE][LF_NONE] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_UNKNOWN,
|
|
[LC_IPV4][LE_NONE][LF_IPSEC_ESP] =
|
|
RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L3_IPV4,
|
|
[LC_IPV4][LE_NONE][LF_IPFRAG] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_FRAG,
|
|
[LC_IPV4][LE_NONE][LF_IPCOMP] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_UNKNOWN,
|
|
[LC_IPV4][LE_NONE][LF_TCP] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_TCP,
|
|
[LC_IPV4][LE_NONE][LF_UDP] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_UDP,
|
|
[LC_IPV4][LE_NONE][LF_GRE] = RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_GRE,
|
|
[LC_IPV4][LE_NONE][LF_UDP_GENEVE] =
|
|
RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_GENEVE,
|
|
[LC_IPV4][LE_NONE][LF_UDP_VXLAN] =
|
|
RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_VXLAN,
|
|
[LC_IPV4][LE_NONE][LF_NVGRE] =
|
|
RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_NVGRE,
|
|
|
|
[LC_IPV4_OPT][LE_NONE][LF_NONE] =
|
|
RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_UNKNOWN,
|
|
[LC_IPV4_OPT][LE_NONE][LF_IPSEC_ESP] =
|
|
RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_L3_IPV4,
|
|
[LC_IPV4_OPT][LE_NONE][LF_IPFRAG] =
|
|
RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_L4_FRAG,
|
|
[LC_IPV4_OPT][LE_NONE][LF_IPCOMP] =
|
|
RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_UNKNOWN,
|
|
[LC_IPV4_OPT][LE_NONE][LF_TCP] =
|
|
RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_L4_TCP,
|
|
[LC_IPV4_OPT][LE_NONE][LF_UDP] =
|
|
RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_L4_UDP,
|
|
[LC_IPV4_OPT][LE_NONE][LF_GRE] =
|
|
RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_TUNNEL_GRE,
|
|
[LC_IPV4_OPT][LE_NONE][LF_UDP_GENEVE] =
|
|
RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_TUNNEL_GENEVE,
|
|
[LC_IPV4_OPT][LE_NONE][LF_UDP_VXLAN] =
|
|
RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_TUNNEL_VXLAN,
|
|
[LC_IPV4_OPT][LE_NONE][LF_NVGRE] =
|
|
RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_TUNNEL_NVGRE,
|
|
|
|
[LC_IPV6][LE_NONE][LF_NONE] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_UNKNOWN,
|
|
[LC_IPV6][LE_NONE][LF_IPSEC_ESP] =
|
|
RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L3_IPV4,
|
|
[LC_IPV6][LE_NONE][LF_IPFRAG] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_FRAG,
|
|
[LC_IPV6][LE_NONE][LF_IPCOMP] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_UNKNOWN,
|
|
[LC_IPV6][LE_NONE][LF_TCP] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_TCP,
|
|
[LC_IPV6][LE_NONE][LF_UDP] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_UDP,
|
|
[LC_IPV6][LE_NONE][LF_GRE] = RTE_PTYPE_L3_IPV6 | RTE_PTYPE_TUNNEL_GRE,
|
|
[LC_IPV6][LE_NONE][LF_UDP_GENEVE] =
|
|
RTE_PTYPE_L3_IPV6 | RTE_PTYPE_TUNNEL_GENEVE,
|
|
[LC_IPV6][LE_NONE][LF_UDP_VXLAN] =
|
|
RTE_PTYPE_L3_IPV6 | RTE_PTYPE_TUNNEL_VXLAN,
|
|
[LC_IPV6][LE_NONE][LF_NVGRE] =
|
|
RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_NVGRE,
|
|
[LC_IPV6_OPT][LE_NONE][LF_NONE] =
|
|
RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_UNKNOWN,
|
|
[LC_IPV6_OPT][LE_NONE][LF_IPSEC_ESP] =
|
|
RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_L3_IPV4,
|
|
[LC_IPV6_OPT][LE_NONE][LF_IPFRAG] =
|
|
RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_L4_FRAG,
|
|
[LC_IPV6_OPT][LE_NONE][LF_IPCOMP] =
|
|
RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_UNKNOWN,
|
|
[LC_IPV6_OPT][LE_NONE][LF_TCP] =
|
|
RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_L4_TCP,
|
|
[LC_IPV6_OPT][LE_NONE][LF_UDP] =
|
|
RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_L4_UDP,
|
|
[LC_IPV6_OPT][LE_NONE][LF_GRE] =
|
|
RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_TUNNEL_GRE,
|
|
[LC_IPV6_OPT][LE_NONE][LF_UDP_GENEVE] =
|
|
RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_TUNNEL_GENEVE,
|
|
[LC_IPV6_OPT][LE_NONE][LF_UDP_VXLAN] =
|
|
RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_TUNNEL_VXLAN,
|
|
[LC_IPV6_OPT][LE_NONE][LF_NVGRE] =
|
|
RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_TUNNEL_NVGRE,
|
|
|
|
};
|
|
|
|
uint16_t
|
|
octeontx_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts);
|
|
|
|
uint16_t
|
|
octeontx_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
|
|
|
|
#endif /* __OCTEONTX_RXTX_H__ */
|