On Tue, Sep 1, 2020 at 3:43 PM Fernando Fernandez Mancera
<ferferna(a)redhat.com> wrote:
Hello again!
I am considering all the votes to list shared with you recently as no
one proposed new words. Please, send your votes to the mailing list,
you have until Friday 8.00 AM UTC :-)
P.S: I am considering the votes already sent, so there is no need to
send them again.
I intend to go with either bundle/cable or parent/child for the kernel
bonding driver, partially because they're the exact same lengths as
master/slave, and make some degree of sense. I'd leave trunk and port
off the list of options, because VLAN uses trunk quite a bit, and the
bonding 802.3ad code already uses port. Probably leaning towards
parent/child, since a bond isn't necessarily a bundle of cables. The
bigger issue than actual naming is not breaking anyone's userspace,
which unfortunately means quite a bit can NOT be changed. Secondary to
that, is not making life hell for -stable kernel tree maintainers
trying to backport from a bonding driver with new terminology in use.
Note: there's also an open bugzilla for this issue, specific to the
bonding driver.
On Tue, Sep 1, 2020 at 4:28 PM Beniamino Galvani
<bgalvani(a)redhat.com> wrote:
>
> On Mon, Aug 31, 2020 at 12:32:33PM +0200, Fernando Fernandez Mancera wrote:
> > Hello everyone,
> >
> > I am asking for ideas and tomorrow I will open a public voting on the
> > mailing list. So, please add your suggestions now. The current ones
> > are:
> >
> > - main/sub
> > - main/member
> > - parent/child
> > - base/child
> > - main/worker
> > - trunk/leg
> > - base/leg
> >
> > Please, feel free to add other terms.
>
> In NetworkManager the parent/child terminology is used for interfaces
> like VLANs, IP tunnels, PPPoE where an interface is stacked upon
> another without relation to other 'siblings'.
>
> > - base/child
> > - main/worker
> > - trunk/leg
> > - base/leg
> >
> > Please, feel free to add other terms.
>
> I like (in this order) {'base', 'main'} for the master and
{'port',
> 'member'} for slaves.
>
> Beniamino
>
> > On Thu, Aug 27, 2020 at 2:31 PM William Caban Babilonia
> > <william.caban(a)redhat.com> wrote:
> > >
> > > Another idea for the naming.
> > >
> > > If we consider something like:
> > >
> > > bond0:
> > > - eth0
> > > - eth1
> > > - eth2
> > > - eth3
> > >
> > > bond0.vlan1
> > > bond0.vlan2
> > >
> > > etc,
> > >
> > > - What about calling the physical interfaces "eth0-3"
"members" of bond0?
> > > - What about calling "vlan1" "vlan2" are a child of
bond0?
> > >
> > >
> > > _W
> > >
> > >
> > >
> > > On Thu, Aug 27, 2020 at 6:33 AM Till Maas <till(a)redhat.com> wrote:
> > >>
> > >> Hi,
> > >>
> > >> Am Do., 27. Aug. 2020 um 11:49 Uhr schrieb Fernando Fernandez Mancera
> > >> <ferferna(a)redhat.com>:
> > >>
> > >> > Looking on the thread it seems we agree on two points:
> > >> >
> > >> > * We should use a generic word for codebase and for API
VLAN/VXLAN
> > >> > will user base/parent, as we are already doing.
> > >> >
> > >> > * Short words are good so controller/subordinate is too long and
> > >> > interface/subinterface are too generic.
> > >>
> > >> my proposal should have been top and sub as the identifiers but I it
> > >> would be spoken as top interface / sub interface.
> > >>
> > >>
> > >> >
> > >> > IMO, we should follow the kernel terms and we shouldn't
create new
> > >> > terms because it would be hard to understand for maintainers.
> > >> >
https://www.zdnet.com/article/linux-team-approves-new-terminology-bans-te...
> > >> >
> > >> > I propose to use:
> > >> >
> > >> > "base/worker" or "main/worker".
> > >>
> > >> This would also lead to base interface and worker interface.
> > >>
> > >> base and worker are not mentioned in the zdnet article. So how about
> > >> "main" and "sub" (short for subordinate).
> > >>
> > >> Can we maybe check at least with someone else involved in the
upstream
> > >> kernel to get their opinion if Jarod is not available?
> > >>
> > >> Thanks
> > >> Till
> > >>
> > >> >
> > >> > If there is no complaint on this I will work on this by next
week, so
> > >> > please, share your thoughts. :-)
> > >> >
> > >> > Thanks!
> > >> > Fernando.
> > >> >
> > >> > On Mon, Aug 24, 2020 at 11:01 AM Fernando Fernandez Mancera
> > >> > <ferferna(a)redhat.com> wrote:
> > >> > >
> > >> > > Sorry, I meant "base/leg".
> > >> > >
> > >> > > On Mon, Aug 24, 2020 at 10:59 AM Fernando Fernandez Mancera
> > >> > > <ferferna(a)redhat.com> wrote:
> > >> > > >
> > >> > > > On Mon, Aug 24, 2020 at 10:35 AM Till Maas
<till(a)redhat.com> wrote:
> > >> > > > >
> > >> > > > > Hi,
> > >> > > > >
> > >> > > > > Am Mo., 24. Aug. 2020 um 10:14 Uhr schrieb
Fernando Fernandez Mancera
> > >> > > > > <ferferna(a)redhat.com>:
> > >> > > > > >
> > >> > > > > > On Mon, Aug 24, 2020 at 9:58 AM Till Maas
<till(a)redhat.com> wrote:
> > >> > > > > > >
> > >> > > > > > > Hi,
> > >> > > > > > >
> > >> > > > > > > Am Do., 13. Aug. 2020 um 17:06 Uhr
schrieb Gris Ge <fge(a)redhat.com>:
> > >> > > > > > > >
> > >> > > > > > > > Hi,
> > >> > > > > > > >
> > >> > > > > > > > I would like to suggest we
deprecate our use of `master/slave` in
> > >> > > > > > > > nmstate project.
> > >> > > > > > > >
> > >> > > > > > > > And switching to these
terminologies for interface relationship in
> > >> > > > > > > > the coming new release of
nmstate-0.4.0:
> > >> > > > > > > >
> > >> > > > > > > > * For bond/team/bridge:
> > >> > > > > > > > * controller/subordinate
> > >> > > > > > > > # For bridge, we can also use
controller/port.
> > >> > > > > > >
> > >> > > > > > > having shorter words would be nice,
maybe
> > >> > > > > > >
> > >> > > > > > > trunk/leg
> > >> > > > > > > base/leg
> > >> > > > > > >
> > >> > > > > > > base/dell
> > >> > > > > > > mesa/dell
> > >> > > > > > > base/vale
> > >> > > > > > >
> > >> > > > > > > bulk/part
> > >> > > > > > >
> > >> > > > > > > >
> > >> > > > > > > > * For VLAN/VxLAN:
> > >> > > > > > > > * parent/child
> > >> > > > > > > > * base/child
> > >> > > > > > > > # Current API using
`base-iface`, no need to change
> > >> > > > > > >
> > >> > > > > > > Some other suggestions:
> > >> > > > > > > base/apex
> > >> > > > > > > mesa/apex
> > >> > > > > > >
> > >> > > > > > > base/head
> > >> > > > > > > trunk/head
> > >> > > > > >
> > >> > > > > > Those are a little bit confusing for me. I
expect both "base" and
> > >> > > > > > "head" would replace
"master".
> > >> > > > >
> > >> > > > > Interesting. This might be because I did not think
about the old
> > >> > > > > analogy where one interface has power over the
other but more like how
> > >> > > > > they are arranged.
> > >> > > > >
> > >> > > > > Bond interfaces are built on top of other
interfaces, making the other
> > >> > > > > interfaces something at the bottom (like legs) and
the bond interface
> > >> > > > > the trunk or base. Since VLAN interfaces are also
built on top of
> > >> > > > > other interfaces, even on bond interfaces, this
makes them another top
> > >> > > > > layer which is the head. But since there could be
multiple VLAns, arms
> > >> > > > > might make more sense and then both arms and legs
are limbs.
> > >> > > > >
> > >> > > > > > I've been thinking on this and it would
be good to use only one option
> > >> > > > > > for codebase, i.e using the same terms for
all kind of interfaces. For
> > >> > > > > > the exposed API, I would not change
VLAN/VXLAN as we are already using
> > >> > > > > > base/child terms. For other interfaces I
noticed that we are mixing up
> > >> > > > > > "slaves" and "ports", I
suggest to unify it into a generic one. IMO,
> > >> > > > > > the most generic are
"controller/subordinate".
> > >> > > > > >
> > >> > > > > > If we agree on the generic word, I would use
them for the whole codebase.
> > >> > > > > >
> > >> > > > > > What do you think? Thanks!
> > >> > > > >
> > >> > > > > I am not sure if the power structure is the best
analogy, here. Does a
> > >> > > > > bond/bridge interface really control its
subordinate interfaces? Maybe
> > >> > > > > it also does not matter that much, given that at
some point the words
> > >> > > > > will be defined by usage. However, using long
words might not stick
> > >> > > > > since people are lazy. A shorter alternative might
be top
> > >> > > > > interface/sub interface.
> > >> > > > >
> > >> > > >
> > >> > > > Yes, that is true. It would be nice to use a shorter
word.. maybe
> > >> > > > "parent/child"? As parents have power over
their childs.. Not sure.
> > >> > > > About interface/subinterface, I find them very lazy,
"interface" term
> > >> > > > is all over the codebase so it could be very confusing
for us, IMO.
> > >> > > >
> > >> > > > I also like "base/lag"-
> > >> > > >
> > >> > > > Thanks!
> > >> > > >
> > >> > > > > Thanks
> > >> > > > > Till
> > >> > > > >
> > >> > > > >
> > >> > > > > >
> > >> > > > > > >
> > >> > > > > > >
> > >> > > > > > > The trunk interface of eth1 is bond0
> > >> > > > > > > eth1 is a leg of the bridge br0
> > >> > > > > > > eth1 is a leg of an base interface
> > >> > > > > > > eth1 is a dell interface of br0
(probably not so nice because of the
> > >> > > > > > > confusion with the manufacturer)
> > >> > > > > > > eth1 is a vale interface of br0
> > >> > > > > > > eth1 is a limb of br0
> > >> > > > > > > eth1 is a leg of br0
> > >> > > > > > > br0 is the trunk for eth1
> > >> > > > > > >
> > >> > > > > > >
> > >> > > > > > > eth1 is a part interface of the br0 bulk
interface
> > >> > > > > > >
> > >> > > > > > >
> > >> > > > > > > the base of VLAN eth1.100 is eth1
> > >> > > > > > > eth1.100 is an apex interface of eth1
> > >> > > > > > > eth1.100 is a head of eth1
> > >> > > > > > > eth1 is the trunk interface for
eth1.100.
> > >> > > > > > > eth1 is the base interface for
eth1.100.
> > >> > > > > > > eth1 is the trunk for eth1.100
> > >> > > > > > > eth1.100 is a limb of eth1
> > >> > > > > > > eth1.100 is an arm of eth1
> > >> > > > > > >
> > >> > > > > > >
> > >> > > > > > > These seem to be my current favorites:
> > >> > > > > > > leg/trunk/head
> > >> > > > > > > limb/trunk/limb
> > >> > > > > > >
> > >> > > > > > > Limb could be used both for the
interfaces included in a bridge or a
> > >> > > > > > > bond. Not sure, if they need to have
different identifiers.
> > >> > > > > > >
> > >> > > > > > >
> > >> > > > > > > >
> > >> > > > > > > > For example:
> > >> > > > > > > > * The `controller` of eth1 is
bond0 and `controller_type` is bond
> > >> > > > > > > > * The br0 is `controller` of eth1
> > >> > > > > > > > * The eth1 is `port` of bridge br0
or `subordinate` of bridge br0
> > >> > > > > > > > * The eth1 is `subordinate` of
bond0
> > >> > > > > > > > * The VLAN eth1.100 is child of
eth1
> > >> > > > > > > > * The base interface of eth1.100
is eth1
> > >> > > > > > > > * The parent of VLAN eth1.100 is
eth1
> > >> > > > > > > > * The VLAN eth1.100 is child of
eth1
> > >> > > > > > > >
> > >> > > > > > > > I am not English native speaker,
please kindly help on this if you have
> > >> > > > > > > > better ideas.
> > >> > > > > > > >
> > >> > > > > > > > Thank you very much!
> > >> > > > > > >
> > >> > > > > > > Thank you for moving this forward!
> > >> > > > > > >