Bug 2219562 - [ovs bond lacp]Active member is ambiguous in balance-tcp mode
Summary: [ovs bond lacp]Active member is ambiguous in balance-tcp mode
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux Fast Datapath
Classification: Red Hat
Component: openvswitch
Version: RHEL 9.0
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
: ---
Assignee: Mike Pattrick
QA Contact: mhou
URL:
Whiteboard:
: 2221359 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-07-04 10:30 UTC by mhou
Modified: 2023-07-13 07:25 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker FD-2990 0 None None None 2023-07-04 10:33:42 UTC

Description mhou 2023-07-04 10:30:17 UTC
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:

Comment 1 mhou 2023-07-08 09:24:48 UTC
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.

Comment 2 mhou 2023-07-08 10:07:47 UTC
*** Bug 2221359 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.