On Fri, 03 Jul 2020 10:42:26 +0800 Paul Wise <p...@debian.org> wrote:
> > $ dpkg -l | grep ifenslave > > ii ifenslave 2.10+nmu2 > > > > The lines "bond-slaves" and "bond-primary" still do not work: > > Please retry your test with ifenslave 2.11. Oops, sorry, I missed that one, I did not realize I'm on testing, not sid :-( Ok, two remaining cometic issues in 2.11 than :-) # ifup bond0 /etc/network/if-pre-up.d/ifenslave: 39: echo: echo: I/O error /etc/network/if-pre-up.d/ifenslave: 39: echo: echo: I/O error You get this error when you try to set a /sys/ option that is not allowed, but the script does not tell which option throws an error. See diff attached. Example updelay and downdelay are apparently not allowed using arp and this patch will tell you what went wrong: iface bond0 inet static address 10.234.0.33 netmask 255.255.255.0 network 10.234.0.0 broadcast 10.234.0.255 bond-slaves eth2 eth3 bond-mode active-backup bond-primary eth2 bond-downdelay 200 bond-updelay 200 bond-arp_interval 2000 bond-arp_ip_target 10.234.0.32, 10.234.0.34 # ifup bond0 [error] unable to set downdelay to 200 [error] unable to set updelay to 200 Another cosmetic issue: # ifdown bond0 # modprobe -rv bonding rmmod bonding # ifup bond0 RTNETLINK answers: File exists # But when loading the kernel module before ifup then the RTNETLINK error disappears: # ifdown bond0 # modprobe -rv bonding rmmod bonding # modprobe -v bonding insmod /lib/modules/5.7.0-1-amd64/kernel/drivers/net/bonding/bonding.ko # ifup bond0 # For the rest is seems to be ok now, thnx! :) Just my 2 cts, R. -- richard lucassen https://contact.xaq.nl/
--- /etc/network/if-pre-up.d/ifenslave 2020-07-02 10:35:20.000000000 +0200 +++ /etc/network/if-pre-up.d/ifenslave.new 2020-07-03 11:03:15.807658451 +0200 @@ -36,8 +36,10 @@ # $1 = basename of the file in bonding/ to write to. # $2 = value to write. Won't write if $2 is empty. if [ -n "$2" ] ; then - echo "$2" > "/sys/class/net/$BOND_MASTER/bonding/$1" - return $? + echo "$2" > "/sys/class/net/$BOND_MASTER/bonding/$1" 2>/dev/null + EXITCODE=$? + [ ${EXITCODE} -ne 0 ] && echo "[error] unable to set $1 to $2" + return ${EXITCODE} fi return 0 }