From: Hemant Agrawal <[email protected]> Extend the Rx parser to identify additional packet types decoded from the hardware parser summary: IPv4/IPv6 fragments, IPsec ESP, and GTP-U / GTP-C tunnels. The corresponding DPAA2_PKT_TYPE_* values are added and mapped to the matching RTE_PTYPE_* flags in the slow-path parser.
Signed-off-by: Hemant Agrawal <[email protected]> --- drivers/net/dpaa2/dpaa2_ethdev.h | 16 ++++++++++++++++ drivers/net/dpaa2/dpaa2_rxtx.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h index 2f552f3e29..6c72b9012c 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.h +++ b/drivers/net/dpaa2/dpaa2_ethdev.h @@ -162,6 +162,10 @@ #define DPAA2_PKT_TYPE_IPV6_EXT_GRE_IPV6_UDP_TCP \ (DPAA2_PKT_TYPE_IPV6_EXT | DPAA2_PSR_SUMMARY_GRE_IPV6_UDP_TCP) +#define DPAA2_PKT_TYPE_IPV4_FRAG \ + (DPAA2_PSR_SUMMARY_IP_FRAG | DPAA2_PKT_TYPE_IPV4) +#define DPAA2_PKT_TYPE_IPV6_FRAG \ + (DPAA2_PSR_SUMMARY_IP_FRAG | DPAA2_PKT_TYPE_IPV6) #define DPAA2_PKT_TYPE_IPV4_TCP \ (DPAA2_PSR_SUMMARY_TCP | DPAA2_PKT_TYPE_IPV4) #define DPAA2_PKT_TYPE_IPV6_TCP \ @@ -178,6 +182,18 @@ (DPAA2_PSR_SUMMARY_ICMP | DPAA2_PKT_TYPE_IPV4) #define DPAA2_PKT_TYPE_IPV6_ICMP \ (DPAA2_PSR_SUMMARY_ICMP | DPAA2_PKT_TYPE_IPV6) +#define DPAA2_PKT_TYPE_IPV4_ESP \ + (DPAA2_PSR_SUMMARY_IPSEC_ESP | DPAA2_PKT_TYPE_IPV4) +#define DPAA2_PKT_TYPE_IPV6_ESP \ + (DPAA2_PSR_SUMMARY_IPSEC_ESP | DPAA2_PKT_TYPE_IPV6) +#define DPAA2_PKT_TYPE_IPV4_GTPU \ + (DPAA2_PSR_SUMMARY_GTPU | DPAA2_PKT_TYPE_IPV4) +#define DPAA2_PKT_TYPE_IPV6_GTPU \ + (DPAA2_PSR_SUMMARY_GTPU | DPAA2_PKT_TYPE_IPV6) +#define DPAA2_PKT_TYPE_IPV4_GTPC \ + (DPAA2_PSR_SUMMARY_GTPC | DPAA2_PKT_TYPE_IPV4) +#define DPAA2_PKT_TYPE_IPV6_GTPC \ + (DPAA2_PSR_SUMMARY_GTPC | DPAA2_PKT_TYPE_IPV6) #define DPAA2_PKT_TYPE_VLAN_1 0x0100 #define DPAA2_PKT_TYPE_VLAN_2 0x0200 diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c index 47c8cacdc4..26c84e7125 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -153,6 +153,38 @@ dpaa2_dev_rx_parse_new(struct dpaa2_dev_priv *priv, m->packet_type = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6; break; + case DPAA2_PKT_TYPE_IPV4_FRAG: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_FRAG; + break; + case DPAA2_PKT_TYPE_IPV6_FRAG: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_FRAG; + break; + case DPAA2_PKT_TYPE_IPV4_ESP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_ESP; + break; + case DPAA2_PKT_TYPE_IPV6_ESP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_TUNNEL_ESP; + break; + case DPAA2_PKT_TYPE_IPV4_GTPU: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_GTPU; + break; + case DPAA2_PKT_TYPE_IPV6_GTPU: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_TUNNEL_GTPU; + break; + case DPAA2_PKT_TYPE_IPV4_GTPC: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_TUNNEL_GTPC; + break; + case DPAA2_PKT_TYPE_IPV6_GTPC: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_TUNNEL_GTPC; + break; case DPAA2_PKT_TYPE_ETHER: m->packet_type = RTE_PTYPE_L2_ETHER; break; -- 2.43.0

