Description of problem: if some traffic host on balance-tcp port, and in this time remoev lacp channel group on switch site. the bond-primary didn't effected and traffic still in original active port. Version-Release number of selected component (if applicable): ovs version:openvswitch3.1-3.1.0-24.el9fdp.x86_64 kernel version: 5.14.0-318.el9.x86_64 # ethtool -i ens4f0 driver: i40e version: 5.14.0-318.el9.x86_64 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 # ethtool -i ens4f1 driver: i40e version: 5.14.0-318.el9.x86_64 firmware-version: 9.20 0x8000d89c 1.3353.0 expansion-rom-version: bus-info: 0000:af:00.1 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. configure a balance-tcp port on ovs bridge ovs-vsctl list bridge 2>/dev/null | grep name | awk '{ system("ovs-vsctl --if-exist del-br "$3" &>/dev/null") }' systemctl stop openvswitch &>/dev/null rm -rf /etc/openvswitch/*.db rm -rf /var/lib/openvswitch/* ip link set ens4f0 up ip link set ens4f1 up systemctl restart openvswitch ovs-appctl vlog/set console:lacp:dbg syslog:lacp:dbg file:lacp:dbg ovs-appctl vlog/set console:bond:dbg syslog:bond:dbg file:bond:dbg ovs-appctl vlog/set console:ovs_rcu:dbg syslog:ovs_rcu:dbg file:ovs_rcu:dbg ovs-appctl vlog/set console:memory:dbg syslog:memory:dbg file:memory:dbg ovs-vsctl set Open_vSwitch . other_config={} ovs-vsctl --if-exists del-br bondbridge ovs-vsctl --may-exist add-br bondbridge ovs-vsctl set int bondbridge mtu_request=9000 ovs-ofctl mod-port bondbridge bondbridge up ovs-vsctl add-bond bondbridge balance-tcp ens4f0 ens4f1 lacp=passive bond_mode=balance-tcp \ -- set Interface ens4f0 mtu_request=9000 -- set Interface ens4f1 mtu_request=9000 ovs-vsctl --may-exist add-port guestbridge patchguest -- set Interface patchguest type=patch \ -- set Interface patchguest options:peer=patchbond mtu_request=9000 ovs-vsctl --may-exist add-br guestbridge ovs-vsctl --may-exist add-port guestbridge patchguest -- set Interface patchguest type=patch -- set Interface patchguest options:peer=patchbond mtu_request=9000 ovs-podman add-port guestbridge eth1 g1 --ipaddress=172.31.150.42/24 --ip6address=2001:db8:150::42/64 --mtu=9000 --macaddress=00:de:ad:96:02:02 # ovs-vsctl show ee9ebf3e-a4a9-4ca3-90f5-79f67067ee36 Bridge guestbridge Port "2798c25d35dc4_l" Interface "2798c25d35dc4_l" Port guestbridge Interface guestbridge type: internal Port patchguest Interface patchguest type: patch options: {peer=patchbond} Bridge bondbridge Port patchbond Interface patchbond type: patch options: {peer=patchguest} Port balance-tcp Interface ens4f1 Interface ens4f0 Port bondbridge Interface bondbridge type: internal ovs_version: "3.1.2" 2. configure lacp channel group # swcfg setup_port_channel 9364 'Eth1/7/1 Eth1/7/2' active spawn ssh admin.88.13 User Access Verification (admin.88.13) Password: Cisco Nexus Operating System (NX-OS) Software TAC support: http://www.cisco.com/tac Copyright (C) 2002-2022, Cisco and/or its affiliates. All rights reserved. The copyrights to certain works contained in this software are owned by other third parties and used and distributed under their own licenses, such as open source. This software is provided "as is," and unless otherwise stated, there is no warranty, express or implied, including but not limited to warranties of merchantability and fitness for a particular purpose. Certain components of this software are licensed under the GNU General Public License (GPL) version 2.0 or GNU General Public License (GPL) version 3.0 or the GNU Lesser General Public License (LGPL) Version 2.1 or Lesser General Public License (LGPL) Version 2.0. A copy of each such license is available at http://www.opensource.org/licenses/gpl-2.0.php and http://opensource.org/licenses/gpl-3.0.html and http://www.opensource.org/licenses/lgpl-2.1.php and http://www.gnu.org/licenses/old-licenses/library.txt. sw-cisco9364# \r ^ % Incomplete command at '^' marker. sw-cisco9364# terminal length 0 sw-cisco9364# configure t Enter configuration commands, one per line. End with CNTL/Z. sw-cisco9364(config)# show running-config interface Eth1/7/1 !Command: show running-config interface Ethernet1/7/1 !Running configuration last done at: Sun Jun 18 08:43:47 2023 !Time: Sun Jun 18 08:43:49 2023 version 9.3(10) Bios:version 05.47 interface Ethernet1/7/1 mtu 9216 inherit port-profile mhou_profile interface Eth1/7/1 sw-cisco9364(config)# interface Eth1/7/1 no inherit port-profile mhou_profile sw-cisco9364(config-if)# no inherit port-profile mhou_profile lacp rate normal Message reported by command :: no switchport mode Warning: If the interface is configured with mappings, all the associated mappings would be removed when port mode is changed sw-cisco9364(config-if)# lacp rate normal channel-group 57 force mode active sw-cisco9364(config-if)# channel-group 57 force mode active show running-config interface Eth1/7/2 sw-cisco9364(config-if)# show running-config interface Eth1/7/2 !Command: show running-config interface Ethernet1/7/2 !Running configuration last done at: Sun Jun 18 08:43:54 2023 !Time: Sun Jun 18 08:43:54 2023 version 9.3(10) Bios:version 05.47 interface Ethernet1/7/2 mtu 9216 inherit port-profile mhou_profile interface Eth1/7/2 sw-cisco9364(config-if)# interface Eth1/7/2 no inherit port-profile mhou_profile sw-cisco9364(config-if)# no inherit port-profile mhou_profile lacp rate normal Message reported by command :: no switchport mode Warning: If the interface is configured with mappings, all the associated mappings would be removed when port mode is changed sw-cisco9364(config-if)# lacp rate normal channel-group 57 force mode active sw-cisco9364(config-if)# channel-group 57 force mode active interface port-channel57 sw-cisco9364(config-if)# interface port-channel57 shutdown sw-cisco9364(config-if)# shutdown no lacp suspend-individual sw-cisco9364(config-if)# no lacp suspend-individual lacp graceful-convergence Warning: !! Disable lacp suspend-individual only on port-channel with edge ports. Disabling this on network port port-channel could lead to loops.! sw-cisco9364(config-if)# lacp graceful-convergence no shutdown sw-cisco9364(config-if)# no shutdown inherit port-profile mhou_profile_channel sw-cisco9364(config-if)# inherit port-profile mhou_profile_channel mtu 9216 sw-cisco9364(config-if)# mtu 9216 end sw-cisco9364(config-if)# end sw-cisco9364# show port-channel summary Flags: D - Down P - Up in port-channel (members) I - Individual H - Hot-standby (LACP only) s - Suspended r - Module-removed b - BFD Session Wait S - Switched R - Routed U - Up (port-channel) p - Up in delay-lacp mode (member) M - Not in use. Min-links not met -------------------------------------------------------------------------------- Group Port- Type Protocol Member Ports Channel -------------------------------------------------------------------------------- 47 Po47(SD) Eth NONE -- 48 Po48(SD) Eth NONE -- 57 Po57(SD) Eth LACP Eth1/7/1(D) Eth1/7/2(D) sw-cisco9364# show port-channel internal info interface port-channel 57 end port-channel57 channel : 57 bundle : 65535 ifindex : 0x16000038 admin mode : active oper mode : active nports : 2 active : 0 pre cfg : 0 ltl : 0x2 (2) lif : 0x1059 iod : 0x5b (91) global id : 1 flag : 0 lock count : 0 num. of SIs: 0 ac mbrs : 0 0 lacp graceful conv disable : 0 lacp suspend indiv disable : 1 pc min-links : 1 pc max-bundle : 32 pc max active members : 32 pc is-suspend-minlinks : 0 port load defer enable : 0 port-channel bfd config enabled : 0 port-channel bfd config complete: 0 port-channel bfd destination: null port-channel bfd start timeout: 0 lacp fast-select-hot-standby disable : 0 port-channel port hash-distribution : none ethpm bundle lock count : 0 lacp delayed-enable fop none 0x0 lacp delayed-enable : 0 lacp delayed-enable cfg-port none lacp delayed-enable oper-port none lacp delayed-enable local best priority : 0xffffffff lacp delayed-enable remote best priority : 0xffffffff lacp vpc conv enabled : 0 gir conv enabled : 0 bundle number map: Members: Ethernet1/7/1 is_ltl_programmed = 0 Port BFD session state: 5 (none) Ethernet1/7/2 is_ltl_programmed = 0 Port BFD session state: 5 (none) port-channel external lock: Lock Info: resource [eth-port-channel 57] type[0] p_gwrap[(nil)] FREE @ 58132 usecs after Sun Jun 18 08:43:53 2023 type[1] p_gwrap[(nil)] FREE @ 739453 usecs after Sun Jun 18 08:44:00 2023 type[2] p_gwrap[(nil)] FREE @ 490584 usecs after Sun Jun 18 08:43:58 2023 0x16000038 internal (ethpm bundle) lock: Lock Info: resource [eth-port-channel 57] type[0] p_gwrap[(nil)] FREE @ 58116 usecs after Sun Jun 18 08:43:53 2023 type[1] p_gwrap[(nil)] FREE @ 308350 usecs after Sun Jun 18 08:43:59 2023 type[2] p_gwrap[(nil)] FREE @ 997967 usecs after Sun Jun 18 08:43:55 2023 0x16000038 sw-cisco9364# end sw-cisco9364# exit 3. add other_config:lacp-fallback-ab=true other_config:bond-primary=ens4f0 to balance-tcp # ovs-vsctl set port balance-tcp other_config:lacp-fallback-ab=true other_config:bond-primary=ens4f0 # ovs-appctl bond/show ---- balance-tcp ---- bond_mode: balance-tcp bond may use recirculation: yes, Recirc-ID : 1 bond-hash-basis: 0 lb_output action: disabled, bond-id: -1 updelay: 0 ms downdelay: 0 ms next rebalance: 7853 ms lacp_status: negotiated lacp_fallback_ab: true active-backup primary: ens4f0 active member mac: 3c:fd:fe:bd:1c:a5(ens4f1) member ens4f0: enabled may_enable: true member ens4f1: enabled active member may_enable: true 4. on guest bridge, use a container send ping traffic to peer side # podman exec g1 ping 172.31.150.1 PING 172.31.150.1 (172.31.150.1) 56(84) bytes of data. 64 bytes from 172.31.150.1: icmp_seq=1 ttl=64 time=0.500 ms 64 bytes from 172.31.150.1: icmp_seq=2 ttl=64 time=0.207 ms 64 bytes from 172.31.150.1: icmp_seq=3 ttl=64 time=0.058 ms 64 bytes from 172.31.150.1: icmp_seq=4 ttl=64 time=0.055 ms 64 bytes from 172.31.150.1: icmp_seq=5 ttl=64 time=0.047 ms 5. remove lacp channel group on switch site # swcfg cleanup_port_channel 9364 'Eth1/7/1 Eth1/7/2' spawn ssh admin.88.13 User Access Verification (admin.88.13) Password: Cisco Nexus Operating System (NX-OS) Software TAC support: http://www.cisco.com/tac Copyright (C) 2002-2022, Cisco and/or its affiliates. All rights reserved. The copyrights to certain works contained in this software are owned by other third parties and used and distributed under their own licenses, such as open source. This software is provided "as is," and unless otherwise stated, there is no warranty, express or implied, including but not limited to warranties of merchantability and fitness for a particular purpose. Certain components of this software are licensed under the GNU General Public License (GPL) version 2.0 or GNU General Public License (GPL) version 3.0 or the GNU Lesser General Public License (LGPL) Version 2.1 or Lesser General Public License (LGPL) Version 2.0. A copy of each such license is available at http://www.opensource.org/licenses/gpl-2.0.php and http://opensource.org/licenses/gpl-3.0.html and http://www.opensource.org/licenses/lgpl-2.1.php and http://www.gnu.org/licenses/old-licenses/library.txt. sw-cisco9364# \r ^ % Incomplete command at '^' marker. sw-cisco9364# terminal length 0 sw-cisco9364# clear counters interface Eth1/7/1 sw-cisco9364# clear counters interface Eth1/7/2 sw-cisco9364# show running-config interface port-channel 57 !Command: show running-config interface port-channel57 !Running configuration last done at: Sun Jun 18 08:40:14 2023 !Time: Sun Jun 18 08:41:20 2023 version 9.3(10) Bios:version 05.47 interface port-channel57 mtu 9216 no lacp suspend-individual inherit port-profile mhou_profile_channel configure t sw-cisco9364# configure t Enter configuration commands, one per line. End with CNTL/Z. sw-cisco9364(config)# interface port-channel 57 no inherit port-profile mhou_profile_channel sw-cisco9364(config-if)# no inherit port-profile mhou_profile_channel exit Message reported by command :: no switchport mode Warning: If the interface is configured with mappings, all the associated mappings would be removed when port mode is changed sw-cisco9364(config-if)# exit no interface port-channel57 sw-cisco9364(config)# no interface port-channel57 interface Eth1/7/1 sw-cisco9364(config)# interface Eth1/7/1 no lacp rate fast sw-cisco9364(config-if)# no lacp rate fast inherit port-profile mhou_profile sw-cisco9364(config-if)# inherit port-profile mhou_profile no shutdown sw-cisco9364(config-if)# no shutdown mtu 9216 sw-cisco9364(config-if)# mtu 9216 interface Eth1/7/2 sw-cisco9364(config-if)# interface Eth1/7/2 no lacp rate fast sw-cisco9364(config-if)# no lacp rate fast inherit port-profile mhou_profile sw-cisco9364(config-if)# inherit port-profile mhou_profile no shutdown sw-cisco9364(config-if)# no shutdown mtu 9216 sw-cisco9364(config-if)# mtu 9216 end sw-cisco9364(config-if)# end show port-channel summary sw-cisco9364# show port-channel summary end Flags: D - Down P - Up in port-channel (members) I - Individual H - Hot-standby (LACP only) s - Suspended r - Module-removed b - BFD Session Wait S - Switched R - Routed U - Up (port-channel) p - Up in delay-lacp mode (member) M - Not in use. Min-links not met -------------------------------------------------------------------------------- Group Port- Type Protocol Member Ports Channel -------------------------------------------------------------------------------- 47 Po47(SD) Eth NONE -- 48 Po48(SD) Eth NONE -- sw-cisco9364# end sw-cisco9364# 6. check current port status of balance-tcp # ovs-appctl bond/show ---- balance-tcp ---- bond_mode: balance-tcp bond may use recirculation: no, Recirc-ID : -1 bond-hash-basis: 0 lb_output action: disabled, bond-id: -1 updelay: 0 ms downdelay: 0 ms lacp_status: configured lacp_fallback_ab: true active-backup primary: ens4f0 active member mac: 3c:fd:fe:bd:1c:a4(ens4f0) member ens4f0: enabled may_enable: true member ens4f1: enabled active member may_enable: true 7. check ovs-vswitchd.log 2023-06-18T08:51:17.502Z|00176|bond|DBG|bond balance-tcp: ens4f0 0kB (h85: 0kB + h209: 0kB), ens4f1 0kB 2023-06-18T08:51:27.696Z|00177|bond|DBG|bond balance-tcp: ens4f0 1kB (h85: 1kB + h209: 0kB), ens4f1 0kB 2023-06-18T08:51:35.794Z|00178|bond|INFO|member ens4f0: link state down 2023-06-18T08:51:35.794Z|00179|bond|INFO|member ens4f0: disabled 2023-06-18T08:51:35.794Z|00180|bond|INFO|bond balance-tcp: active member is now ens4f1 2023-06-18T08:51:36.711Z|00181|bond|INFO|member ens4f1: link state down 2023-06-18T08:51:36.711Z|00182|bond|INFO|member ens4f1: disabled 2023-06-18T08:51:36.711Z|00183|bond|INFO|bond balance-tcp: all members disabled 2023-06-18T08:51:36.712Z|00001|bond(revalidator3)|DBG|bond balance-tcp: member ens4f1: main thread has not yet enabled member 2023-06-18T08:51:36.718Z|00002|bond(revalidator3)|DBG|bond balance-tcp: member ens4f1: admissibility verdict is to drop pkt, active member: false, may_enable: false, enabled: false, LACP status: negotiated 2023-06-18T08:51:36.723Z|00003|bond(revalidator3)|DBG|bond balance-tcp: member ens4f1: admissibility verdict is to drop pkt, active member: false, may_enable: false, enabled: false, LACP status: negotiated 2023-06-18T08:51:37.725Z|00184|bond|DBG|bond balance-tcp: 2023-06-18T08:51:39.716Z|00004|bond(revalidator3)|DBG|bond balance-tcp: member ens4f1: active-backup bond received packet on backup member destined for 00:de:ad:96:02:02 2023-06-18T08:51:39.717Z|00005|bond(revalidator3)|DBG|bond balance-tcp: member ens4f1: admissibility verdict is to drop pkt, active member: false, may_enable: false, enabled: false, LACP status: configured 2023-06-18T08:51:48.792Z|00185|bond|INFO|member ens4f1: link state up 2023-06-18T08:51:48.792Z|00186|bond|INFO|member ens4f1: enabled 2023-06-18T08:51:48.792Z|00187|bond|INFO|bond balance-tcp: active member is now ens4f1 2023-06-18T08:51:54.088Z|00188|bond|INFO|member ens4f0: link state up 2023-06-18T08:51:54.088Z|00189|bond|INFO|member ens4f0: enabled 2023-06-18T08:54:04.410Z|00190|bond|INFO|member ens4f0: link state down 2023-06-18T08:54:04.411Z|00191|bond|INFO|member ens4f0: disabled 2023-06-18T08:54:09.136Z|00192|bond|INFO|member ens4f1: link state down 2023-06-18T08:54:09.136Z|00193|bond|INFO|member ens4f1: disabled 2023-06-18T08:54:09.136Z|00194|bond|INFO|bond balance-tcp: all members disabled 2023-06-18T08:54:09.137Z|00006|bond(revalidator3)|DBG|bond balance-tcp: member ens4f1: active-backup bond received packet on backup member destined for 00:de:ad:96:02:02 2023-06-18T08:54:09.137Z|00007|bond(revalidator3)|DBG|bond balance-tcp: member ens4f1: admissibility verdict is to drop pkt, active member: false, may_enable: true, enabled: false, LACP status: configured 2023-06-18T08:54:09.797Z|00195|bond|INFO|member ens4f0: link state up 2023-06-18T08:54:09.797Z|00196|bond|INFO|member ens4f0: enabled 2023-06-18T08:54:09.797Z|00197|bond|INFO|bond balance-tcp: active member is now ens4f0 2023-06-18T08:54:11.315Z|00198|bond|INFO|member ens4f0: link state down 2023-06-18T08:54:11.315Z|00199|bond|INFO|member ens4f0: disabled 2023-06-18T08:54:11.315Z|00200|bond|INFO|bond balance-tcp: all members disabled 2023-06-18T08:54:13.322Z|00201|bond|INFO|member ens4f0: link state up 2023-06-18T08:54:13.322Z|00202|bond|INFO|member ens4f0: enabled 2023-06-18T08:54:13.322Z|00203|bond|INFO|bond balance-tcp: active member is now ens4f0 2023-06-18T08:54:13.518Z|00204|bond|INFO|member ens4f0: link state down 2023-06-18T08:54:13.518Z|00205|bond|INFO|member ens4f0: disabled 2023-06-18T08:54:13.518Z|00206|bond|INFO|bond balance-tcp: all members disabled 2023-06-18T08:54:33.591Z|00207|bond|INFO|member ens4f1: link state up 2023-06-18T08:54:33.591Z|00208|bond|INFO|member ens4f1: enabled 2023-06-18T08:54:33.591Z|00209|bond|INFO|bond balance-tcp: active member is now ens4f1 2023-06-18T08:54:34.777Z|00210|bond|INFO|member ens4f1: link state down 2023-06-18T08:54:34.777Z|00211|bond|INFO|member ens4f1: disabled 2023-06-18T08:54:34.777Z|00212|bond|INFO|bond balance-tcp: all members disabled 2023-06-18T08:54:36.785Z|00213|bond|INFO|member ens4f1: link state up 2023-06-18T08:54:36.786Z|00214|bond|INFO|member ens4f1: enabled 2023-06-18T08:54:36.786Z|00215|bond|INFO|bond balance-tcp: active member is now ens4f1 2023-06-18T08:54:42.824Z|00216|bond|INFO|member ens4f0: link state up 2023-06-18T08:54:42.824Z|00217|bond|INFO|member ens4f0: enabled 2023-06-18T08:54:44.827Z|00218|bond|DBG|bond balance-tcp: ens4f1 0kB (h85: 0kB + h209: 0kB), ens4f0 0kB 2023-06-18T08:54:54.828Z|00219|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB), ens4f0 0kB 2023-06-18T08:55:04.830Z|00220|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB), ens4f0 0kB 2023-06-18T08:55:14.959Z|00221|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h225: 0kB + h209: 0kB), ens4f0 0kB 2023-06-18T08:55:24.959Z|00222|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h225: 0kB + h209: 0kB), ens4f0 0kB 2023-06-18T08:55:34.960Z|00223|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h225: 0kB), ens4f0 0kB 2023-06-18T08:55:45.354Z|00224|bond|DBG|bond balance-tcp: ens4f1 2kB (h85: 1kB + h130: 0kB + h166: 0kB + h209: 0kB + h225: 0kB), ens4f0 0kB 2023-06-18T08:55:55.356Z|00225|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h130: 0kB + h166: 0kB + h209: 0kB + h225: 0kB), ens4f0 0kB 2023-06-18T08:56:05.356Z|00226|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h130: 0kB + h166: 0kB + h225: 0kB), ens4f0 0kB 2023-06-18T08:56:15.362Z|00227|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h104: 0kB + h209: 0kB + h130: 0kB + h166: 0kB + h225: 0kB), ens4f0 0kB 2023-06-18T08:56:25.362Z|00228|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h104: 0kB + h130: 0kB + h166: 0kB), ens4f0 0kB 2023-06-18T08:56:35.364Z|00229|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h104: 0kB + h130: 0kB + h166: 0kB), ens4f0 0kB 2023-06-18T08:56:45.365Z|00230|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h104: 0kB + h130: 0kB + h166: 0kB), ens4f0 0kB 2023-06-18T08:56:55.371Z|00231|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h230: 0kB + h209: 0kB + h104: 0kB), ens4f0 0kB 2023-06-18T08:57:05.375Z|00232|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h230: 0kB + h104: 0kB), ens4f0 0kB 2023-06-18T08:57:15.378Z|00233|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h230: 0kB + h104: 0kB), ens4f0 0kB 2023-06-18T08:57:25.380Z|00234|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h230: 0kB), ens4f0 0kB 2023-06-18T08:57:35.383Z|00235|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h230: 0kB), ens4f0 0kB 2023-06-18T08:57:45.385Z|00236|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h230: 0kB), ens4f0 0kB 2023-06-18T08:57:55.386Z|00237|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB + h230: 0kB), ens4f0 0kB 2023-06-18T08:58:05.389Z|00238|bond|DBG|bond balance-tcp: ens4f1 1kB (h85: 1kB + h209: 0kB), ens4f0 0kB Actual results: 1. traffic didn't migrate to ens4f0 which configure in bond-primary. 2. ovs-appctl still show ens4f1 as active member Expected results: 1. traffic should migrate to ens4f0 2. ovs-appctl should show ens4f0 as active member Additional info:
If the desired effect is to change the active member right away, there is a command for that: > ovs-appctl bond/set-active-member balance-tcp ens4f0
Hello Mike From QE side, balance-tcp have a little different with active-backup mode. In balance-tcp mode, other_config:lacp-fallback-ab=true and other_config:bond-primary=ens4f0 was added before test port change to active-backup port. So when remove lacp channel group from switch side, The balance-tcp port is being reconstructed. And the object of the reconstruction is the active-backup port. I don't know if this refactoring corresponds to a kind of initialization. But it should not be interpreted as a running port. If the port is not a running port. I can't conclude that this is expected behavior.(If the desired effect is to change the active member right away). I hope you can share more of your understanding so that QE don't think this is a bug.
Hello Mike This issue only occurred when configure ovs lacp as passive. When ovs lacp as active, other_config:lacp-fallback-ab=true and other_config:bond-primary=ens1f0np0 work according to the configuration. Please see the beaker job: https://beaker.engineering.redhat.com/recipes/14281186#task163400891 ovs-bonding-balance-tcp-bond-primary-kernel-pf-bond-OVS-lacppassive-Switch-lacpactive --failed ovs-bonding-balance-tcp-bond-primary-kernel-pf-bond-OVS-lacpactive-Switch-lacpactive -- pass ovs-bonding-balance-tcp-bond-primary-kernel-pf-bond-OVS-lacpactive-Switch-lacppassive --pass ovs-bonding-balance-tcp-bond-primary-dpdk-pf-bond-OVS-lacppassive-Switch-lacpactive --failed ovs-bonding-balance-tcp-bond-primary-dpdk-pf-bond-OVS-lacpactive-Switch-lacpactive -- pass ovs-bonding-balance-tcp-bond-primary-dpdk-pf-bond-OVS-lacpactive-Switch-lacppassive --pass