[Bug 1846232] Re: networkd pads interface MTU by 4 bytes for vlan even when told not to

Dan Streetman ddstreet at canonical.com
Tue Dec 10 16:12:45 UTC 2019


** Description changed:

+ [impact]
+ 
+ vlan interface has wrong mtu, which may cause lost packets due to
+ incorrect mtu
+ 
+ [test case]
+ 
+ configure a system using the netplan cfg similar to comment 2.
+ 
+ alternately, networkd config can be used, similar to:
+ 
+ ubuntu at lp1846232-e:/run/systemd/network$ grep . *
+ 10-netplan-ens3.2667.netdev:[NetDev]
+ 10-netplan-ens3.2667.netdev:Name=ens3.2667
+ 10-netplan-ens3.2667.netdev:MTUBytes=1500
+ 10-netplan-ens3.2667.netdev:Kind=vlan
+ 10-netplan-ens3.2667.netdev:[VLAN]
+ 10-netplan-ens3.2667.netdev:Id=2667
+ 10-netplan-ens3.2667.network:[Match]
+ 10-netplan-ens3.2667.network:Name=ens3.2667
+ 10-netplan-ens3.2667.network:[Network]
+ 10-netplan-ens3.2667.network:LinkLocalAddressing=ipv6
+ 10-netplan-ens3.2667.network:Address=1.2.3.4/32
+ 10-netplan-ens3.2667.network:ConfigureWithoutCarrier=yes
+ 10-netplan-ens3.link:[Match]
+ 10-netplan-ens3.link:OriginalName=ens3
+ 10-netplan-ens3.link:[Link]
+ 10-netplan-ens3.link:WakeOnLan=off
+ 10-netplan-ens3.link:MTUBytes=1500
+ 10-netplan-ens3.network:[Match]
+ 10-netplan-ens3.network:Name=ens3
+ 10-netplan-ens3.network:[Network]
+ 10-netplan-ens3.network:LinkLocalAddressing=ipv6
+ 10-netplan-ens3.network:VLAN=ens3.2667
+ 
+ 
+ The reboot and check the mtus:
+ 
+ ubuntu at lp1846232-e:~$ ip l show ens3
+ 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
+     link/ether 52:54:00:12:99:1b brd ff:ff:ff:ff:ff:ff
+ ubuntu at lp1846232-e:~$ ip l show ens3.2667
+ 3: ens3.2667 at ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
+     link/ether 52:54:00:12:99:1b brd ff:ff:ff:ff:ff:ff
+ 
+ 
+ The base interface should have a mtu of only 1500.
+ 
+ [regression potential]
+ 
+ As this corrects/adjusts the mtu of the interface, regressions would
+ likely involve interface(s) being assigned incorrect mtu values, which
+ then would lead to dropped packets and/or lowered network performance.
+ 
+ [other info]
+ 
+ disco and earlier don't have the patch that introduces this problem, and
+ focal already has the patch that fixes this (see comment 4 for details),
+ so this is needed only for eoan.
+ 
+ original description:
+ 
+ ---
+ 
+ 
  From https://jenkins.ubuntu.com/server/job/curtin-vmtest-devel-
  amd64/916/console:
  
  ======================================================================
  FAIL: test_ip_output (vmtests.test_network_vlan.EoanTestNetworkVlan)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
-   File "/var/lib/jenkins/servers/server/workspace/curtin-vmtest-devel-amd64/curtin-916/tests/vmtests/test_network.py", line 311, in test_ip_output
-     routes)
-   File "/var/lib/jenkins/servers/server/workspace/curtin-vmtest-devel-amd64/curtin-916/tests/vmtests/test_network.py", line 337, in check_interface
-     int(ipcfg[key]))
+   File "/var/lib/jenkins/servers/server/workspace/curtin-vmtest-devel-amd64/curtin-916/tests/vmtests/test_network.py", line 311, in test_ip_output
+     routes)
+   File "/var/lib/jenkins/servers/server/workspace/curtin-vmtest-devel-amd64/curtin-916/tests/vmtests/test_network.py", line 337, in check_interface
+     int(ipcfg[key]))
  AssertionError: 1500 != 1504
  -------------------- >> begin captured stdout << ---------------------
  parsed ip_a dict:
  interface0:
-     broadcast: 10.245.175.255
-     group: default
-     inet4:
-     -   address: 10.245.168.16
-         prefixlen: '21'
-         scope: global
-         valid_lft: forever
-     inet6:
-     -   address: fec0::d6be:d9ff:fea8:4913
-         prefixlen: '64'
-         scope: site
-         valid_lft: 86256sec
-     -   address: fe80::d6be:d9ff:fea8:4913
-         prefixlen: '64'
-         scope: link
-         valid_lft: forever
-     interface: interface0
-     loopback: false
-     lower_up: false
-     mac_address: d4:be:d9:a8:49:13
-     mtu: '1500'
-     multicast: false
-     qdisc: fq_codel
-     qlen: '1000'
-     running: false
-     state: UP
-     up: false
+     broadcast: 10.245.175.255
+     group: default
+     inet4:
+     -   address: 10.245.168.16
+         prefixlen: '21'
+         scope: global
+         valid_lft: forever
+     inet6:
+     -   address: fec0::d6be:d9ff:fea8:4913
+         prefixlen: '64'
+         scope: site
+         valid_lft: 86256sec
+     -   address: fe80::d6be:d9ff:fea8:4913
+         prefixlen: '64'
+         scope: link
+         valid_lft: forever
+     interface: interface0
+     loopback: false
+     lower_up: false
+     mac_address: d4:be:d9:a8:49:13
+     mtu: '1500'
+     multicast: false
+     qdisc: fq_codel
+     qlen: '1000'
+     running: false
+     state: UP
+     up: false
  interface1:
-     broadcast: 10.245.188.255
-     group: default
-     inet4:
-     -   address: 10.245.188.2
-         prefixlen: '24'
-         scope: global
-         valid_lft: forever
-     inet6:
-     -   address: fec0::d6be:d9ff:fea8:4915
-         prefixlen: '64'
-         scope: site
-         valid_lft: 86256sec
-     -   address: fe80::d6be:d9ff:fea8:4915
-         prefixlen: '64'
-         scope: link
-         valid_lft: forever
-     interface: interface1
-     loopback: false
-     lower_up: false
-     mac_address: d4:be:d9:a8:49:15
-     mtu: '1504'
-     multicast: false
-     qdisc: fq_codel
-     qlen: '1000'
-     running: false
-     state: UP
-     up: false
+     broadcast: 10.245.188.255
+     group: default
+     inet4:
+     -   address: 10.245.188.2
+         prefixlen: '24'
+         scope: global
+         valid_lft: forever
+     inet6:
+     -   address: fec0::d6be:d9ff:fea8:4915
+         prefixlen: '64'
+         scope: site
+         valid_lft: 86256sec
+     -   address: fe80::d6be:d9ff:fea8:4915
+         prefixlen: '64'
+         scope: link
+         valid_lft: forever
+     interface: interface1
+     loopback: false
+     lower_up: false
+     mac_address: d4:be:d9:a8:49:15
+     mtu: '1504'
+     multicast: false
+     qdisc: fq_codel
+     qlen: '1000'
+     running: false
+     state: UP
+     up: false
  interface1.2667:
-     broadcast: 10.245.184.255
-     group: default
-     inet4:
-     -   address: 10.245.184.2
-         prefixlen: '24'
-         scope: global
-         valid_lft: forever
-     inet6:
-     -   address: fe80::d6be:d9ff:fea8:4915
-         prefixlen: '64'
-         scope: link
-         valid_lft: forever
-     interface: interface1.2667
-     loopback: false
-     lower_up: false
-     mac_address: d4:be:d9:a8:49:15
-     mtu: '1500'
-     multicast: false
-     qdisc: noqueue
-     qlen: '1000'
-     running: false
-     state: UP
-     up: false
-     vlan_link: interface1
+     broadcast: 10.245.184.255
+     group: default
+     inet4:
+     -   address: 10.245.184.2
+         prefixlen: '24'
+         scope: global
+         valid_lft: forever
+     inet6:
+     -   address: fe80::d6be:d9ff:fea8:4915
+         prefixlen: '64'
+         scope: link
+         valid_lft: forever
+     interface: interface1.2667
+     loopback: false
+     lower_up: false
+     mac_address: d4:be:d9:a8:49:15
+     mtu: '1500'
+     multicast: false
+     qdisc: noqueue
+     qlen: '1000'
+     running: false
+     state: UP
+     up: false
+     vlan_link: interface1
  interface1.2668:
-     broadcast: 10.245.185.255
-     group: default
-     inet4:
-     -   address: 10.245.185.1
-         prefixlen: '24'
-         scope: global
-         valid_lft: forever
-     inet6:
-     -   address: fe80::d6be:d9ff:fea8:4915
-         prefixlen: '64'
-         scope: link
-         valid_lft: forever
-     interface: interface1.2668
-     loopback: false
-     lower_up: false
-     mac_address: d4:be:d9:a8:49:15
-     mtu: '1500'
-     multicast: false
-     qdisc: noqueue
-     qlen: '1000'
-     running: false
-     state: UP
-     up: false
-     vlan_link: interface1
+     broadcast: 10.245.185.255
+     group: default
+     inet4:
+     -   address: 10.245.185.1
+         prefixlen: '24'
+         scope: global
+         valid_lft: forever
+     inet6:
+     -   address: fe80::d6be:d9ff:fea8:4915
+         prefixlen: '64'
+         scope: link
+         valid_lft: forever
+     interface: interface1.2668
+     loopback: false
+     lower_up: false
+     mac_address: d4:be:d9:a8:49:15
+     mtu: '1500'
+     multicast: false
+     qdisc: noqueue
+     qlen: '1000'
+     running: false
+     state: UP
+     up: false
+     vlan_link: interface1
  interface1.2669:
-     broadcast: 10.245.186.255
-     group: default
-     inet4:
-     -   address: 10.245.186.1
-         prefixlen: '24'
-         scope: global
-         valid_lft: forever
-     inet6:
-     -   address: fe80::d6be:d9ff:fea8:4915
-         prefixlen: '64'
-         scope: link
-         valid_lft: forever
-     interface: interface1.2669
-     loopback: false
-     lower_up: false
-     mac_address: d4:be:d9:a8:49:15
-     mtu: '1500'
-     multicast: false
-     qdisc: noqueue
-     qlen: '1000'
-     running: false
-     state: UP
-     up: false
-     vlan_link: interface1
+     broadcast: 10.245.186.255
+     group: default
+     inet4:
+     -   address: 10.245.186.1
+         prefixlen: '24'
+         scope: global
+         valid_lft: forever
+     inet6:
+     -   address: fe80::d6be:d9ff:fea8:4915
+         prefixlen: '64'
+         scope: link
+         valid_lft: forever
+     interface: interface1.2669
+     loopback: false
+     lower_up: false
+     mac_address: d4:be:d9:a8:49:15
+     mtu: '1500'
+     multicast: false
+     qdisc: noqueue
+     qlen: '1000'
+     running: false
+     state: UP
+     up: false
+     vlan_link: interface1
  interface1.2670:
-     broadcast: 10.245.187.255
-     group: default
-     inet4:
-     -   address: 10.245.187.2
-         prefixlen: '24'
-         scope: global
-         valid_lft: forever
-     inet6:
-     -   address: fe80::d6be:d9ff:fea8:4915
-         prefixlen: '64'
-         scope: link
-         valid_lft: forever
-     interface: interface1.2670
-     loopback: false
-     lower_up: false
-     mac_address: d4:be:d9:a8:49:15
-     mtu: '1500'
-     multicast: false
-     qdisc: noqueue
-     qlen: '1000'
-     running: false
-     state: UP
-     up: false
-     vlan_link: interface1
+     broadcast: 10.245.187.255
+     group: default
+     inet4:
+     -   address: 10.245.187.2
+         prefixlen: '24'
+         scope: global
+         valid_lft: forever
+     inet6:
+     -   address: fe80::d6be:d9ff:fea8:4915
+         prefixlen: '64'
+         scope: link
+         valid_lft: forever
+     interface: interface1.2670
+     loopback: false
+     lower_up: false
+     mac_address: d4:be:d9:a8:49:15
+     mtu: '1500'
+     multicast: false
+     qdisc: noqueue
+     qlen: '1000'
+     running: false
+     state: UP
+     up: false
+     vlan_link: interface1
  interface2:
-     broadcast: ff:ff:ff:ff:ff:ff
-     group: default
-     inet4: []
-     inet6:
-     -   address: fec0::d6be:d9ff:fea8:4917
-         prefixlen: '64'
-         scope: site
-         valid_lft: 86256sec
-     -   address: fe80::d6be:d9ff:fea8:4917
-         prefixlen: '64'
-         scope: link
-         valid_lft: forever
-     interface: interface2
-     loopback: false
-     lower_up: false
-     mac_address: d4:be:d9:a8:49:17
-     mtu: '1500'
-     multicast: false
-     qdisc: fq_codel
-     qlen: '1000'
-     running: false
-     state: UP
-     up: false
+     broadcast: ff:ff:ff:ff:ff:ff
+     group: default
+     inet4: []
+     inet6:
+     -   address: fec0::d6be:d9ff:fea8:4917
+         prefixlen: '64'
+         scope: site
+         valid_lft: 86256sec
+     -   address: fe80::d6be:d9ff:fea8:4917
+         prefixlen: '64'
+         scope: link
+         valid_lft: forever
+     interface: interface2
+     loopback: false
+     lower_up: false
+     mac_address: d4:be:d9:a8:49:17
+     mtu: '1500'
+     multicast: false
+     qdisc: fq_codel
+     qlen: '1000'
+     running: false
+     state: UP
+     up: false
  interface3:
-     broadcast: ff:ff:ff:ff:ff:ff
-     group: default
-     inet4: []
-     inet6:
-     -   address: fec0::d6be:d9ff:fea8:4919
-         prefixlen: '64'
-         scope: site
-         valid_lft: 86255sec
-     -   address: fe80::d6be:d9ff:fea8:4919
-         prefixlen: '64'
-         scope: link
-         valid_lft: forever
-     interface: interface3
-     loopback: false
-     lower_up: false
-     mac_address: d4:be:d9:a8:49:19
-     mtu: '1500'
-     multicast: false
-     qdisc: fq_codel
-     qlen: '1000'
-     running: false
-     state: UP
-     up: false
+     broadcast: ff:ff:ff:ff:ff:ff
+     group: default
+     inet4: []
+     inet6:
+     -   address: fec0::d6be:d9ff:fea8:4919
+         prefixlen: '64'
+         scope: site
+         valid_lft: 86255sec
+     -   address: fe80::d6be:d9ff:fea8:4919
+         prefixlen: '64'
+         scope: link
+         valid_lft: forever
+     interface: interface3
+     loopback: false
+     lower_up: false
+     mac_address: d4:be:d9:a8:49:19
+     mtu: '1500'
+     multicast: false
+     qdisc: fq_codel
+     qlen: '1000'
+     running: false
+     state: UP
+     up: false
  lo:
-     broadcast: 00:00:00:00:00:00
-     group: default
-     inet4:
-     -   address: 127.0.0.1
-         prefixlen: '8'
-         scope: host
-         valid_lft: forever
-     inet6:
-     -   address: ::1
-         prefixlen: '128'
-         scope: host
-         valid_lft: forever
-     interface: lo
-     loopback: false
-     lower_up: false
-     mtu: '65536'
-     multicast: false
-     qdisc: noqueue
-     qlen: '1000'
-     running: false
-     state: UNKNOWN
-     up: false
- 
- ip_route_show: line: 10.245.168.0/21 dev interface0 proto kernel scope link src 10.245.168.16 
- ip_route_show: line: 10.245.184.0/24 dev interface1.2667 proto kernel scope link src 10.245.184.2 
- ip_route_show: line: 10.245.185.0/24 dev interface1.2668 proto kernel scope link src 10.245.185.1 
- ip_route_show: line: 10.245.186.0/24 dev interface1.2669 proto kernel scope link src 10.245.186.1 
- ip_route_show: line: 10.245.187.0/24 dev interface1.2670 proto kernel scope link src 10.245.187.2 
- ip_route_show: line: 10.245.188.0/24 dev interface1 proto kernel scope link src 10.245.188.2 
+     broadcast: 00:00:00:00:00:00
+     group: default
+     inet4:
+     -   address: 127.0.0.1
+         prefixlen: '8'
+         scope: host
+         valid_lft: forever
+     inet6:
+     -   address: ::1
+         prefixlen: '128'
+         scope: host
+         valid_lft: forever
+     interface: lo
+     loopback: false
+     lower_up: false
+     mtu: '65536'
+     multicast: false
+     qdisc: noqueue
+     qlen: '1000'
+     running: false
+     state: UNKNOWN
+     up: false
+ 
+ ip_route_show: line: 10.245.168.0/21 dev interface0 proto kernel scope link src 10.245.168.16
+ ip_route_show: line: 10.245.184.0/24 dev interface1.2667 proto kernel scope link src 10.245.184.2
+ ip_route_show: line: 10.245.185.0/24 dev interface1.2668 proto kernel scope link src 10.245.185.1
+ ip_route_show: line: 10.245.186.0/24 dev interface1.2669 proto kernel scope link src 10.245.186.1
+ ip_route_show: line: 10.245.187.0/24 dev interface1.2670 proto kernel scope link src 10.245.187.2
+ ip_route_show: line: 10.245.188.0/24 dev interface1 proto kernel scope link src 10.245.188.2
  
  network_state iface: address: null
  control: auto
  gateway: null
  index: 0
  inet: inet
  mac_address: d4:be:d9:a8:49:13
  mode: static
  mtu: 1500
  name: interface0
  subnets:
  -   address: 10.245.168.16/21
-     dns_nameservers:
-     - 10.245.168.2
-     gateway: 10.245.168.1
-     type: static
+     dns_nameservers:
+     - 10.245.168.2
+     gateway: 10.245.168.1
+     type: static
  type: physical
  
  check_interface: testing ifname:interface0
  iface:
  {'name': 'interface0', 'type': 'physical', 'mac_address': 'd4:be:d9:a8:49:13', 'inet': 'inet', 'mode': 'static', 'mtu': 1500, 'address': None, 'gateway': None, 'subnets': [{'address': '10.245.168.16/21', 'dns_nameservers': ['10.245.168.2'], 'gateway': '10.245.168.1', 'type': 'static'}], 'index': 0, 'control': 'auto'}
  
  ipcfg:
  {'inet4': [{'address': '10.245.168.16', 'prefixlen': '21', 'scope': 'global', 'valid_lft': 'forever'}], 'inet6': [{'address': 'fec0::d6be:d9ff:fea8:4913', 'prefixlen': '64', 'scope': 'site', 'valid_lft': '86256sec'}, {'address': 'fe80::d6be:d9ff:fea8:4913', 'prefixlen': '64', 'scope': 'link', 'valid_lft': 'forever'}], 'interface': 'interface0', 'broadcast': '10.245.175.255', 'loopback': False, 'lower_up': False, 'multicast': False, 'running': False, 'up': False, 'mtu': '1500', 'qdisc': 'fq_codel', 'state': 'UP', 'group': 'default', 'qlen': '1000', 'mac_address': 'd4:be:d9:a8:49:13'}
  ifname=interface0
  ipcfg['interface']=interface0
  checking mac on iface: interface0
  checking mtu on iface: interface0
  validating subnet:
  {'address': '10.245.168.16/21', 'dns_nameservers': ['10.245.168.2'], 'gateway': '10.245.168.1', 'type': 'static'}
  found addresses: [{'address': '10.245.168.16', 'prefixlen': '21', 'scope': 'global', 'valid_lft': 'forever'}]
  cur ip={'address': '10.245.168.16', 'prefixlen': '21', 'scope': 'global', 'valid_lft': 'forever'}
  subnet={'address': '10.245.168.16/21', 'dns_nameservers': ['10.245.168.2'], 'gateway': '10.245.168.1', 'type': 'static'}
  found a match!
  returning inet iface
  iface:interface0 configured_gws: ['10.245.168.1']
  found_gws: ['default via 10.245.168.1 dev interface0 proto static ']
  expected: ['10.245.168.1']
  
  network_state iface: address: null
  control: auto
  gateway: null
  index: 0
  inet: inet
  mac_address: d4:be:d9:a8:49:15
  mode: static
  mtu: 1500
  name: interface1
  subnets:
  -   address: 10.245.188.2/24
-     dns_nameservers: []
-     type: static
+     dns_nameservers: []
+     type: static
  type: physical
  
  check_interface: testing ifname:interface1
  iface:
  {'name': 'interface1', 'type': 'physical', 'mac_address': 'd4:be:d9:a8:49:15', 'inet': 'inet', 'mode': 'static', 'mtu': 1500, 'address': None, 'gateway': None, 'subnets': [{'address': '10.245.188.2/24', 'dns_nameservers': [], 'type': 'static'}], 'index': 0, 'control': 'auto'}
  
  ipcfg:
  {'inet4': [{'address': '10.245.188.2', 'prefixlen': '24', 'scope': 'global', 'valid_lft': 'forever'}], 'inet6': [{'address': 'fec0::d6be:d9ff:fea8:4915', 'prefixlen': '64', 'scope': 'site', 'valid_lft': '86256sec'}, {'address': 'fe80::d6be:d9ff:fea8:4915', 'prefixlen': '64', 'scope': 'link', 'valid_lft': 'forever'}], 'interface': 'interface1', 'broadcast': '10.245.188.255', 'loopback': False, 'lower_up': False, 'multicast': False, 'running': False, 'up': False, 'mtu': '1504', 'qdisc': 'fq_codel', 'state': 'UP', 'group': 'default', 'qlen': '1000', 'mac_address': 'd4:be:d9:a8:49:15'}
  ifname=interface1
  ipcfg['interface']=interface1
  checking mac on iface: interface1
  checking mtu on iface: interface1
  
  --------------------- >> end captured stdout << ----------------------

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

Title:
  networkd pads interface MTU by 4 bytes for vlan even when told not to

Status in curtin:
  Invalid
Status in systemd:
  Fix Released
Status in systemd package in Ubuntu:
  Fix Released
Status in systemd source package in Eoan:
  In Progress

Bug description:
  [impact]

  vlan interface has wrong mtu, which may cause lost packets due to
  incorrect mtu

  [test case]

  configure a system using the netplan cfg similar to comment 2.

  alternately, networkd config can be used, similar to:

  ubuntu at lp1846232-e:/run/systemd/network$ grep . *
  10-netplan-ens3.2667.netdev:[NetDev]
  10-netplan-ens3.2667.netdev:Name=ens3.2667
  10-netplan-ens3.2667.netdev:MTUBytes=1500
  10-netplan-ens3.2667.netdev:Kind=vlan
  10-netplan-ens3.2667.netdev:[VLAN]
  10-netplan-ens3.2667.netdev:Id=2667
  10-netplan-ens3.2667.network:[Match]
  10-netplan-ens3.2667.network:Name=ens3.2667
  10-netplan-ens3.2667.network:[Network]
  10-netplan-ens3.2667.network:LinkLocalAddressing=ipv6
  10-netplan-ens3.2667.network:Address=1.2.3.4/32
  10-netplan-ens3.2667.network:ConfigureWithoutCarrier=yes
  10-netplan-ens3.link:[Match]
  10-netplan-ens3.link:OriginalName=ens3
  10-netplan-ens3.link:[Link]
  10-netplan-ens3.link:WakeOnLan=off
  10-netplan-ens3.link:MTUBytes=1500
  10-netplan-ens3.network:[Match]
  10-netplan-ens3.network:Name=ens3
  10-netplan-ens3.network:[Network]
  10-netplan-ens3.network:LinkLocalAddressing=ipv6
  10-netplan-ens3.network:VLAN=ens3.2667

  
  The reboot and check the mtus:

  ubuntu at lp1846232-e:~$ ip l show ens3
  2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
      link/ether 52:54:00:12:99:1b brd ff:ff:ff:ff:ff:ff
  ubuntu at lp1846232-e:~$ ip l show ens3.2667
  3: ens3.2667 at ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
      link/ether 52:54:00:12:99:1b brd ff:ff:ff:ff:ff:ff

  
  The base interface should have a mtu of only 1500.

  [regression potential]

  As this corrects/adjusts the mtu of the interface, regressions would
  likely involve interface(s) being assigned incorrect mtu values, which
  then would lead to dropped packets and/or lowered network performance.

  [other info]

  disco and earlier don't have the patch that introduces this problem,
  and focal already has the patch that fixes this (see comment 4 for
  details), so this is needed only for eoan.

  original description:

  ---


  From https://jenkins.ubuntu.com/server/job/curtin-vmtest-devel-
  amd64/916/console:

  ======================================================================
  FAIL: test_ip_output (vmtests.test_network_vlan.EoanTestNetworkVlan)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "/var/lib/jenkins/servers/server/workspace/curtin-vmtest-devel-amd64/curtin-916/tests/vmtests/test_network.py", line 311, in test_ip_output
      routes)
    File "/var/lib/jenkins/servers/server/workspace/curtin-vmtest-devel-amd64/curtin-916/tests/vmtests/test_network.py", line 337, in check_interface
      int(ipcfg[key]))
  AssertionError: 1500 != 1504
  -------------------- >> begin captured stdout << ---------------------
  parsed ip_a dict:
  interface0:
      broadcast: 10.245.175.255
      group: default
      inet4:
      -   address: 10.245.168.16
          prefixlen: '21'
          scope: global
          valid_lft: forever
      inet6:
      -   address: fec0::d6be:d9ff:fea8:4913
          prefixlen: '64'
          scope: site
          valid_lft: 86256sec
      -   address: fe80::d6be:d9ff:fea8:4913
          prefixlen: '64'
          scope: link
          valid_lft: forever
      interface: interface0
      loopback: false
      lower_up: false
      mac_address: d4:be:d9:a8:49:13
      mtu: '1500'
      multicast: false
      qdisc: fq_codel
      qlen: '1000'
      running: false
      state: UP
      up: false
  interface1:
      broadcast: 10.245.188.255
      group: default
      inet4:
      -   address: 10.245.188.2
          prefixlen: '24'
          scope: global
          valid_lft: forever
      inet6:
      -   address: fec0::d6be:d9ff:fea8:4915
          prefixlen: '64'
          scope: site
          valid_lft: 86256sec
      -   address: fe80::d6be:d9ff:fea8:4915
          prefixlen: '64'
          scope: link
          valid_lft: forever
      interface: interface1
      loopback: false
      lower_up: false
      mac_address: d4:be:d9:a8:49:15
      mtu: '1504'
      multicast: false
      qdisc: fq_codel
      qlen: '1000'
      running: false
      state: UP
      up: false
  interface1.2667:
      broadcast: 10.245.184.255
      group: default
      inet4:
      -   address: 10.245.184.2
          prefixlen: '24'
          scope: global
          valid_lft: forever
      inet6:
      -   address: fe80::d6be:d9ff:fea8:4915
          prefixlen: '64'
          scope: link
          valid_lft: forever
      interface: interface1.2667
      loopback: false
      lower_up: false
      mac_address: d4:be:d9:a8:49:15
      mtu: '1500'
      multicast: false
      qdisc: noqueue
      qlen: '1000'
      running: false
      state: UP
      up: false
      vlan_link: interface1
  interface1.2668:
      broadcast: 10.245.185.255
      group: default
      inet4:
      -   address: 10.245.185.1
          prefixlen: '24'
          scope: global
          valid_lft: forever
      inet6:
      -   address: fe80::d6be:d9ff:fea8:4915
          prefixlen: '64'
          scope: link
          valid_lft: forever
      interface: interface1.2668
      loopback: false
      lower_up: false
      mac_address: d4:be:d9:a8:49:15
      mtu: '1500'
      multicast: false
      qdisc: noqueue
      qlen: '1000'
      running: false
      state: UP
      up: false
      vlan_link: interface1
  interface1.2669:
      broadcast: 10.245.186.255
      group: default
      inet4:
      -   address: 10.245.186.1
          prefixlen: '24'
          scope: global
          valid_lft: forever
      inet6:
      -   address: fe80::d6be:d9ff:fea8:4915
          prefixlen: '64'
          scope: link
          valid_lft: forever
      interface: interface1.2669
      loopback: false
      lower_up: false
      mac_address: d4:be:d9:a8:49:15
      mtu: '1500'
      multicast: false
      qdisc: noqueue
      qlen: '1000'
      running: false
      state: UP
      up: false
      vlan_link: interface1
  interface1.2670:
      broadcast: 10.245.187.255
      group: default
      inet4:
      -   address: 10.245.187.2
          prefixlen: '24'
          scope: global
          valid_lft: forever
      inet6:
      -   address: fe80::d6be:d9ff:fea8:4915
          prefixlen: '64'
          scope: link
          valid_lft: forever
      interface: interface1.2670
      loopback: false
      lower_up: false
      mac_address: d4:be:d9:a8:49:15
      mtu: '1500'
      multicast: false
      qdisc: noqueue
      qlen: '1000'
      running: false
      state: UP
      up: false
      vlan_link: interface1
  interface2:
      broadcast: ff:ff:ff:ff:ff:ff
      group: default
      inet4: []
      inet6:
      -   address: fec0::d6be:d9ff:fea8:4917
          prefixlen: '64'
          scope: site
          valid_lft: 86256sec
      -   address: fe80::d6be:d9ff:fea8:4917
          prefixlen: '64'
          scope: link
          valid_lft: forever
      interface: interface2
      loopback: false
      lower_up: false
      mac_address: d4:be:d9:a8:49:17
      mtu: '1500'
      multicast: false
      qdisc: fq_codel
      qlen: '1000'
      running: false
      state: UP
      up: false
  interface3:
      broadcast: ff:ff:ff:ff:ff:ff
      group: default
      inet4: []
      inet6:
      -   address: fec0::d6be:d9ff:fea8:4919
          prefixlen: '64'
          scope: site
          valid_lft: 86255sec
      -   address: fe80::d6be:d9ff:fea8:4919
          prefixlen: '64'
          scope: link
          valid_lft: forever
      interface: interface3
      loopback: false
      lower_up: false
      mac_address: d4:be:d9:a8:49:19
      mtu: '1500'
      multicast: false
      qdisc: fq_codel
      qlen: '1000'
      running: false
      state: UP
      up: false
  lo:
      broadcast: 00:00:00:00:00:00
      group: default
      inet4:
      -   address: 127.0.0.1
          prefixlen: '8'
          scope: host
          valid_lft: forever
      inet6:
      -   address: ::1
          prefixlen: '128'
          scope: host
          valid_lft: forever
      interface: lo
      loopback: false
      lower_up: false
      mtu: '65536'
      multicast: false
      qdisc: noqueue
      qlen: '1000'
      running: false
      state: UNKNOWN
      up: false

  ip_route_show: line: 10.245.168.0/21 dev interface0 proto kernel scope link src 10.245.168.16
  ip_route_show: line: 10.245.184.0/24 dev interface1.2667 proto kernel scope link src 10.245.184.2
  ip_route_show: line: 10.245.185.0/24 dev interface1.2668 proto kernel scope link src 10.245.185.1
  ip_route_show: line: 10.245.186.0/24 dev interface1.2669 proto kernel scope link src 10.245.186.1
  ip_route_show: line: 10.245.187.0/24 dev interface1.2670 proto kernel scope link src 10.245.187.2
  ip_route_show: line: 10.245.188.0/24 dev interface1 proto kernel scope link src 10.245.188.2

  network_state iface: address: null
  control: auto
  gateway: null
  index: 0
  inet: inet
  mac_address: d4:be:d9:a8:49:13
  mode: static
  mtu: 1500
  name: interface0
  subnets:
  -   address: 10.245.168.16/21
      dns_nameservers:
      - 10.245.168.2
      gateway: 10.245.168.1
      type: static
  type: physical

  check_interface: testing ifname:interface0
  iface:
  {'name': 'interface0', 'type': 'physical', 'mac_address': 'd4:be:d9:a8:49:13', 'inet': 'inet', 'mode': 'static', 'mtu': 1500, 'address': None, 'gateway': None, 'subnets': [{'address': '10.245.168.16/21', 'dns_nameservers': ['10.245.168.2'], 'gateway': '10.245.168.1', 'type': 'static'}], 'index': 0, 'control': 'auto'}

  ipcfg:
  {'inet4': [{'address': '10.245.168.16', 'prefixlen': '21', 'scope': 'global', 'valid_lft': 'forever'}], 'inet6': [{'address': 'fec0::d6be:d9ff:fea8:4913', 'prefixlen': '64', 'scope': 'site', 'valid_lft': '86256sec'}, {'address': 'fe80::d6be:d9ff:fea8:4913', 'prefixlen': '64', 'scope': 'link', 'valid_lft': 'forever'}], 'interface': 'interface0', 'broadcast': '10.245.175.255', 'loopback': False, 'lower_up': False, 'multicast': False, 'running': False, 'up': False, 'mtu': '1500', 'qdisc': 'fq_codel', 'state': 'UP', 'group': 'default', 'qlen': '1000', 'mac_address': 'd4:be:d9:a8:49:13'}
  ifname=interface0
  ipcfg['interface']=interface0
  checking mac on iface: interface0
  checking mtu on iface: interface0
  validating subnet:
  {'address': '10.245.168.16/21', 'dns_nameservers': ['10.245.168.2'], 'gateway': '10.245.168.1', 'type': 'static'}
  found addresses: [{'address': '10.245.168.16', 'prefixlen': '21', 'scope': 'global', 'valid_lft': 'forever'}]
  cur ip={'address': '10.245.168.16', 'prefixlen': '21', 'scope': 'global', 'valid_lft': 'forever'}
  subnet={'address': '10.245.168.16/21', 'dns_nameservers': ['10.245.168.2'], 'gateway': '10.245.168.1', 'type': 'static'}
  found a match!
  returning inet iface
  iface:interface0 configured_gws: ['10.245.168.1']
  found_gws: ['default via 10.245.168.1 dev interface0 proto static ']
  expected: ['10.245.168.1']

  network_state iface: address: null
  control: auto
  gateway: null
  index: 0
  inet: inet
  mac_address: d4:be:d9:a8:49:15
  mode: static
  mtu: 1500
  name: interface1
  subnets:
  -   address: 10.245.188.2/24
      dns_nameservers: []
      type: static
  type: physical

  check_interface: testing ifname:interface1
  iface:
  {'name': 'interface1', 'type': 'physical', 'mac_address': 'd4:be:d9:a8:49:15', 'inet': 'inet', 'mode': 'static', 'mtu': 1500, 'address': None, 'gateway': None, 'subnets': [{'address': '10.245.188.2/24', 'dns_nameservers': [], 'type': 'static'}], 'index': 0, 'control': 'auto'}

  ipcfg:
  {'inet4': [{'address': '10.245.188.2', 'prefixlen': '24', 'scope': 'global', 'valid_lft': 'forever'}], 'inet6': [{'address': 'fec0::d6be:d9ff:fea8:4915', 'prefixlen': '64', 'scope': 'site', 'valid_lft': '86256sec'}, {'address': 'fe80::d6be:d9ff:fea8:4915', 'prefixlen': '64', 'scope': 'link', 'valid_lft': 'forever'}], 'interface': 'interface1', 'broadcast': '10.245.188.255', 'loopback': False, 'lower_up': False, 'multicast': False, 'running': False, 'up': False, 'mtu': '1504', 'qdisc': 'fq_codel', 'state': 'UP', 'group': 'default', 'qlen': '1000', 'mac_address': 'd4:be:d9:a8:49:15'}
  ifname=interface1
  ipcfg['interface']=interface1
  checking mac on iface: interface1
  checking mtu on iface: interface1

  --------------------- >> end captured stdout << ----------------------

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



More information about the foundations-bugs mailing list