Bug 1812737
| Summary: | Support automatically dealing with unavailable options when changing bond mode | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | Reporter: | Mingyu Shi <mshi> | ||||||
| Component: | nmstate | Assignee: | Gris Ge <fge> | ||||||
| Status: | CLOSED ERRATA | QA Contact: | Mingyu Shi <mshi> | ||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | 8.2 | CC: | dholler, ferferna, fge, jiji, jishi, mburman, network-qe, till | ||||||
| Target Milestone: | rc | Keywords: | ZStream | ||||||
| Target Release: | 8.3 | Flags: | pm-rhel:
mirror+
|
||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | nmstate-0.3.2-1.el8 | Doc Type: | If docs needed, set a value | ||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | |||||||||
| : | 1819737 1819738 (view as bug list) | Environment: | |||||||
| Last Closed: | 2020-11-04 03:08:25 UTC | Type: | Bug | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Bug Depends On: | |||||||||
| Bug Blocks: | 1819737, 1819738 | ||||||||
| Attachments: |
|
||||||||
Part of option limitation and dependency in nmcli:
1. Some will be reported, like lacp_rate
2. Some won't be reported, but removed from connection config, like the items marked 'lost'
3. It seems that the limitation in NM are not totally follows the kernel bond limitation. Such as 'primary' is described 'valid for mode 1,5,6, but in nmcli it reports as only valid with mode 1
[11:54:36@hpe-dl380pgen8-02-vm-7 ~]0# for i in `seq 0 6`
> do echo $i ================================================================================
> for op in `cat options `
> do
> nmcli con modify bond0 bond.options $op,mode=$i && { nmcli con show bond0 | grep $op > /dev/null || echo $op lost; }
> done
> done
0 ================================================================================
active_slave=veth0 lost
ad_actor_sys_prio=1 lost
ad_actor_system=d4:ee:07:25:42:5a lost
ad_user_port_key=1000 lost
Error: Failed to modify connection 'bond0': bond.options: 'arp_interval' option requires 'arp_ip_target' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'arp_ip_target' option requires 'arp_interval' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'downdelay' option requires 'miimon' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'lacp_rate' option is only valid with mode '802.3ad'
num_unsol_na=2 lost
Error: Failed to modify connection 'bond0': bond.options: 'primary' option is only valid for 'mode=active-backup'
tlb_dynamic_lb=0 lost
Error: Failed to modify connection 'bond0': bond.options: 'updelay' option requires 'miimon' option to be set
1 ================================================================================
ad_actor_sys_prio=1 lost
ad_actor_system=d4:ee:07:25:42:5a lost
ad_user_port_key=1000 lost
Error: Failed to modify connection 'bond0': bond.options: 'arp_interval' option requires 'arp_ip_target' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'arp_ip_target' option requires 'arp_interval' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'downdelay' option requires 'miimon' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'lacp_rate' option is only valid with mode '802.3ad'
num_unsol_na=2 lost
packets_per_slave=2 lost
tlb_dynamic_lb=0 lost
Error: Failed to modify connection 'bond0': bond.options: 'updelay' option requires 'miimon' option to be set
2 ================================================================================
active_slave=veth0 lost
ad_actor_sys_prio=1 lost
ad_actor_system=d4:ee:07:25:42:5a lost
ad_user_port_key=1000 lost
Error: Failed to modify connection 'bond0': bond.options: 'arp_interval' option requires 'arp_ip_target' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'arp_ip_target' option requires 'arp_interval' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'downdelay' option requires 'miimon' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'lacp_rate' option is only valid with mode '802.3ad'
num_unsol_na=2 lost
packets_per_slave=2 lost
Error: Failed to modify connection 'bond0': bond.options: 'primary' option is only valid for 'mode=active-backup'
tlb_dynamic_lb=0 lost
Error: Failed to modify connection 'bond0': bond.options: 'updelay' option requires 'miimon' option to be set
3 ================================================================================
active_slave=veth0 lost
ad_actor_sys_prio=1 lost
ad_actor_system=d4:ee:07:25:42:5a lost
ad_user_port_key=1000 lost
Error: Failed to modify connection 'bond0': bond.options: 'arp_interval' option requires 'arp_ip_target' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'arp_ip_target' option requires 'arp_interval' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'downdelay' option requires 'miimon' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'lacp_rate' option is only valid with mode '802.3ad'
num_unsol_na=2 lost
packets_per_slave=2 lost
Error: Failed to modify connection 'bond0': bond.options: 'primary' option is only valid for 'mode=active-backup'
tlb_dynamic_lb=0 lost
Error: Failed to modify connection 'bond0': bond.options: 'updelay' option requires 'miimon' option to be set
4 ================================================================================
active_slave=veth0 lost
Error: Failed to modify connection 'bond0': bond.options: 'arp_interval' option requires 'arp_ip_target' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'arp_ip_target' option requires 'arp_interval' option to be set
arp_validate=active lost
Error: Failed to modify connection 'bond0': bond.options: 'downdelay' option requires 'miimon' option to be set
num_unsol_na=2 lost
packets_per_slave=2 lost
Error: Failed to modify connection 'bond0': bond.options: 'primary' option is only valid for 'mode=active-backup'
tlb_dynamic_lb=0 lost
Error: Failed to modify connection 'bond0': bond.options: 'updelay' option requires 'miimon' option to be set
5 ================================================================================
ad_actor_sys_prio=1 lost
ad_actor_system=d4:ee:07:25:42:5a lost
ad_user_port_key=1000 lost
Error: Failed to modify connection 'bond0': bond.options: 'mode=balance-tlb' is incompatible with 'arp_interval > 0'
Error: Failed to modify connection 'bond0': bond.options: 'arp_ip_target' option requires 'arp_interval' option to be set
arp_validate=active lost
Error: Failed to modify connection 'bond0': bond.options: 'downdelay' option requires 'miimon' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'lacp_rate' option is only valid with mode '802.3ad'
num_unsol_na=2 lost
packets_per_slave=2 lost
Error: Failed to modify connection 'bond0': bond.options: 'primary' option is only valid for 'mode=active-backup'
Error: Failed to modify connection 'bond0': bond.options: 'updelay' option requires 'miimon' option to be set
6 ================================================================================
ad_actor_sys_prio=1 lost
ad_actor_system=d4:ee:07:25:42:5a lost
ad_user_port_key=1000 lost
Error: Failed to modify connection 'bond0': bond.options: 'mode=balance-alb' is incompatible with 'arp_interval > 0'
Error: Failed to modify connection 'bond0': bond.options: 'arp_ip_target' option requires 'arp_interval' option to be set
arp_validate=active lost
Error: Failed to modify connection 'bond0': bond.options: 'downdelay' option requires 'miimon' option to be set
Error: Failed to modify connection 'bond0': bond.options: 'lacp_rate' option is only valid with mode '802.3ad'
num_unsol_na=2 lost
packets_per_slave=2 lost
Error: Failed to modify connection 'bond0': bond.options: 'primary' option is only valid for 'mode=active-backup'
tlb_dynamic_lb=0 lost
Error: Failed to modify connection 'bond0': bond.options: 'updelay' option requires 'miimon' option to be set
Michael, Dominik, can you please take a look at this and evaluate how critical this is for RHV? (In reply to Till Maas from comment #2) > Michael, Dominik, can you please take a look at this and evaluate how > critical this is for RHV? It will be hard to run into to this using RHV UI when using the default bond modes, without specifying custom bond options. So i guess important for users that use custom bond modes, not sure if critical. Dominik? (In reply to Michael Burman from comment #3) > (In reply to Till Maas from comment #2) > > Michael, Dominik, can you please take a look at this and evaluate how > > critical this is for RHV? > > It will be hard to run into to this using RHV UI when using the default bond > modes, without specifying custom bond options. > So i guess important for users that use custom bond modes, not sure if > critical. > Dominik? Ack, without custom bond modes, RHV uses only mode, xmit_hash_policy and miimon, which should not hurt. But it would be good if this could fixed on the long run. Created attachment 1700551 [details]
verified.log
Verified with versions:
nmstate-0.3.3-2.el8.noarch
NetworkManager-1.26.0-0.2.1.el8.x86_64
DISTRO=RHEL-8.3.0-20200709.n.0
Linux hpe-dl380pgen8-02-vm-11.hpe2.lab.eng.bos.redhat.com 4.18.0-223.el8.x86_64 #1 SMP Tue Jul 7 12:56:57 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
When changing mode, all the in-disk configs will be removed (unless they are explicitly configured), and set all to default(default of libnm, means only miimon=100 will be shown)
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (nmstate bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:4696 |
Created attachment 1669515 [details] mode 4 to 1 Description of problem: When change bond from mode A to mode B, if some configured options for mode A are not available for mode B, it may cause an error. This is inconvenient for user, as user has to deal with these options manually. For the term 'unavailable', there may be 2 situations: 1. MUST NOT be set; 2. Can be set but no effect. Version-Release number of selected component (if applicable): nmstate-0.2.6-3.8.el8.noarch NetworkManager-1.22.8-4.el8.x86_64 How reproducible: 100% Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: See the attachment as an example (mode 4 to mode 1) 2020-03-12 09:46:06,708 root ERROR NM main-loop aborted: Connection update failed: error=nm-connection-error-quark: bond.options: 'lacp_rate' option is only valid with mode '802.3ad' (7), dev=bond-mode4/<enum NM_DEVICE_STATE_ACTIVATED of type NM.DeviceState