Although the debdiff is hereby attached, 3 bugs have fixes carried on
such patch - the main work is done on LP ##1879980 (and the other LP
handled in this SRU is #1879987) .

** Tags added: sts

** Description changed:

- This bug is a follow-up to
+ [Impact]
  
- https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1815268
+ * At present, virtual machines utilizing net_failover network interface
+ configurations are incorrectly configured due to the reliance on the MAC
+ address to identify specific network interfaces.  When net_failover is
+ utilized, multiple interfaces will bear the same MAC address (the
+ net_failover master itself, as well as the interfaces subordinate to
+ it), rendering the MAC address ineffective for unique identification of
+ the interface.  This results in incorrect naming of network interfaces
+ from the "set-name" directive in the netplan configuration.
  
- after applying the 0001-net_failover-delay-taking-over-primary-device-
- to-acc.patch attached in that bug, the VF interface "eth0" is renamed to
- "rename4" instead of "ens4". Log is showing that attempt to rename
- "eth0" to "ens3" failed because of conflict with existing name, so
- that's why it ends up with rename4.
+ * The solution here is to use the interface name instead of the MAC
+ address when the interface is a net_failover master device.  Logic is
+ added on initramfs-tools to check the device type and virtio flags to
+ apply this change only to net_failover master devices.
  
- vsbalakr@ubuntu-18:~$ uname -a
- Linux ubuntu-18 4.15.0-1009-oracle #11+lp1815268 SMP Tue Mar 12 15:20:15 UTC 
2019 x86_64 x86_64 x86_64 GNU/Linux
- vsbalakr@ubuntu-18:~$ ip l 
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode 
DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 
00:00:00:00:00:00 
- 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
mode DEFAULT group default qlen 1000 link/ether ba:fb:9f:12:2f:02 brd 
ff:ff:ff:ff:ff:ff 
- 3: ens3nsby: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 
master ens3 state UP mode DEFAULT group default qlen 1000 link/ether 
ba:fb:9f:12:2f:02 brd ff:ff:ff:ff:ff:ff 
- 4: rename4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ens3 
state UP mode DEFAULT group default qlen 1000 link/ether ba:fb:9f:12:2f:02 brd 
ff:ff:ff:ff:ff:ff
+ [Test Case]
  
- vsbalakr@ubuntu-18:~$ egrep -i '(rename4|busy)' /var/log/syslog
- ...
- Mar 18 11:01:52 ubuntu-18 NetworkManager[1294]: <info> [1552932112.9591] 
device (rename4): carrier: link connected
- Mar 18 11:01:52 ubuntu-18 NetworkManager[1294]: <info> [1552932112.9591] 
device (rename4): enslaved to non-master-type device ens3; ignoring
- Mar 18 11:01:53 ubuntu-18 systemd-udevd[2463]: error changing net interface 
name 'eth0' to 'ens3': Device or resource busy
- Mar 18 11:01:53 ubuntu-18 systemd-udevd[2463]: could not rename interface '4' 
from 'eth0' to 'ens3': Device or resource busy
+ * The change can be tested by configuring a virtual machine with a
+ virtio_net network device with the "failover=on" option to the "-device"
+ option to qemu, e.g.,
  
- Within VM there's netplan config as below:
+ -device virtio-net-
+ 
pci,netdev=hostnet0,id=net0,bus=pci.0,addr=0x3,mac=00:00:17:00:18:04,failover=on
  
- vsbalakr@ubuntu-18:~$ cat /etc/netplan/01-netcfg.yaml
- # This file describes the network interfaces available on your system
- # For more information, see netplan(5).
- network:
-   version: 2
-   renderer: networkd
-   ethernets:
-     ens3:
-       dhcp4: yes
-       gateway4: 10.211.8.1
-       nameservers:
-               addresses: [10.211.11.1,10.209.76.197]
+ * This will set the virtio device "standby" feature bit (bit 62,
+ counting from 0).  This requires a version of qemu with support for this
+ feature.
  
- By running udevadm test, we can see the conflicting ens3 name comes from
- netplan's /run/udev/rules.d/99-netplan-ens3.rules
+ * When so configured, the netplan configuration generated by initramfs
+ will not contain a "macaddress:" match directive for the network
+ interface in question.
  
- vsbalakr@ubuntu-18:~$ cat /run/udev/rules.d/99-netplan-ens3.rules
- SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", 
ATTR{address}=="ba:fb:9f:12:2f:02", NAME="ens3"
+ [Regression Potential]
  
- vsbalakr@ubuntu-18:/lib/udev/rules.d$ udevadm test --action="add" 
/sys/class/net/eth0
- calling: test
- version 237
- This program is for debugging only, it does not run any program
- specified by a RUN key. It may show incorrect results, because
- some values may be different, or not available at a simulation run.
- 
- Load module index
- Parsed configuration file /lib/systemd/network/99-default.link
- Parsed configuration file /run/systemd/network/10-netplan-ens3.link
- Created link configuration context.
- Reading rules file: /lib/udev/rules.d/01-md-raid-creating.rules
- ..
- Reading rules file: /lib/udev/rules.d/99-vmware-scsi-udev.rules
- rules contain 393216 bytes tokens (32768 * 12 bytes), 38638 bytes strings
- 25317 strings (216160 bytes), 21957 de-duplicated (180883 bytes), 3361 trie 
nodes used
- RUN '/lib/open-iscsi/net-interface-handler start' 
/lib/udev/rules.d/70-iscsi-network-interface.rules:2
- IMPORT builtin 'net_id' /lib/udev/rules.d/75-net-description.rules:6
- IMPORT builtin 'hwdb' /lib/udev/rules.d/75-net-description.rules:12
- RUN 'ifupdown-hotplug' /lib/udev/rules.d/80-ifupdown.rules:5
- IMPORT builtin 'path_id' /lib/udev/rules.d/80-net-setup-link.rules:5
- IMPORT builtin 'net_setup_link' /lib/udev/rules.d/80-net-setup-link.rules:9
- Config file /lib/systemd/network/99-default.link applies to device eth0
- link_config: autonegotiation is unset or enabled, the speed and duplex are 
not writable.
- link_config: could not set ethtool features for eth0
- Could not set offload features of eth0: Operation not permitted
- NAME 'ens4' /lib/udev/rules.d/80-net-setup-link.rules:11
- NAME 'ens3' /run/udev/rules.d/99-netplan-ens3.rules:1
- RUN '/lib/systemd/systemd-sysctl --prefix=/net/ipv4/conf/$name 
--prefix=/net/ipv4/neigh/$name --prefix=/net/ipv6/conf/$name 
--prefix=/net/ipv6/neigh/$name' /lib/udev/rules.d/99-systemd.rules:60
- error changing net interface name 'eth0' to 'ens3': Operation not permitted
- could not rename interface '4' from 'eth0' to 'ens3': Operation not permitted
- ACTION=add
- DEVPATH=/devices/pci0000:00/0000:00:04.0/net/eth0
- ID_BUS=pci
- ID_MM_CANDIDATE=1
- ID_MODEL_FROM_DATABASE=Ethernet Connection X552 Virtual Function
- ID_MODEL_ID=0x15a8
- ID_NET_DRIVER=ixgbevf
- ID_NET_LINK_FILE=/lib/systemd/network/99-default.link
- ID_NET_NAME=ens4
- ID_NET_NAME_MAC=enxbafb9f122f02
- ID_NET_NAME_PATH=enp0s4
- ID_NET_NAME_SLOT=ens4
- ID_PATH=pci-0000:00:04.0
- ID_PATH_TAG=pci-0000_00_04_0
- ID_PCI_CLASS_FROM_DATABASE=Network controller
- ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
- ID_VENDOR_FROM_DATABASE=Intel Corporation
- ID_VENDOR_ID=0x8086
- IFINDEX=4
- INTERFACE=eth0
- SUBSYSTEM=net
- SYSTEMD_ALIAS=/sys/subsystem/net/devices/ens3
- TAGS=:systemd:
- USEC_INITIALIZED=202183958
- run: '/lib/open-iscsi/net-interface-handler start'
- run: 'ifupdown-hotplug'
- run: '/lib/systemd/systemd-sysctl --prefix=/net/ipv4/conf/ens3 
--prefix=/net/ipv4/neigh/ens3 --prefix=/net/ipv6/conf/ens3 
--prefix=/net/ipv6/neigh/ens3'
- Unload module index
- Unloaded link configuration context.
- 
- So with regard to failover 3-netdev model, MAC address is not sufficient
- to serve as the key to identify individual interface. Unfortunately
- driver attribute is not sufficient either, the failover master and
- standy slave share the same driver under virtio_net. There should be
- other new attribute to introduce in order to correctly identify the
- interface belonging to 3-netdev.
+ * Erroneous identification of a network interface as a net_failover
+ master device could lead to omission of a macaddress directive, causing
+ interfaces to be incorrectly named.

** Patch added: "bionic_initramfs_lp1879980_V2.debdiff"
   
https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1820929/+attachment/5401088/+files/bionic_initramfs_lp1879980_V2.debdiff

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1820929

Title:
  netplan should consider adding more udev attribute for exact matching
  of failover 3-netdev interfaces

To manage notifications about this bug go to:
https://bugs.launchpad.net/netplan/+bug/1820929/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to