Bonding options not applied correctly
We've observed that bonding options are not applied correctly anymore on Ubuntu as of NetworkManager 1.40 RC1 (1.39.90).
Especially lp_interval
and ad_select
.
The system (Ubuntu 22.10 Kinetic) is up and running, network reachable. But bonding parameters are not set correctly.
See also: https://bugs.launchpad.net/network-manager/+bug/1987001 (downstream bug report)
lp_interval:
# cat /run/NetworkManager/system-connections/netplan-eth0.nmconnection
[connection]
id=netplan-eth0
type=ethernet
interface-name=eth0
slave-type=bond
master=mybond
[ethernet]
wake-on-lan=0
[ipv4]
method=auto
[ipv6]
method=ignore
# cat /run/NetworkManager/system-connections/netplan-mybond.nmconnection
[connection]
id=netplan-mybond
type=bond
interface-name=mybond
[bond]
mode=balance-tlb
miimon=5
lp_interval=15
[ipv4]
method=auto
[ipv6]
method=ignore
# nmcli con
NAME UUID TYPE DEVICE
netplan-mybond 4049b647-57f4-395b-8a21-8c7841be2a1c bond mybond
netplan-eth0 626dd384-8b3d-3690-9511-192b2c79b3fd ethernet eth0
# nmcli dev
DEVICE TYPE STATE CONNECTION
mybond bond connected netplan-mybond
eth0 ethernet connected netplan-eth0
# nmcli con show netplan-mybond | grep bond.options
bond.options: mode=balance-tlb,lp_interval=15,miimon=5
# cat /sys/class/net/mybond/bonding/lp_interval
1
# ip -d link show mybond
12: mybond: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 6a:1c:ed:dd:9b:dc brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535
bond mode balance-tlb active_slave eth0 miimon 5 updelay 0 downdelay 0 peer_notify_delay 0 use_carrier 1 arp_interval 0 arp_validate none arp_all_targets any primary_reselect always fail_over_mac none xmit_hash_policy layer2 resend_igmp 1 num_grat_arp 1 all_slaves_active 0 min_links 0 lp_interval 1 packets_per_slave 1 lacp_active on lacp_rate slow ad_select stable tlb_dynamic_lb 1 addrgenmode eui64 numtxqueues 16 numrxqueues 16 gso_max_size 65536 gso_max_segs 65535
ad_select:
<pre># cat /run/NetworkManager/system-connections/netplan-eth0.nmconnection
[connection]
id=netplan-eth0
type=ethernet
interface-name=eth0
slave-type=bond
master=mybond2
[ethernet]
wake-on-lan=0
[ipv4]
method=auto
[ipv6]
method=ignore
# cat /run/NetworkManager/system-connections/netplan-mybond2.nmconnection
[connection]
id=netplan-mybond2
type=bond
interface-name=mybond2
[bond]
mode=802.3ad
ad_select=bandwidth
[ipv4]
method=auto
[ipv6]
method=ignore
# nmcli con
NAME UUID TYPE DEVICE
netplan-mybond2 c293d437-0a4e-304a-a38c-7da2ca104b72 bond mybond2
netplan-eth0 626dd384-8b3d-3690-9511-192b2c79b3fd ethernet eth0
# nmcli dev
DEVICE TYPE STATE CONNECTION
mybond2 bond connected netplan-mybond2
eth0 ethernet connected netplan-eth0
# nmcli con show netplan-mybond2 | grep bond.options
bond.options: mode=802.3ad,ad_select=bandwidth
# cat /sys/class/net/mybond2/bonding/ad_select
stable 0
# ip -d link show mybond2
14: mybond2: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether c2:c1:2a:3a:e4:6d brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535
bond mode 802.3ad miimon 100 updelay 0 downdelay 0 peer_notify_delay 0 use_carrier 1 arp_interval 0 arp_validate none arp_all_targets any primary_reselect always fail_over_mac none xmit_hash_policy layer2 resend_igmp 1 num_grat_arp 1 all_slaves_active 0 min_links 0 lp_interval 1 packets_per_slave 1 lacp_active on lacp_rate slow ad_select stable ad_aggregator 1 ad_num_ports 1 ad_actor_key 15 ad_partner_key 1 ad_partner_mac 00:00:00:00:00:00 tlb_dynamic_lb 1 addrgenmode eui64 numtxqueues 16 numrxqueues 16 gso_max_size 65536 gso_max_segs 65535
This might be related to the refactoring that happened a while ago: #810 (closed)