Re: [PATCH net-next 4/5] bonding: make Kconfig toggle to disable legacy interfaces

From: Jarod Wilson
Date: Wed Sep 23 2020 - 12:44:24 EST

On Tue, Sep 22, 2020 at 8:01 PM Stephen Hemminger
<stephen@xxxxxxxxxxxxxxxxxx> wrote:
> On Tue, 22 Sep 2020 16:47:07 -0700
> Jay Vosburgh <jay.vosburgh@xxxxxxxxxxxxx> wrote:
> > Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx> wrote:
> >
> > >On Tue, 22 Sep 2020 09:37:30 -0400
> > >Jarod Wilson <jarod@xxxxxxxxxx> wrote:
> > >
> > >> By default, enable retaining all user-facing API that includes the use of
> > >> master and slave, but add a Kconfig knob that allows those that wish to
> > >> remove it entirely do so in one shot.
> > >>
> > >> Cc: Jay Vosburgh <j.vosburgh@xxxxxxxxx>
> > >> Cc: Veaceslav Falico <vfalico@xxxxxxxxx>
> > >> Cc: Andy Gospodarek <andy@xxxxxxxxxxxxx>
> > >> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
> > >> Cc: Jakub Kicinski <kuba@xxxxxxxxxx>
> > >> Cc: Thomas Davis <tadavis@xxxxxxx>
> > >> Cc: netdev@xxxxxxxxxxxxxxx
> > >> Signed-off-by: Jarod Wilson <jarod@xxxxxxxxxx>
> > >
> > >Why not just have a config option to remove all the /proc and sysfs options
> > >in bonding (and bridging) and only use netlink? New tools should be only able
> > >to use netlink only.
> >
> > I agree that new tooling should be netlink, but what value is
> > provided by such an option that distros are unlikely to enable, and
> > enabling will break the UAPI?

Do you mean the initial proposed option, or what Stephen is
suggesting? I think Red Hat actually will consider the former, the
latter is less likely in the immediate future, since so many people
still rely on the output of /proc/net/bonding/* for an overall view of
their bonds' health and status. I don't know how close we are to
having something comparable that could be spit out with a single
invocation of something like 'ip' that would only be using netlink.
It's entirely possible there's something akin to 'ip link bondX
overview' already that outputs something similar, and I'm just not
aware of it, but something like that would definitely need to exist
and be well-documented for Red Hat to remove the procfs bits, I think.

> > >Then you might convince maintainers to update documentation as well.
> > >Last I checked there were still references to ifenslave.
> >
> > Distros still include ifenslave, but it's now a shell script
> > that uses sysfs. I see it used in scripts from time to time.
> Some bleeding edge distros have already dropped ifenslave and even ifconfig.
> The Enterprise ones never will.
> The one motivation would be for the embedded folks which are always looking
> to trim out the fat. Although not sure if the minimal versions of commands
> in busybox are pure netlink yet.

Yeah, the bonding documentation is still filled with references to
ifenslave. I believe Red Hat still includes it, though it's
"deprecated" in documentation in favor of using ip. Similar with
ifconfig. I could see them both getting dropped in a future major
release of Red Hat Enterprise Linux, but they're definitely still here
for at least the life of RHEL8.

Jarod Wilson