Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
The FDP team is no longer accepting new bugs in Bugzilla. Please report your issues under FDP project in Jira. Thanks.

Bug 2209901

Summary: [port configuration]remove value of bond_downdelay/bond_updelay failed
Product: Red Hat Enterprise Linux Fast Datapath Reporter: mhou <mhou>
Component: openvswitch3.1Assignee: Mike Pattrick <mpattric>
Status: CLOSED WONTFIX QA Contact: mhou <mhou>
Severity: high Docs Contact:
Priority: unspecified    
Version: RHEL 9.0CC: ctrautma, fleitner, jhsiao, mpattric, ralongi
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-01-08 16:25:33 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:

Description mhou 2023-05-25 08:17:48 UTC
Description of problem:
Configure bond_downdelay/updelay and remove setting failed.
# ovs-vsctl set port active-backup bond_downdelay=10000
# ovs-vsctl set port active-backup bond_updelay=10000
# ovs-vsctl remove port active-backup bond_downdelay 10000
ovs-vsctl: "remove" operation would put 0 values in column bond_downdelay of table Port but the minimum number is 1
ovs-vsctl remove port active-backup bond_updelay 10000
ovs-vsctl: "remove" operation would put 0 values in column bond_updelay of table Port but the minimum number is 1

Version-Release number of selected component (if applicable):
ovs version: openvswitch3.1-3.1.0-24.el9fdp.x86_64
kernel version: kernel-5.14.0-316.el9.x86_64
# ethtool -i ens4f0
driver: i40e
version: 5.14.0-316.el9.x86_64+rt
firmware-version: 9.20 0x8000d89c 1.3353.0
expansion-rom-version: 
bus-info: 0000:af:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes


How reproducible: 100%


Steps to Reproduce:
1. create a simple bond topo
systemctl restart openvswitch
ovs-vsctl set Open_vSwitch . other_config={}
ovs-vsctl --may-exist add-br bondbridge
ovs-vsctl add-bond bondbridge active-backup ens4f0 ens4f1 lacp=off bond_mode=active-backup  -- set Interface ens4f0 mtu_request=9000  -- set Interface ens4f1 mtu_request=9000

2.add bond_downdelay/bond_updelay to active-backup
# ovs-vsctl set port active-backup bond_downdelay=10000
# ovs-vsctl set port active-backup bond_updelay=10000
# ovs-vsctl list port active-backup
_uuid               : 0a7e7833-8343-43f9-935d-ac72da00aca9
bond_active_slave   : "3c:fd:fe:bd:1c:a5"
bond_downdelay      : 10000
bond_fake_iface     : false
bond_mode           : active-backup
bond_updelay        : 10000
cvlans              : []
external_ids        : {}
fake_bridge         : false
interfaces          : [34d36843-c21b-411a-bb91-c2031e0d4e53, b47249f0-c176-4c32-aa48-0cca1003476f]
lacp                : off
mac                 : []
name                : active-backup
other_config        : {bond-rebalance-iterval="10000"}
protected           : false
qos                 : []
rstp_statistics     : {}
rstp_status         : {}
statistics          : {}
status              : {}
tag                 : []
trunks              : []
vlan_mode           : []

3. try to remove 10000 from bond_downdelay or bond_uupdelay.
# ovs-vsctl remove port active-backup bond_updelay 10000
ovs-vsctl: "remove" operation would put 0 values in column bond_updelay of table Port but the minimum number is 1
# ovs-vsctl remove port active-backup bond_downdelay 10000
ovs-vsctl: "remove" operation would put 0 values in column bond_downdelay of table Port but the minimum number is 1
# ovs-vsctl clear port active-backup bond_downdelay
ovs-vsctl: "clear" operation cannot be applied to column bond_downdelay of table Port, which is not allowed to be empty
# ovs-vsctl clear port active-backup bond_updelay
ovs-vsctl: "clear" operation cannot be applied to column bond_updelay of table Port, which is not allowed to be empty
# ovs-vsctl list port active-backup
_uuid               : 0a7e7833-8343-43f9-935d-ac72da00aca9
bond_active_slave   : "3c:fd:fe:bd:1c:a5"
bond_downdelay      : 10000
bond_fake_iface     : false
bond_mode           : active-backup
bond_updelay        : 10000
cvlans              : []
external_ids        : {}
fake_bridge         : false
interfaces          : [34d36843-c21b-411a-bb91-c2031e0d4e53, b47249f0-c176-4c32-aa48-0cca1003476f]
lacp                : off
mac                 : []
name                : active-backup
other_config        : {}
protected           : false
qos                 : []
rstp_statistics     : {}
rstp_status         : {}
statistics          : {}
status              : {}
tag                 : []
trunks              : []
vlan_mode           : []

Actual results:
1. from step 3, can't use remove/clear to remove value of bond_downdelay/bond_updelay

Expected results:
1. 1. from step 3, ovs-vsctl can use remove or clear to remove value of bond_downdelay/bond_updelay


Additional info:

Comment 1 Mike Pattrick 2023-05-25 15:58:31 UTC
vswitch.ovsschema is missing the attribute to allow removing updelay and downdelay. Should be easy to add them.

Comment 2 Mike Pattrick 2023-06-16 21:56:53 UTC
Note, correcting status to assigned

Comment 3 Mike Pattrick 2024-01-08 16:25:33 UTC
After a discussion with other dev's, we've decided that the appropriate solution in this case is to unset these values with:

# ovs-vsctl set port active-backup bond_downdelay=0
# ovs-vsctl set port active-backup bond_updelay=0