All of lore.kernel.org
 help / color / mirror / Atom feed
From: Akhil Goyal <gakhil@marvell.com>
To: Olivier Matz <olivier.matz@6wind.com>,
	Tejasree Kondoj <ktejasree@marvell.com>,
	Konstantin Ananyev <konstantin.ananyev@intel.com>
Cc: Radu Nicolau <radu.nicolau@intel.com>,
	Anoob Joseph <anoobj@marvell.com>,
	 Ankur Dwivedi <adwivedi@marvell.com>,
	Jerin Jacob Kollanukkaran <jerinj@marvell.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [EXT] Re: [PATCH v3 2/4] mbuf: add packet type for UDP-ESP tunnel packets
Date: Fri, 9 Apr 2021 10:56:12 +0000	[thread overview]
Message-ID: <MW2PR18MB2284E433FBCE872EC2B9164AD8739@MW2PR18MB2284.namprd18.prod.outlook.com> (raw)
In-Reply-To: <20210408111007.GT1650@platinum>

Hi Olivier,
> 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 <ktejasree@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?

> 
> 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.

  reply	other threads:[~2021-04-09 10:56 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-08  8:17 [dpdk-dev] [PATCH v3 0/4] add lookaside IPsec UDP encapsulation and transport mode Tejasree Kondoj
2021-04-08  8:17 ` [dpdk-dev] [PATCH v3 1/4] crypto/octeontx2: add UDP encapsulation support Tejasree Kondoj
2021-04-08  8:17 ` [dpdk-dev] [PATCH v3 2/4] mbuf: add packet type for UDP-ESP tunnel packets Tejasree Kondoj
2021-04-08  8:33   ` Tejasree Kondoj
2021-04-08 11:10   ` Olivier Matz
2021-04-09 10:56     ` Akhil Goyal [this message]
2021-04-13 13:03       ` [dpdk-dev] [EXT] " Akhil Goyal
2021-04-13 15:46         ` Ananyev, Konstantin
2021-04-08  8:17 ` [dpdk-dev] [PATCH v3 3/4] examples/ipsec-secgw: add UDP encapsulation support Tejasree Kondoj
2021-04-08 10:45   ` Ananyev, Konstantin
2021-04-08  8:17 ` [dpdk-dev] [PATCH v3 4/4] crypto/octeontx2: support lookaside IPv4 transport mode Tejasree Kondoj

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=MW2PR18MB2284E433FBCE872EC2B9164AD8739@MW2PR18MB2284.namprd18.prod.outlook.com \
    --to=gakhil@marvell.com \
    --cc=adwivedi@marvell.com \
    --cc=anoobj@marvell.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=ktejasree@marvell.com \
    --cc=olivier.matz@6wind.com \
    --cc=radu.nicolau@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.