** 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
+     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
- 
+     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.
  
+ [scope]
+ 
+ this is needed only for Eoan.
+ 
+ disco and earlier don't have the patch that introduces this problem,
+ commit 4b151b71320bbee1549afcbad5554a40d90d63b4
+ 
+ focal already has the patches that fix this, commit
+ f6fcc1c2a41eae749467de58453174296b635a69 (and the commit before it)
+ 
+ see comment 4 for more details
+ 
  [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 << ----------------------

** Tags added: ddstreet eoan systemd

-- 
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