2018-01-08 10:55:16 +05:30
|
|
|
/* SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
* Copyright(c) 2017 Cavium, Inc
|
2017-10-08 18:14:26 +05:30
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __OCTEONTX_RXTX_H__
|
|
|
|
#define __OCTEONTX_RXTX_H__
|
|
|
|
|
2018-01-22 00:16:22 +00:00
|
|
|
#include <rte_ethdev_driver.h>
|
2017-10-08 18:14:26 +05:30
|
|
|
|
|
|
|
#ifndef __hot
|
|
|
|
#define __hot __attribute__((hot))
|
|
|
|
#endif
|
|
|
|
|
2017-10-24 18:30:35 +05:30
|
|
|
/* 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,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
2017-10-08 18:14:26 +05:30
|
|
|
uint16_t
|
|
|
|
octeontx_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts);
|
|
|
|
|
2017-10-08 18:14:27 +05:30
|
|
|
uint16_t
|
|
|
|
octeontx_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
|
2017-10-08 18:14:26 +05:30
|
|
|
|
|
|
|
#endif /* __OCTEONTX_RXTX_H__ */
|