DPDK patches and discussions
 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>,
	Shahaf Shuler <shahafs@mellanox.com>,
	"Xueming(Steven) Li" <xuemingl@mellanox.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	Adrien Mazarguil <adrien.mazarguil@6wind.com>,
	Shagun Agarwal <shaguna@chelsio.com>,
	Indranil Choudhury <indranil@chelsio.com>,
	Nirranjan Kirubaharan <nirranjan@chelsio.com>
Subject: Re: [dpdk-dev] [RFC] ethdev: add generic MAC address rewrite actions
Date: Tue, 21 Aug 2018 13:44:32 +0530	[thread overview]
Message-ID: <20180821081426.GA4266@chelsio.com> (raw)
In-Reply-To: <20180814091545.mnkajravotqodpav@MTBC-JACKMIN.mtl.com>

On Tuesday, August 08/14/18, 2018 at 14:45:45 +0530, Jack MIN wrote:
> On Mon, Aug 13, 2018 at 03:38:18PM +0530, Rahul Lakkireddy wrote:
> > On Tuesday, August 08/07/18, 2018 at 14:20:10 +0000, Jack Min wrote:
> > > There is a need to offload rewrite MAC address for both destination and source
> > > from the matched flow
> > > 
> > > The proposed actions could make above easily achieved
> > > 
> > 
> > +1.
> > 
> > We're also looking to offload these actions. In addition, we also have
> > a requirement to offload an action to swap the source and destination
> > MAC addresses (i.e. source MAC address will get overwritten with the
> > destination MAC address and vice-versa).
> > 
> Hey,
> 
> Just want to know in which specific scenario we need to swap MAC address ?
> 

Sorry for the delay in response.

This action is needed to offload loopback mode; where the hardware
will automatically swap the source and destination MAC before looping
back the packet.

Also, MAC swap can be used in conjunction with the other rewrite actions
to achieve MAC Layer Transparent NAT. When used in this way, the MAC
addresses will be swapped before the source or destination MAC address
is rewritten and NAT is performed.

Thanks,
Rahul

> > Could you please add one more action RTE_FLOW_ACTION_TYPE_MAC_SWAP
> > to achieve this? This action will not take any arguments. Let us
> > know your thoughts.
> > 
> > Thanks,
> > Rahul
> > 
> > > 
> > > Signed-off-by: Xiaoyu Min <jackmin@mellanox.com<mailto:jackmin@mellanox.com>>
> > > ---
> > > lib/librte_ethdev/rte_flow.h | 32 ++++++++++++++++++++++++++++++++
> > > 1 file changed, 32 insertions(+)
> > > 
> > > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
> > > index f8ba71cdb..4a51ab2a3 100644
> > > --- a/lib/librte_ethdev/rte_flow.h
> > > +++ b/lib/librte_ethdev/rte_flow.h
> > > @@ -1505,6 +1505,26 @@ enum rte_flow_action_type {
> > >          * error.
> > >          */
> > >         RTE_FLOW_ACTION_TYPE_NVGRE_DECAP,
> > > +
> > > +       /**
> > > +        * Set source MAC address from matched flow.
> > > +        *
> > > +        * If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_ETH,
> > > +        * the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
> > > +        *
> > > +        * See struct rte_flow_action_set_mac.
> > > +        */
> > > +       RTE_FLOW_ACTION_TYPE_SET_MAC_SRC,
> > > +
> > > +       /**
> > > +        * Set destination MAC address from matched flow.
> > > +        *
> > > +        * If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_ETH,
> > > +        * the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
> > > +        *
> > > +        * See struct rte_flow_action_set_mac.
> > > +        */
> > > +       RTE_FLOW_ACTION_TYPE_SET_MAC_DST,
> > > };
> > > 
> > > /**
> > > @@ -1868,6 +1888,18 @@ struct rte_flow_action_nvgre_encap {
> > >         struct rte_flow_item *definition;
> > > };
> > > 
> > > +/**
> > > + * @warning
> > > + * @b EXPERIMENTAL: this structure may change without prior notice
> > > + *
> > > + * RTE_FLOW_ACTION_TYPE_SET_MAC
> > > + *
> > > + * Set MAC address from the matched flow
> > > + */
> > > +struct rte_flow_action_set_mac {
> > > +       uint8_t mac_addr[ETHER_ADDR_LEN];
> > > +};
> > > +
> > > /*
> > >   * Definition of a single action.
> > >   *
> > > --
> > > 2.17.1

  reply	other threads:[~2018-08-21  8:16 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-07 14:20 Jack Min
2018-08-13 10:08 ` Rahul Lakkireddy
2018-08-14  9:15   ` Jack MIN
2018-08-21  8:14     ` Rahul Lakkireddy [this message]
2018-08-23  2:15       ` Jack MIN
2018-08-23  8:13         ` Rahul Lakkireddy
2018-08-23 13:58 ` Ferruh Yigit
2018-08-28 10:15 ` Andrew Rybchenko
2018-08-29  3:25   ` Jack MIN
2018-08-30  6:54 ` [dpdk-dev] [PATCH v2] " Xiaoyu Min
2018-08-30  7:40   ` Jack MIN
2018-08-30  8:00 ` [dpdk-dev] [RFC " Xiaoyu Min
2018-08-31  8:33   ` Andrew Rybchenko

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=20180821081426.GA4266@chelsio.com \
    --to=rahul.lakkireddy@chelsio.com \
    --cc=adrien.mazarguil@6wind.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=thomas@monjalon.net \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).