All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
To: Jack Min <jackmin@mellanox.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	Shagun Agarwal <shaguna@chelsio.com>,
	Indranil Choudhury <indranil@chelsio.com>,
	Nirranjan Kirubaharan <nirranjan@chelsio.com>,
	Shahaf Shuler <shahafs@mellanox.com>,
	"Xueming(Steven) Li" <xuemingl@mellanox.com>
Subject: Re: [RFC 0/3] ethdev: add IP address and TCP/UDP port rewrite actions to flow API
Date: Tue, 3 Jul 2018 19:09:22 +0530	[thread overview]
Message-ID: <20180703133920.GA15447@chelsio.com> (raw)
In-Reply-To: <HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com>

On Tuesday, July 07/03/18, 2018 at 07:57:55 +0530, Jack Min wrote:
> Hey Rahul,
> 
> Thank you, those two are the ways to achieve that.
> 
> Personally I prefer the option 1 but with a little bit difference, something like:
> 
>     struct rte_flow_action_of_set_nw_ipv4 {
>  	   uint32_t ipv4_addr;
>                 uint8_t   level;  /* 0 - outer (default), 1 - inner, 2 -255 deeper if available */
>     };
> 
> What do you think ?
> 

Looks good. I'll update the API and use the above approach in v2.

Thanks,
Rahul

> 
> > -----Original Message-----
> > From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
> > Sent: July 2, 2018 20:04
> > To: Jack Min <jackmin@mellanox.com>
> > Cc: dev@dpdk.org; Shagun Agarwal <shaguna@chelsio.com>; Indranil Choudhury
> > <indranil@chelsio.com>; Nirranjan Kirubaharan <nirranjan@chelsio.com>; Shahaf
> > Shuler <shahafs@mellanox.com>; Xueming(Steven) Li <xuemingl@mellanox.com>
> > Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port
> > rewrite actions to flow API
> > 
> > Hi Jack,
> > 
> > On Monday, July 07/02/18, 2018 at 14:39:06 +0530, Jack Min wrote:
> > > Hey,
> > >
> > > I've one question:
> > >
> > > Do those APIs support modify inner IP headers?
> > >
> > 
> > I'm afraid not. These API only modify outer IP addresses.
> > 
> > I can think of two ways to achieve this:
> > 
> > 1. Enhance these API to accept an additional flag to indicate
> >    inner or outer. For example, to set inner IPv4 address, we can
> >    set inner to 1 in following structure.
> > 
> >    struct rte_flow_action_of_set_nw_ipv4 {
> > 	   uint32_t inner:1; /* 1 - Inner, 0 - Outer */
> > 	   uint32_t reserved:31;
> > 	   uint32_t ipv4_addr;
> >    };
> > 
> > 2. Add new actions to indicate inner IP addresses; i.e.
> > 
> >    RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_SRC
> >    RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_DST
> >    RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_SRC
> >    RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_DST
> > 
> > Thanks,
> > Rahul
> > 
> > > In our scenarios, we need to specific that  NAT action is on inner or outer IP
> > header.
> > >
> > > Thanks,
> > > -Jack
> > >
> > > > -----Original Message-----
> > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Rahul Lakkireddy
> > > > Sent: June 22, 2018 17:56
> > > > To: dev@dpdk.org
> > > > Cc: shaguna@chelsio.com; indranil@chelsio.com; nirranjan@chelsio.com
> > > > Subject: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP
> > > > port rewrite actions to flow API
> > > >
> > > > This series of patches add support for actions:
> > > > - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.
> > > > - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.
> > > > - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.
> > > > - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.
> > > > - OF_SET_TP_SRC - set a new TCP/UDP source port number.
> > > > - OF_SET_TP_DST - set a new TCP/UDP destination port number.
> > > >
> > > > These actions are useful in Network Address Translation use case to
> > > > edit IP address and TCP/UDP port numbers before switching the
> > > > packets out to the destination device port.
> > > >
> > > > The IP address and TCP/UDP port rewrite actions are based on
> > > > OFPAT_SET_NW_SRC, OFPAT_SET_NW_DST, OFPAT_SET_TP_SRC, and
> > > > OFPAT_SET_TP_DST actions from OpenFlow Specification [1].
> > > >
> > > > Patch 1 adds support for IP address rewrite to rte_flow and testpmd.
> > > >
> > > > Patch 2 adds support for TCP/UDP port rewrite to rte_flow and testpmd.
> > > >
> > > > Patch 3 shows CXGBE PMD example to offload these actions to hardware.
> > > >
> > > > Feedback and suggestions will be much appreciated.
> > > >
> > > > Thanks,
> > > > Rahul
> > > >
> > > > [1]
> > > > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fww
> > > > w.open
> > > > networking.org%2Fimages%2Fopenflow-switch-
> > > >
> > v1.5.1.pdf&data=02%7C01%7Cxuemingl%40mellanox.com%7C74c8ce3b79954b2f
> > > >
> > 123208d5d8268617%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C1%7C636
> > > >
> > 652582334142929&sdata=uoFc1KjVTkGI9fdaPNXvXYRmh%2F6HLMKT79IwgvDSH
> > > > 0k%3D&reserved=0
> > > >
> > > > Shagun Agrawal (3):
> > > >   ethdev: add flow api actions to modify IP addresses
> > > >   ethdev: add flow api actions to modify TCP/UDP port numbers
> > > >   net/cxgbe: add flow actions to modify IP and TCP/UDP port address
> > > >
> > > >  app/test-pmd/cmdline_flow.c                 | 150
> > > > ++++++++++++++++++++++++++++
> > > >  app/test-pmd/config.c                       |  12 +++
> > > >  doc/guides/prog_guide/rte_flow.rst          | 102 +++++++++++++++++++
> > > >  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  24 +++++
> > > >  drivers/net/cxgbe/base/common.h             |   1 +
> > > >  drivers/net/cxgbe/base/t4fw_interface.h     |  50 ++++++++++
> > > >  drivers/net/cxgbe/cxgbe_filter.c            |  23 ++++-
> > > >  drivers/net/cxgbe/cxgbe_filter.h            |  26 ++++-
> > > >  drivers/net/cxgbe/cxgbe_flow.c              | 127 +++++++++++++++++++++++
> > > >  drivers/net/cxgbe/cxgbe_main.c              |  10 ++
> > > >  lib/librte_ethdev/rte_flow.c                |  12 +++
> > > >  lib/librte_ethdev/rte_flow.h                |  92 +++++++++++++++++
> > > >  12 files changed, 625 insertions(+), 4 deletions(-)
> > > >
> > > > --
> > > > 2.14.1
> > >

  reply	other threads:[~2018-07-03 13:40 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-22  9:56 [RFC 0/3] ethdev: add IP address and TCP/UDP port rewrite actions to flow API Rahul Lakkireddy
2018-06-22  9:56 ` [RFC 1/3] ethdev: add flow api actions to modify IP addresses Rahul Lakkireddy
2018-06-22  9:56 ` [RFC 2/3] ethdev: add flow api actions to modify TCP/UDP port numbers Rahul Lakkireddy
2018-06-22  9:56 ` [RFC 3/3] net/cxgbe: add flow actions to modify IP and TCP/UDP port address Rahul Lakkireddy
2018-06-26 10:32 ` [RFC 0/3] ethdev: add IP address and TCP/UDP port rewrite actions to flow API Thomas Monjalon
2018-07-02  9:09 ` Jack Min
2018-07-02 12:04   ` Rahul Lakkireddy
2018-07-03  2:27     ` Jack Min
2018-07-03 13:39       ` Rahul Lakkireddy [this message]
2018-07-04  1:11         ` Jack Min
2018-07-05 20:16         ` Adrien Mazarguil
2018-07-10 13:14           ` Rahul Lakkireddy
2018-08-01 23:35             ` Jack Min
2018-08-02 14:59               ` Rahul Lakkireddy
2018-08-13 13:36 ` [RFC v2 " Rahul Lakkireddy
2018-08-13 13:36   ` [RFC v2 1/3] ethdev: add flow api actions to modify IP addresses Rahul Lakkireddy
2018-09-18  7:56     ` Xiaoyu Min
2018-09-19 15:14       ` Rahul Lakkireddy
2018-08-13 13:36   ` [RFC v2 2/3] ethdev: add flow api actions to modify TCP/UDP port numbers Rahul Lakkireddy
2018-09-18  9:29     ` Xiaoyu Min
2018-09-19 15:16       ` Rahul Lakkireddy
2018-08-13 13:36   ` [RFC v2 3/3] net/cxgbe: add flow actions to modify IP and TCP/UDP port address Rahul Lakkireddy

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=20180703133920.GA15447@chelsio.com \
    --to=rahul.lakkireddy@chelsio.com \
    --cc=dev@dpdk.org \
    --cc=indranil@chelsio.com \
    --cc=jackmin@mellanox.com \
    --cc=nirranjan@chelsio.com \
    --cc=shaguna@chelsio.com \
    --cc=shahafs@mellanox.com \
    --cc=xuemingl@mellanox.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.