Hi Olivier/ Konstantin, > > On Thu, Apr 08, 2021 at 01:47:18PM +0530, Tejasree Kondoj wrote: > > > Adding new mbuf packet type for UDP encapsulated > > > ESP packets. > > > > > > Signed-off-by: Tejasree Kondoj <ktejas...@marvell.com> > > > --- > > > doc/guides/rel_notes/release_21_05.rst | 5 +++++ > > > lib/librte_mbuf/rte_mbuf_ptype.h | 21 +++++++++++++++++++++ > > > 2 files changed, 26 insertions(+) > > > > > > diff --git a/doc/guides/rel_notes/release_21_05.rst > > b/doc/guides/rel_notes/release_21_05.rst > > > index 5565c7637c..c9e9e2ec22 100644 > > > --- a/doc/guides/rel_notes/release_21_05.rst > > > +++ b/doc/guides/rel_notes/release_21_05.rst > > > @@ -55,6 +55,11 @@ New Features > > > Also, make sure to start the actual text at the margin. > > > ======================================================= > > > > > > +* **Added new packet type for UDP-ESP packets in mbuf.** > > > + > > > + Added new packet type ``RTE_PTYPE_TUNNEL_ESP_IN_UDP`` which can > > be > > > + used to identify UDP encapsulated ESP packets. > > > + > > > * **Enhanced ethdev representor syntax.** > > > > > > * Introduced representor type of VF, SF and PF. > > > diff --git a/lib/librte_mbuf/rte_mbuf_ptype.h > > b/lib/librte_mbuf/rte_mbuf_ptype.h > > > index 17a2dd3576..bf92ce0c1a 100644 > > > --- a/lib/librte_mbuf/rte_mbuf_ptype.h > > > +++ b/lib/librte_mbuf/rte_mbuf_ptype.h > > > @@ -491,6 +491,27 @@ extern "C" { > > > * | 'destination port'=6635> > > > */ > > > #define RTE_PTYPE_TUNNEL_MPLS_IN_UDP 0x0000d000 > > > +/** > > > + * ESP-in-UDP tunneling packet type (RFC 3948). > > > + * > > > + * Packet format: > > > + * <'ether type'=0x0800 > > > + * | 'version'=4, 'protocol'=17 > > > + * | 'destination port'=4500> > > > + * or, > > > + * <'ether type'=0x86DD > > > + * | 'version'=6, 'next header'=17 > > > + * | 'destination port'=4500> > > > + * or, > > > + * <'ether type'=0x0800 > > > + * | 'version'=4, 'protocol'=17 > > > + * | 'source port'=4500> > > > + * or, > > > + * <'ether type'=0x86DD > > > + * | 'version'=6, 'next header'=17 > > > + * | 'source port'=4500> > > > + */ > > > +#define RTE_PTYPE_TUNNEL_ESP_IN_UDP 0x0000e000 > > > /** > > > * Mask of tunneling packet types. > > > */ > > > > We arrive at the end of the values in packet type tunnel types, > > and there is another pending patch that needs another tunnel type. > > > > As there is already a RTE_PTYPE_TUNNEL_ESP, what would you think about > > trying to reuse it, and differentiate IP/ESP from IP/UDP/ESP by using > > the L4 layer type (unknown vs udp)? Or maybe add RTE_PTYPE_L4_NONE. > > > > It is sensible, because it can be considered as an API change for > > current users of RTE_PTYPE_TUNNEL_ESP. I don't really know how this > > type is used by applications. > > It is OK to use combination of these two but with an assumption > that a normal - IP-UDP packet when encrypted will be an IP-ESP packet > And L4 types are reset from the mbuf->packet_type by the driver. > @Konstantin Ananyev: Are you OK with this assumption? > > And, if we choose this path, then also we may need a macro in this file, > So that application doesn't have to combine that explicitly for a standard use > case. > #define RTE_PTYPE_TUNNEL_ESP_IN_UDP RTE_PTYPE_TUNNEL_ESP | > RTE_PTYPE_L4_UDP > > Will this be fine? > Can we proceed with this approach?
Regards, Akhil > > > > I think it is time to start thinking about how the packet_type > > mbuf API can evolve to solve this issue. > > > > By the way, the update of *rte_get_ptype_tunnel_name() is missing.