<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED --- - systemd-networkd: VLAN on bond fails due to incorrect order of enslavement"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=76077#c4">Comment # 4</a>
              on <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED --- - systemd-networkd: VLAN on bond fails due to incorrect order of enslavement"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=76077">bug 76077</a>
              from <span class="vcard"><a class="email" href="mailto:malte@malte.homeip.net" title="Malte Starostik <malte@malte.homeip.net>"> <span class="fn">Malte Starostik</span></a>
</span></b>
        <pre>Nope, Just checked with 3.14.5 and still the same.  Whether bonding and/or
8021q modules are explicitly loaded in modules-load.d or not, there's still a
race.  If the NICs are enslaved to the bond before creating VLANs it works (the
rare case).  In most of the cases, the VLAN creation precedes the enslavement
of the NICs, and that still failes with:

kernel: 8021q: VLANs not supported on lan

and the VLAN interfaces are missing.  Trying this manually confirms that VLANs
cannot be created on a bond before it has any slaves:

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode
DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
19: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:54 brd ff:ff:ff:ff:ff:ff
20: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:55 brd ff:ff:ff:ff:ff:ff
21: eno3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:56 brd ff:ff:ff:ff:ff:ff
22: eno4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:57 brd ff:ff:ff:ff:ff:ff

# ip link add test type bond
# ip link add test950 link test type vlan id 950
8021q: VLANs not supported on test
RTNETLINK answers: Operation not supported
# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode
DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
19: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:54 brd ff:ff:ff:ff:ff:ff
20: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:55 brd ff:ff:ff:ff:ff:ff
21: eno3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:56 brd ff:ff:ff:ff:ff:ff
22: eno4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:57 brd ff:ff:ff:ff:ff:ff
23: test: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode
DEFAULT 
    link/ether d8:9d:67:21:29:54 brd ff:ff:ff:ff:ff:ff

# ip link set eno1 master test
IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
bonding: test: enslaving eno1 as a backup interface with a down link.
tg3 0000:03:00.0 eno1: Link is up at 1000 Mbps, full duplex
tg3 0000:03:00.0 eno1: Flow control is off for TX and off for RX
tg3 0000:03:00.0 eno1: EEE is disabled

# ip link add test950 link test type vlan id 950
# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode
DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
19: eno1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master test
state UP mode DEFAULT qlen 1000
    link/ether d8:9d:67:21:29:54 brd ff:ff:ff:ff:ff:ff
20: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:55 brd ff:ff:ff:ff:ff:ff
21: eno3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:56 brd ff:ff:ff:ff:ff:ff
22: eno4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
qlen 1000
    link/ether d8:9d:67:21:29:57 brd ff:ff:ff:ff:ff:ff
23: test: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode
DEFAULT 
    link/ether d8:9d:67:21:29:54 brd ff:ff:ff:ff:ff:ff
24: test950@test: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN
mode DEFAULT 
    link/ether d8:9d:67:21:29:54 brd ff:ff:ff:ff:ff:ff


This behaviour can be reproduced after deleting and recreating the bond.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>