[Bug 1721156] [NEW] networkd does not set bridge forward delay value correctly
Ryan Harper
1721156 at bugs.launchpad.net
Tue Oct 3 23:28:59 UTC 2017
Public bug reported:
1) # lsb_release -rd
Description: Ubuntu Artful Aardvark (development branch)
Release: 17.10
2) # apt-cache policy systemd
systemd:
Installed: 234-2ubuntu10
Candidate: 234-2ubuntu10
Version table:
*** 234-2ubuntu10 500
500 http://archive.ubuntu.com/ubuntu artful/main amd64 Packages
100 /var/lib/dpkg/status
3) /sys/class/net/br0/bridge/foward_delay value should be 100 (equivalent to 1 second)
4) /sys/class/net/br0/bridge/foward_delay value is 200 (defaults to 2
seconds)
Configured a bridge in Artful with netplan with the following config:
% cat /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: true
match:
macaddress: '52:54:00:12:34:00'
set-name: eth0
eth1:
match:
macaddress: '52:54:00:12:34:02'
set-name: eth1
eth2:
match:
macaddress: '52:54:00:12:34:04'
set-name: eth2
bridges:
br0:
addresses:
- 192.168.14.2/24
interfaces:
- eth1
- eth2
parameters:
ageing-time: 250
forward-delay: 1
hello-time: 1
max-age: 10
path-cost:
eth1: 50
eth2: 75
priority: 22
This generates some runtime network configs:
# cat 10-netplan-br0.netdev
[NetDev]
Name=br0
Kind=bridge
[Bridge]
AgeingTimeSec=250
Priority=22
ForwardDelaySec=1
HelloTimeSec=1
MaxAgeSec=10
STP=true
Note that the value (ForwardDelaySec=1) matches the config yaml; however the system value from sysfs is not in seconds, but some other factor:
# cat /sys/class/net/br0/bridge/forward_delay
200
And brctl confirms the value in seconds matches the kernel setting
# brctl showstp br0
br0
bridge id 0016.ea251c32d10e
designated root 0016.ea251c32d10e
root port 0 path cost 0
max age 10.00 bridge max age 10.00
hello time 1.00 bridge hello time 1.00
forward delay 2.00 bridge forward delay 2.00
ageing time 250.00
hello timer 0.22 tcn timer 0.00
topology change timer 0.00 gc timer 118.63
flags
I *think* networkd has an update unit conversion bug, looking at the upstream
commit for bridge params support:
https://github.com/systemd/systemd/pull/1459
Notice the unit is in Seconds, ForwardDelaySec=288
which results in a 2.88 second setting.
I suspect that our setting of ForwardDelaySec=1 was *too* small
and there is no warning (or it got rounded out in a conversion)
Hrm, I set ForwardDelaySec=150 an I get a sysfs value of 3000, and a
brctl value of 30
ForwardDelaySec=
ForwardDelaySec specifies the number of seconds spent in each of the Listening and Learning states before the Forwarding state is entered.
That's the manpage entry for netdev devices in systemd. Is it really
being doubled?
ProblemType: Bug
DistroRelease: Ubuntu 17.10
Package: systemd 234-2ubuntu10
ProcVersionSignature: Ubuntu 4.13.0-12.13-generic 4.13.3
Uname: Linux 4.13.0-12-generic x86_64
ApportVersion: 2.20.7-0ubuntu1
Architecture: amd64
Date: Tue Oct 3 23:06:01 2017
Lsusb: Error: command ['lsusb'] failed with exit code 1:
MachineType: QEMU Standard PC (i440FX + PIIX, 1996)
ProcEnviron:
TERM=vt220
PATH=(custom, no user)
XDG_RUNTIME_DIR=<set>
LANG=C.UTF-8
SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.13.0-12-generic root=UUID=05f7684f-c8ff-42d7-aaf4-c49045b1859a ro console=ttyS0
SourcePackage: systemd
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/01/2014
dmi.bios.vendor: SeaBIOS
dmi.bios.version: 1.10.2-1ubuntu1
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.version: pc-i440fx-artful
dmi.modalias: dmi:bvnSeaBIOS:bvr1.10.2-1ubuntu1:bd04/01/2014:svnQEMU:pnStandardPC(i440FX+PIIX,1996):pvrpc-i440fx-artful:cvnQEMU:ct1:cvrpc-i440fx-artful:
dmi.product.name: Standard PC (i440FX + PIIX, 1996)
dmi.product.version: pc-i440fx-artful
dmi.sys.vendor: QEMU
** Affects: systemd (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug artful curtin uec-images
--
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/1721156
Title:
networkd does not set bridge forward delay value correctly
Status in systemd package in Ubuntu:
New
Bug description:
1) # lsb_release -rd
Description: Ubuntu Artful Aardvark (development branch)
Release: 17.10
2) # apt-cache policy systemd
systemd:
Installed: 234-2ubuntu10
Candidate: 234-2ubuntu10
Version table:
*** 234-2ubuntu10 500
500 http://archive.ubuntu.com/ubuntu artful/main amd64 Packages
100 /var/lib/dpkg/status
3) /sys/class/net/br0/bridge/foward_delay value should be 100 (equivalent to 1 second)
4) /sys/class/net/br0/bridge/foward_delay value is 200 (defaults to 2
seconds)
Configured a bridge in Artful with netplan with the following config:
% cat /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: true
match:
macaddress: '52:54:00:12:34:00'
set-name: eth0
eth1:
match:
macaddress: '52:54:00:12:34:02'
set-name: eth1
eth2:
match:
macaddress: '52:54:00:12:34:04'
set-name: eth2
bridges:
br0:
addresses:
- 192.168.14.2/24
interfaces:
- eth1
- eth2
parameters:
ageing-time: 250
forward-delay: 1
hello-time: 1
max-age: 10
path-cost:
eth1: 50
eth2: 75
priority: 22
This generates some runtime network configs:
# cat 10-netplan-br0.netdev
[NetDev]
Name=br0
Kind=bridge
[Bridge]
AgeingTimeSec=250
Priority=22
ForwardDelaySec=1
HelloTimeSec=1
MaxAgeSec=10
STP=true
Note that the value (ForwardDelaySec=1) matches the config yaml; however the system value from sysfs is not in seconds, but some other factor:
# cat /sys/class/net/br0/bridge/forward_delay
200
And brctl confirms the value in seconds matches the kernel setting
# brctl showstp br0
br0
bridge id 0016.ea251c32d10e
designated root 0016.ea251c32d10e
root port 0 path cost 0
max age 10.00 bridge max age 10.00
hello time 1.00 bridge hello time 1.00
forward delay 2.00 bridge forward delay 2.00
ageing time 250.00
hello timer 0.22 tcn timer 0.00
topology change timer 0.00 gc timer 118.63
flags
I *think* networkd has an update unit conversion bug, looking at the upstream
commit for bridge params support:
https://github.com/systemd/systemd/pull/1459
Notice the unit is in Seconds, ForwardDelaySec=288
which results in a 2.88 second setting.
I suspect that our setting of ForwardDelaySec=1 was *too* small
and there is no warning (or it got rounded out in a conversion)
Hrm, I set ForwardDelaySec=150 an I get a sysfs value of 3000, and a
brctl value of 30
ForwardDelaySec=
ForwardDelaySec specifies the number of seconds spent in each of the Listening and Learning states before the Forwarding state is entered.
That's the manpage entry for netdev devices in systemd. Is it really
being doubled?
ProblemType: Bug
DistroRelease: Ubuntu 17.10
Package: systemd 234-2ubuntu10
ProcVersionSignature: Ubuntu 4.13.0-12.13-generic 4.13.3
Uname: Linux 4.13.0-12-generic x86_64
ApportVersion: 2.20.7-0ubuntu1
Architecture: amd64
Date: Tue Oct 3 23:06:01 2017
Lsusb: Error: command ['lsusb'] failed with exit code 1:
MachineType: QEMU Standard PC (i440FX + PIIX, 1996)
ProcEnviron:
TERM=vt220
PATH=(custom, no user)
XDG_RUNTIME_DIR=<set>
LANG=C.UTF-8
SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.13.0-12-generic root=UUID=05f7684f-c8ff-42d7-aaf4-c49045b1859a ro console=ttyS0
SourcePackage: systemd
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/01/2014
dmi.bios.vendor: SeaBIOS
dmi.bios.version: 1.10.2-1ubuntu1
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.version: pc-i440fx-artful
dmi.modalias: dmi:bvnSeaBIOS:bvr1.10.2-1ubuntu1:bd04/01/2014:svnQEMU:pnStandardPC(i440FX+PIIX,1996):pvrpc-i440fx-artful:cvnQEMU:ct1:cvrpc-i440fx-artful:
dmi.product.name: Standard PC (i440FX + PIIX, 1996)
dmi.product.version: pc-i440fx-artful
dmi.sys.vendor: QEMU
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1721156/+subscriptions
More information about the foundations-bugs
mailing list