netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hangbin Liu <liuhangbin@gmail.com>
To: Jay Vosburgh <jay.vosburgh@canonical.com>
Cc: Jonathan Toppins <jtoppins@redhat.com>,
	netdev@vger.kernel.org, Veaceslav Falico <vfalico@gmail.com>,
	Andy Gospodarek <andy@greyhouse.net>,
	"David S . Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, David Ahern <dsahern@gmail.com>,
	Nikolay Aleksandrov <nikolay@nvidia.com>,
	Eric Dumazet <eric.dumazet@gmail.com>,
	Paolo Abeni <pabeni@redhat.com>
Subject: Re: [PATCH net-next] Bonding: add per port priority support
Date: Mon, 18 Apr 2022 18:20:45 +0800	[thread overview]
Message-ID: <Yl07fecwg6cIWF8w@Laptop-X1> (raw)
In-Reply-To: <20134.1649778941@famine>

On Tue, Apr 12, 2022 at 08:55:41AM -0700, Jay Vosburgh wrote:
> >> @@ -136,6 +141,7 @@ static int bond_slave_changelink(struct net_device *bond_dev,
> >>   				 struct nlattr *tb[], struct nlattr *data[],
> >>   				 struct netlink_ext_ack *extack)
> >>   {
> >> +	struct slave *slave = bond_slave_get_rtnl(slave_dev);
> >>   	struct bonding *bond = netdev_priv(bond_dev);
> >>   	struct bond_opt_value newval;
> >>   	int err;
> >> @@ -156,6 +162,12 @@ static int bond_slave_changelink(struct net_device *bond_dev,
> >>   			return err;
> >>   	}
> >>   +	/* No need to bother __bond_opt_set as we only support netlink
> >> config */
> >
> >Not sure this comment is necessary, it doesn't add any value. Also I would
> >recommend using bonding's options management, as it would allow for
> >checking if the value is in a defined range. That might not be
> >particularly useful in this context since it appears +/-INT_MAX is the
> >range.
> 
> 	Agreed, on both the comment and in regards to using the extant
> bonding options management stuff.
> 
> >Also, in the Documentation it is mentioned that this parameter is only
> >used in modes active-backup and balance-alb/tlb. Do we need to send an
> >error message back preventing the modification of this value when not in
> >these modes?
> 
> 	Using the option management stuff would get this for free.

Hi Jav, Jon,

I remembered the reason why I didn't use bond default option management.

It's because the bonding options management only take bond and values. We
need to create an extra string to save the slave name and option values.
Then in bond option setting function we extract the info from the string
and do setting again, like the bond_option_queue_id_set().

I think this is too heavy for just an int value setting for slave.
As we only support netlink for new options. There is no need to handle
string setting via sysfs. For mode checking, we do just do like:

if (!bond_uses_primary(bond))
	return -EACCES;

So why bother the bonding options management? What do you think?
Do you have a easier way to get the slave name in options management?
If yes, I'm happy to use the default option management.

Thanks
Hangbin
> 
> 	-J
> 
> >> +	if (data[IFLA_BOND_SLAVE_PRIO]) {
> >> +		slave->prio = nla_get_s32(data[IFLA_BOND_SLAVE_PRIO]);
> >> +		bond_select_active_slave(bond);
> >> +	}
> >> +
> >>   	return 0;

  parent reply	other threads:[~2022-04-18 10:20 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-12  4:13 [PATCH net-next] Bonding: add per port priority support Hangbin Liu
2022-04-12  4:17 ` [PATCH iproute2-next] iplink: bond_slave: add per port prio support Hangbin Liu
2022-04-14  0:44   ` David Ahern
2022-04-12  4:55 ` [PATCH net-next] Bonding: add per port priority support Jay Vosburgh
2022-04-12  6:00   ` Hangbin Liu
2022-04-12 15:40     ` Jay Vosburgh
2022-04-12 14:23 ` Jonathan Toppins
2022-04-12 15:55   ` Jay Vosburgh
2022-04-12 17:04     ` Jonathan Toppins
2022-04-13  8:11       ` Hangbin Liu
2022-04-18 10:20     ` Hangbin Liu [this message]
2022-04-22 10:23       ` Hangbin Liu
2022-05-06  8:12         ` Hangbin Liu
2022-05-11  3:13           ` Hangbin Liu
2022-05-31  9:26           ` Hangbin Liu

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=Yl07fecwg6cIWF8w@Laptop-X1 \
    --to=liuhangbin@gmail.com \
    --cc=andy@greyhouse.net \
    --cc=davem@davemloft.net \
    --cc=dsahern@gmail.com \
    --cc=eric.dumazet@gmail.com \
    --cc=jay.vosburgh@canonical.com \
    --cc=jtoppins@redhat.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nikolay@nvidia.com \
    --cc=pabeni@redhat.com \
    --cc=vfalico@gmail.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).