Bug 1821843

Summary: mlx5: VF Lag slave stays up even when switch port is down
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Amit Supugade <asupugad>
Component: openvswitch2.13Assignee: Adrián Moreno <amorenoz>
Status: NEW --- QA Contact: qding
Severity: medium Docs Contact:
Priority: medium    
Version: RHEL 8.0CC: ctrautma, jhsiao, mleitner, ralongi
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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 Amit Supugade 2020-04-07 17:37:00 UTC
Description of problem:
Configure VF lag LACP mode and configure port channel on switch.
When I bring down one of the switch port, the slave port stays up. The slave port should go down.

Version-Release number of selected component (if applicable):
openvswitch2.13-2.13.0-9.el8fdp.x86_64.rpm


How reproducible:
Always

Steps to Reproduce:
1. Configure vf lag- lacp mode
2. Set up port channel on switch
3. Bring down one of the switch ports

Actual results:
When I bring down switch port, Link Failure count increased but MII Status stays up.
Command- cat /proc/net/bonding/$BOND

Expected results:
MII status of slave port should be down when switch port is down.

Additional info:
# Install ovs.
# Setup link aggregator on switch.

nic1=enp3s0f0
nic2=enp3s0f1
REP1=eth1
REP2=eth2
BOND=bond0

nic1_pci=$(ethtool -i $nic1 | grep bus-info | awk '{print $2}')
nic2_pci=$(ethtool -i $nic2 | grep bus-info | awk '{print $2}')

enable_sriov $nic1_pci
enable_sriov $nic2_pci
unbind_vfs
enable_switchdev $nic1_pci
enable_switchdev $nic2_pci

ip link set dev $nic1 nomaster
ip link set dev $nic2 nomaster
ip link set dev $nic1 down
ip link set dev $nic2 down
setup_lacp_bond

dmesg | grep mlx5 | grep map
bind_vfs
ip link set dev $REP1 up
ip link set dev $REP2 up

ovs-vsctl add-port ${ovs_name} $REP1
ovs-vsctl add-port ${ovs_name} $REP2
ovs-vsctl add-port ${ovs_name} $BOND
ovs-vsctl show

#Bring down one of the switch port

cat /proc/net/bonding/$BOND


NIC-
#ethtool -i enp3s0f0
driver: mlx5_core
version: 5.0-0
firmware-version: 16.26.1040 (MT_0000000080)
expansion-rom-version: 
bus-info: 0000:03:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes