To avoid the patch in #7, you can set vlan-raw-device explicitly:
-----
auto eno1.100
iface eno1.100 inet manual
vlan-raw-device eno1
-----
Note that if you link this to a bridge, then bringing up the bridge doesn't bring up the vlan bridge ports:
-----
auto eno1.100
iface eno1.100 inet manual
vlan-raw-device eno1
auto br100
iface br100 inet manual
bridge_ports eno1.100
bridge_stp off
bridge_fd 0
bridge_maxwait 0
-----
Result:
-----
# ifup br100
interface eno1.100 does not exist!
# brctl show br100
bridge name bridge id STP enabled interfaces
br100 8000.000000000000 no
# cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
#
-----
But it *does* work if you explicitly bring up the interface first: in fact, that also brings up the bridge.
-----
# ifdown br100
# ifup eno1.100
# brctl show br100
bridge name bridge id STP enabled interfaces
br100 8000.001fc69bf7eb no eno1.100
# ifup br100
ifup: interface br100 already configured
#
-----
To avoid the patch in #7, you can set vlan-raw-device explicitly:
-----
auto eno1.100
iface eno1.100 inet manual
vlan-raw-device eno1
-----
Note that if you link this to a bridge, then bringing up the bridge doesn't bring up the vlan bridge ports:
-----
auto eno1.100
iface eno1.100 inet manual
vlan-raw-device eno1
auto br100
iface br100 inet manual
bridge_ports eno1.100
bridge_stp off
bridge_fd 0
bridge_maxwait 0
-----
Result:
----- vlan/config TYPE_RAW_ PLUS_VID_ NO_PAD
# ifup br100
interface eno1.100 does not exist!
# brctl show br100
bridge name bridge id STP enabled interfaces
br100 8000.000000000000 no
# cat /proc/net/
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_
#
-----
But it *does* work if you explicitly bring up the interface first: in fact, that also brings up the bridge.
-----
# ifdown br100
# ifup eno1.100
# brctl show br100
bridge name bridge id STP enabled interfaces
br100 8000.001fc69bf7eb no eno1.100
# ifup br100
ifup: interface br100 already configured
#
-----