DPDK patches and discussions
 help / color / mirror / Atom feed
From: Matan Azrad <matan@mellanox.com>
To: Chas Williams <3chas3@gmail.com>
Cc: Declan Doherty <declan.doherty@intel.com>,
	Radu Nicolau <radu.nicolau@intel.com>,
	"dev@dpdk.org" <dev@dpdk.org>, Chas Williams <chas3@att.com>
Subject: Re: [dpdk-dev] [PATCH] net/bonding: propagate promiscous mode in mode 4
Date: Fri, 3 Aug 2018 05:47:03 +0000	[thread overview]
Message-ID: <AM0PR0502MB40192273B85C5E133A486A68D2230@AM0PR0502MB4019.eurprd05.prod.outlook.com> (raw)
In-Reply-To: <CAG2-Gkk6MW6w480=QF1e-CUibmUxdXDjQvA5cyHASKSsznsxNw@mail.gmail.com>

Hi Chas

 From: Chas Williams [mailto:3chas3@gmail.com] On Thu, Aug 2, 2018 at 1:33
> PM Matan Azrad <matan@mellanox.com> wrote:
> >
> > > I suggest to do it like next,
> > > To add one more parameter for LACP which means how to configure the
> > LACP MC group - lacp_mc_grp_conf:
> > > 1. rte_flow.
> > > 2. flow director.
> > > 3. add_mac.
> > > 3. set_mc_add_list
> > > 4. allmulti
> > > 5. promiscuous
> > > Maybe more... or less :)
> > >
> > > By this way the user decides how to do it, if it's fail for a slave,
> > > the salve
> > should be rejected.
> > > Conflict with another configuration(for example calling to
> > > promiscuous
> > disable while running LACP lacp_mc_grp_conf=5) should raise an error.
> > >
> > > What do you think?
> > >
> >
> > Supporting an LACP mc group specific configuration does make sense,
> > but I wonder if this could just be handled by default during slave add.
> >
> >
> > 1 and 2 are essentially the same hardware filtering offload mode, and
> > the other modes are irrelevant if this is enabled, it should not be
> > possible to add the slave if the bond is configured for this mode, or
> > possible to change the bond into this mode if an existing slave
> > doesn't support it.
> 
> >
> > 3 should be the default expected behavior, but
> > rte_eth_bond_slave_add() should fail if the slave being added doesn't
> > support either adding the MAC to the slave or adding the LACP MC address.
> >
> > Then the user could try either rte_eth_allmulticast_enable() on the
> > bond port and then try to add the slave again, which should fail if
> > existing slave didn't support allmulticast or the add slave would fail
> > again if the slave didn't support allmulticast  and finally just call
> > rte_eth_promiscuous_enable() on the bond and then try to re-add the
> > that slave.
> >
> > but maybe having a explicit configuration parameter would be better.
> 
> I don't sure you understand exactly what I’m suggesting here, again:
> I suggest to add a new parameter to the LACP mode called
> lacp_mc_grp_conf(or something else).
> So, when the user configures LACP (mode 4) it must to configure the
> lacp_mc_grp_conf parameter to one of the options I suggested.
> This parameter is not per slave means the bond PMD will use the selected
> option to configure the LACP MC group for all the slave ports.
> 
> If one of the slaves doesn't support the selected option it should be rejected.
> Conflicts should rais an error.
> 
> I agree here.  Yes, if a slave can't manage to subscribe to the multicast group,
> an error should be raised.  The only way for this to happen is that you don't
> have promisc support which is the ultimate fallback.

> The advantages are:
> The user knows which option is better to synchronize with his application.
> The user knows better than the bond PMD what is the slaves capabilities.
> All the slaves are configured by the same way - consistent traffic.
> 
> 
> It would be ideal if all the slaves would have the same features and
> capabilities.  There wasn't enforced before, so this would be a new restriction
> that would be less flexible than what we currently have.  That doesn't seem like
> an improvement.

> The bonding user probably doesn't care which mode is used.
> The bonding user just wants bonding to work.  He doesn't care about the details.   If I am writing
> an application with this proposed API, I need to make a list of adapters and
> what they support (and keep this up to date as DPDK evolves).  Ugh.

The applications commonly know what are the nics capabilities they work with.

I know at least an one big application which really suffering because the bond
configures promiscuous in mode 4 without the application asking (it's considered there as a bug in dpdk).
I think that providing  another option will be better.

So, providing to applications a list of options will ease the application life and may be big improvement
while not hurting the current behavior. 

Matan   


  reply	other threads:[~2018-08-03  5:47 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-01 12:57 Radu Nicolau
2018-08-01 13:34 ` Chas Williams
2018-08-01 13:47   ` Radu Nicolau
2018-08-01 15:35     ` Chas Williams
2018-08-02  6:35       ` Matan Azrad
2018-08-02 13:23         ` Doherty, Declan
2018-08-02 14:24           ` Matan Azrad
2018-08-02 15:53             ` Doherty, Declan
2018-08-02 17:33               ` Matan Azrad
2018-08-02 21:10                 ` Chas Williams
2018-08-03  5:47                   ` Matan Azrad [this message]
2018-08-06 16:00                     ` Chas Williams
2018-08-06 17:46                       ` Matan Azrad
2018-08-06 19:01                         ` Chas Williams
2018-08-06 19:35                           ` Matan Azrad
2018-09-11  3:31                             ` Chas Williams
2018-09-12  5:56                               ` Matan Azrad
2018-09-13 15:14                                 ` Chas Williams
2018-09-13 15:40                                   ` Matan Azrad
2018-09-16 16:14                                     ` Chas Williams
2018-09-17  6:29                                       ` Matan Azrad
2018-08-02 21:05             ` Chas Williams
2018-08-02  9:57 ` [dpdk-dev] [PATCH v2 1/2] net/bonding: in 8023ad mode enable all multicast rather than promiscuous Radu Nicolau
2018-08-02  9:57   ` [dpdk-dev] [PATCH v2 2/2] net/bonding: propagate promiscous mode in mode 4 Radu Nicolau
2018-08-02 10:21   ` [dpdk-dev] [PATCH v2 1/2] net/bonding: in 8023ad mode enable all multicast rather than promiscuous Matan Azrad
2018-08-02 21:16   ` Chas Williams

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=AM0PR0502MB40192273B85C5E133A486A68D2230@AM0PR0502MB4019.eurprd05.prod.outlook.com \
    --to=matan@mellanox.com \
    --cc=3chas3@gmail.com \
    --cc=chas3@att.com \
    --cc=declan.doherty@intel.com \
    --cc=dev@dpdk.org \
    --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 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).