What | Removed | Added |
---|---|---|
CC | suse.dev@fea.st | |
Flags | needinfo?(mt@suse.com) | needinfo?(suse.dev@fea.st) |
(In reply to sd fs from comment #2) > Found in in > > /etc/sysconfig/network/ifcfg.template > ... > ## Type: integer(0:) > ## Default: > # > # This option sets the ethernet address ageing time, in seconds. After > <time> > # seconds of not having seen a frame coming from a certain address, the > bridge > # will delete that address from the forwarding database. Setting ageing > time > # to zero makes all entries permanent. > # > BRIDGE_AGEINGTIME= > ... > > I never set it in /etc/sysconfig/network/ifcfg-br0, so not sure when/how it > was set. Apparently some tool did it then -- would be not the first time... Default in wicked is to not set this parameter (unless explicitly specified in the ifcfg file) and 0 is definitely a special value. > Anyway wicked apparently doesn't think it's a valid setting. It is not even wicked: the kernel rejects it... and as far as I see, it does this when somebody plays with namespaces / user is running wickedd [=root] does not have admin capabilities in a namespace. if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN)) return -EPERM; /usr/src/linux-4.1.13-5/net/bridge $ grep ageing_time * br_device.c: br->ageing_time = 300 * HZ; br_fdb.c: return br->topology_change ? br->forward_delay : br->ageing_time; br_fdb.c: unsigned long next_timer = jiffies + br->ageing_time; br_fdb.c: fe->ageing_timer_value = jiffies_delta_to_clock_t(jiffies - f->updated); The kernel is using this setting for a fdb "cleanup timer" and for "hold time" on topology changes. # cat ifcfg-br1 STARTMODE=auto BOOTPROT=none BRIDGE=yes BRIDGE_STP=off BRIDGE_AGEINGTIME='0' BRIDGE_PORTS='nic1' # time wicked ifup br1 br1 up real 0m0.068s user 0m0.016s sys 0m0.008s # cat /sys/class/net/br1/bridge/stp_state 0 # cat /sys/class/net/br1/bridge/ageing_time 0 # wicked ifdown br1 # ls -1 /sys/class/net/br1 ls: cannot access /sys/class/net/br1: No such file or directory # vi ifcfg-br1 # cat ifcfg-br1 STARTMODE=auto BOOTPROT=none BRIDGE=yes BRIDGE_STP=on BRIDGE_AGEINGTIME='0' BRIDGE_PORTS='nic1' # time wicked ifup br1 br1 up real 0m19.088s user 0m0.020s sys 0m0.000s # cat /sys/class/net/br1/bridge/ageing_time 0 # cat /sys/class/net/br1/bridge/stp_state 1 # cat /etc/SuSE-release openSUSE 42.1 (x86_64) VERSION = 42.1 CODENAME = Malachite # /etc/SuSE-release is deprecated and will be removed in the future, use /etc/os-release instead # uname -a Linux xanthos 4.1.13-5-default #1 SMP PREEMPT Thu Nov 26 16:35:17 UTC 2015 (49475c3) x86_64 x86_64 x86_64 GNU/Linux > So changing > > /etc/sysconfig/network/ifcfg-br0 > - BRIDGE_AGEINGTIME='0' > + #BRIDGE_AGEINGTIME='0' > > then after reboot have networking over the bridge back! OK, then there is at least a workaround. Generally, I'd setup the bridge either with the lowest permitted IEEE 802.1D(-1998 or 2004) STP settings: BRIDGE_STP=on BRIDGE_MAXAGE=6 BRIDGE_HELLOTIME=1 BRIDGE_FORWARDDELAY=4 to not cause delays for up to 50sec for STP or BRIDGE_STP=off BRIDGE_FORWARDDELAY=0 See http://www.tldp.org/HOWTO/BRIDGE-STP-HOWTO/advanced-bridge.html#STP and BRIDGE_PORTS as needed. > I don't know if there's a bug in wicked or a 'bug' in the .template. Hmm... As visible above, I can't reproduce it on my leap installation, so there seems be something else tweaking in between here. Question is: how to reproduce it. (In reply to sd fs from comment #0) > I need to set up a bridge on it. My config is > > cat /etc/sysconfig/network/ifcfg-br0 [...] > IPV6INIT='no' > IPV6_AUTOCONF='no' BTW: There is no IPV6INIT or IPV6_AUTOCONF variable defined and never were (in "green" ifcfg flavor). See "man sysctl.conf" and "man ifsysctl" and: https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt [...] > Anyway this is what the log does show > [ 96.204002] systemd[1361]: Executing: /usr/sbin/wickedd --systemd > --foreground > [ 186.224578] systemd[1]: wickedd.service start operation timed out. > Terminating. > [ 186.224943] systemd[1]: wickedd.service changed start -> final-sigterm > [ 186.226155] systemd[1]: Received SIGCHLD from PID 1361 (wickedd). > [ 186.226236] systemd[1]: Child 1361 (wickedd) died (code=killed, > status=15/TERM) > [ 186.226334] systemd[1]: Child 1361 belongs to wickedd.service [...] Here, is some IMO much more important problem to investigate: wickedd start issue. I don't think it is because of the bridge parameter. Can you set WICKED_DEBUG="all" in /etc/sysconfig/network/config together with systemd debug [as you already have], boot trying to run into such issue and attach the full journal dump using: "journalctl -b --short-precise > journal.txt" See also https://en.opensuse.org/openSUSE:Bugreport_wicked To avoid, that it is about some already fixed bug, please try out also the RPMs from: http://download.opensuse.org/repositories/network:/wicked:/master/openSUSE_Leap_42.1/ which will be released ASAP.