Add ESP (Encapsulating Security Payload) packet type definitions and handling to the RX packet parsing path. Also update the supported ptypes array to advertise ESP tunnel type support.
Signed-off-by: Gagandeep Singh <[email protected]> --- doc/guides/rel_notes/release_26_07.rst | 3 +++ drivers/net/enetc/base/enetc_hw.h | 4 ++++ drivers/net/enetc/enetc_ethdev.c | 3 ++- drivers/net/enetc/enetc_rxtx.c | 10 ++++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/doc/guides/rel_notes/release_26_07.rst b/doc/guides/rel_notes/release_26_07.rst index fc6e144..35476c2 100644 --- a/doc/guides/rel_notes/release_26_07.rst +++ b/doc/guides/rel_notes/release_26_07.rst @@ -187,6 +187,9 @@ New Features ``RTE_ETH_EVENT_RECOVERY_FAILED``) to notify upper layers of the reset lifecycle. +* **Updated NXP ENETC ethernet driver.** + + * Added support for ESP packet type in packet parsing Removed Items ------------- diff --git a/drivers/net/enetc/base/enetc_hw.h b/drivers/net/enetc/base/enetc_hw.h index 19efadd..f79c950 100644 --- a/drivers/net/enetc/base/enetc_hw.h +++ b/drivers/net/enetc/base/enetc_hw.h @@ -226,6 +226,10 @@ enum enetc_bdr_type {TX, RX}; (0x0003 | ENETC_PKT_TYPE_IPV4) #define ENETC_PKT_TYPE_IPV6_ICMP \ (0x0003 | ENETC_PKT_TYPE_IPV6) +#define ENETC_PKT_TYPE_IPV4_ESP \ + (0x0005 | ENETC_PKT_TYPE_IPV4) +#define ENETC_PKT_TYPE_IPV6_ESP \ + (0x0005 | ENETC_PKT_TYPE_IPV6) /* PCI device info */ struct enetc_hw { diff --git a/drivers/net/enetc/enetc_ethdev.c b/drivers/net/enetc/enetc_ethdev.c index f41f3c1..8196377 100644 --- a/drivers/net/enetc/enetc_ethdev.c +++ b/drivers/net/enetc/enetc_ethdev.c @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright 2018-2024 NXP + * Copyright 2018-2026 NXP */ #include <stdbool.h> @@ -95,6 +95,7 @@ enetc_supported_ptypes_get(struct rte_eth_dev *dev __rte_unused, RTE_PTYPE_L4_UDP, RTE_PTYPE_L4_SCTP, RTE_PTYPE_L4_ICMP, + RTE_PTYPE_TUNNEL_ESP }; *no_of_elements = RTE_DIM(ptypes); diff --git a/drivers/net/enetc/enetc_rxtx.c b/drivers/net/enetc/enetc_rxtx.c index d3b98b3..94177bb 100644 --- a/drivers/net/enetc/enetc_rxtx.c +++ b/drivers/net/enetc/enetc_rxtx.c @@ -370,6 +370,16 @@ enetc_dev_rx_parse(struct rte_mbuf *m, uint16_t parse_results) RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_UDP; return; + case ENETC_PKT_TYPE_IPV4_ESP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4 | + RTE_PTYPE_TUNNEL_ESP; + return; + case ENETC_PKT_TYPE_IPV6_ESP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6 | + RTE_PTYPE_TUNNEL_ESP; + return; case ENETC_PKT_TYPE_IPV4_SCTP: m->packet_type = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4 | -- 2.25.1

