** 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@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@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@lp1846232-e:~$ ip l show ens3.2667
+ 3: ens3.2667@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
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1846232

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

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

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to