Description of problem: use bond/lacp check the active port is different from bond/show Version-Release number of selected component (if applicable): kernel version: 5.14.0-332.el9.x86_64 ovs version: openvswitch3.1-3.1.0-33.el9fdp test interfaces mac address [root@hp-dl388g10-03 ovs_bond_function]# ip link show ens4f0 6: ens4f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq master ovs-system state UP mode DEFAULT group default qlen 1000 link/ether 3c:fd:fe:bd:1c:a4 brd ff:ff:ff:ff:ff:ff altname enp175s0f0 [root@hp-dl388g10-03 ovs_bond_function]# ip link show ens4f1 8: ens4f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq master ovs-system state UP mode DEFAULT group default qlen 1000 link/ether 3c:fd:fe:bd:1c:a5 brd ff:ff:ff:ff:ff:ff altname enp175s0f1 How reproducible: 100% Steps to Reproduce: 1. create a channel group as active on switch side. 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 -------------------------------------------------------------------------------- 57 Po57(SD) Eth LACP Eth1/7/1(I) Eth1/7/2(D) 2. create balance-tcp port and set lacp as passive 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 3. check active member from ovs-appctl bond/show # ovs-appctl bond/show ---- balance-tcp ---- bond_mode: balance-tcp bond may use recirculation: yes, Recirc-ID : 4 bond-hash-basis: 0 lb_output action: disabled, bond-id: -1 updelay: 0 ms downdelay: 0 ms next rebalance: 580 ms lacp_status: negotiated lacp_fallback_ab: false active-backup primary: <none> 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. check the lacp status # ovs-appctl lacp/show ---- balance-tcp ---- status: passive negotiated sys_id: 3c:fd:fe:bd:1c:a4 sys_priority: 65534 aggregation key: 5 lacp_time: slow member: ens4f0: current attached port_id: 6 port_priority: 65535 may_enable: true actor sys_id: 3c:fd:fe:bd:1c:a4 actor sys_priority: 65534 actor port_id: 6 actor port_priority: 65535 actor key: 5 actor state: aggregation synchronized collecting distributing partner sys_id: b0:c5:3c:f6:36:c7 partner sys_priority: 32768 partner port_id: 281 partner port_priority: 32768 partner key: 56 partner state: activity aggregation synchronized collecting distributing member: ens4f1: current attached port_id: 5 port_priority: 65535 may_enable: true actor sys_id: 3c:fd:fe:bd:1c:a4 actor sys_priority: 65534 actor port_id: 5 actor port_priority: 65535 actor key: 5 actor state: aggregation synchronized collecting distributing partner sys_id: b0:c5:3c:f6:36:c7 partner sys_priority: 32768 partner port_id: 282 partner port_priority: 32768 partner key: 56 partner state: activity aggregation synchronized collecting distributing Actual results: 1. From bond/show, check the active member is ens4f1, which provide by bond_active_slave # ovs-vsctl list port balance-tcp _uuid : b94b0c9a-7957-49ee-97df-4dfa00e424cf bond_active_slave : "3c:fd:fe:bd:1c:a5" bond_downdelay : 0 bond_fake_iface : false bond_mode : balance-tcp bond_updelay : 0 cvlans : [] external_ids : {} fake_bridge : false interfaces : [5a14e297-515d-49c3-8dc8-22f48ce8f596, 75c67dd4-1310-4e33-a120-7b92126d84d4] lacp : passive mac : [] name : balance-tcp other_config : {} protected : false qos : [] rstp_statistics : {} rstp_status : {} statistics : {} status : {} tag : [] trunks : [] vlan_mode : [] Expected results: 1. when switch side set lacp active. the lacp active port as Eth1/7/1 (ens4f0) # show lacp interface ethernet 1/7/1 Interface Ethernet1/7/1 is up Channel group is 57 port channel is Po57 PDUs sent: 350918 PDUs rcvd: 180497 Markers sent: 0 Markers rcvd: 0 Marker response sent: 0 Marker response rcvd: 0 Unknown packets rcvd: 0 Illegal packets rcvd: 0 Lag Id: [ [(8000, b0-c5-3c-f6-36-c7, 38, 8000, 119), (fffe, 3c-fd-fe-bd-1c-a4, 5, ffff, 6)] ] Operational as aggregated link since Tue Jul 4 08:46:07 2023 Local Port: Eth1/7/1 MAC Address= b0-c5-3c-f6-36-c7 System Identifier=0x8000, Port Identifier=0x8000,0x119 Operational key=56 LACP_Activity=active LACP_Timeout=Long Timeout (30s) Synchronization=IN_SYNC Collecting=true Distributing=true Partner information refresh timeout=Long Timeout (90s) Actor Admin State=61 Actor Oper State=61 Neighbor: 0x6 MAC Address= 3c-fd-fe-bd-1c-a4 System Identifier=0xfffe, Port Identifier=0xffff,0x6 Operational key=5 LACP_Activity=passive LACP_Timeout=Long Timeout (30s) Synchronization=IN_SYNC Collecting=true Distributing=true Partner Admin State=60 Partner Oper State=60 Aggregate or Individual(True=1)= 1 Additional info:
the test background is ovs create balance-tcp port, use lacp as passive. Due to switch site as active, so lacp channel group will follow switch side. From switch side, Eth1/7/1 have low port_id that mean this port have high level. So, Eth1/7/1 will select as active port. Eth1/7/1 connect to ens4f0. So in this time, if I want to check lacp configuration on ovs. I can't directly found which interface as active on lacp channel group.The 'active member' on ovs-appctl bond/show used if LACP hasn't negotiated and lacp_fallback_ab is configured. so I just need to run ovs-appctl lacp/show, check the actor state and partner state and found which side have 'activity' tag, then check the sys_priority and port_id, compare which port have low number.
*** Bug 2221359 has been marked as a duplicate of this bug. ***