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 1726920

Summary: [ixgbe] ovs sriov bond can not work fine
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Hekai Wang <hewang>
Component: openvswitchAssignee: Adrián Moreno <amorenoz>
openvswitch sub component: other QA Contact: Hekai Wang <hewang>
Status: CLOSED EOL Docs Contact:
Severity: high    
Priority: high CC: ctrautma, fleitner, kzhang, qding, tredaelli
Version: FDP 19.D   
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-03-12 14:32:48 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 Hekai Wang 2019-07-04 05:47:38 UTC
Description of problem:
Create ovs bond with sriov vf interface ,find that ping can not work with it .

Version-Release number of selected component (if applicable):
[root@dell-per730-54 bond]# rpm -qa | grep openv
openvswitch-selinux-extra-policy-1.0-13.el7fdp.noarch
openvswitch-2.9.0-110.el7fdp.x86_64
[root@dell-per730-54 bond]# ethtool -i p6p1
driver: ixgbe
version: 5.1.0-k-rh7.6
firmware-version: 0x800008bd, 18.3.6
expansion-rom-version: 
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
[root@dell-per730-54 bond]# uname -a
Linux dell-per730-54.rhts.eng.pek2.redhat.com 3.10.0-957.el7.x86_64 #1 SMP Thu Oct 4 20:48:51 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@dell-per730-54 bond]# 


How reproducible:
always

Steps to Reproduce:

Server side

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   clear env for ovs_bond_functional_test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 01:25:30 ] :: [   LOG    ] :: 
:: [ 01:25:30 ] :: [   LOG    ] ::  modprobe -r veth
:: [ 01:25:30 ] :: [   LOG    ] ::  modprobe -r bonding
:: [ 01:25:30 ] :: [   LOG    ] ::  test -d /var/run/netns/ && ip -all netns del
:: [ 01:25:30 ] :: [   LOG    ] ::  modprobe openvswitch
:: [ 01:25:30 ] :: [   LOG    ] ::  systemctl start libvirtd
:: [ 01:25:30 ] :: [   LOG    ] ::  systemctl start openvswitch
:: [ 01:25:30 ] :: [   LOG    ] ::  ovs-vsctl --if-exists del-br ovsbr0
:: [ 01:25:30 ] :: [   LOG    ] ::  systemctl restart libvirtd
:: [ 01:25:30 ] :: [   LOG    ] ::  systemctl stop openvswitch

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Create VF for each PF for ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

        echo 0 > /sys/bus/pci/devices/0000:04:00.0/sriov_numvfs
        echo 1 > /sys/bus/pci/devices/0000:04:00.0/sriov_numvfs
        ip link set p6p1 up
        ip link show p6p1
        

        echo 0 > /sys/bus/pci/devices/0000:04:00.1/sriov_numvfs
        echo 1 > /sys/bus/pci/devices/0000:04:00.1/sriov_numvfs
        ip link set p6p2 up
        ip link show p6p2
        


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Create network namespace for ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [ 01:26:05 ] :: [   LOG    ] :: 
:: [ 01:26:05 ] :: [   LOG    ] ::  ip netns add ns1
:: [ 01:26:05 ] :: [   LOG    ] :: 
:: [ 01:26:05 ] :: [   LOG    ] ::  #create veth paris veth1--veth2
:: [ 01:26:05 ] :: [   LOG    ] ::  ip link add veth1 type veth peer name veth2
:: [ 01:26:05 ] :: [   LOG    ] ::  ip link set veth1 up 
:: [ 01:26:05 ] :: [   LOG    ] ::  ip link set veth2 up 
:: [ 01:26:05 ] :: [   LOG    ] :: 
:: [ 01:26:05 ] :: [   LOG    ] ::  #set veth1 into the namespace ns1
:: [ 01:26:05 ] :: [   LOG    ] ::  ip link set veth1 netns ns1
:: [ 01:26:05 ] :: [   LOG    ] ::  
:: [ 01:26:05 ] :: [   LOG    ] ::  #create vlan device in ns1 and config ip address both ipv4 and ipv6
:: [ 01:26:05 ] :: [   LOG    ] ::  ip netns exec ns1 ip link set veth1 up
:: [ 01:26:05 ] :: [   LOG    ] ::  ip netns exec ns1 ip link set veth1 mtu 1500
:: [ 01:26:05 ] :: [   LOG    ] ::  ip netns exec ns1 ip addr add 192.168.99.100/24 dev veth1
:: [ 01:26:05 ] :: [   LOG    ] ::  ip netns exec ns1 ip addr add 2001::100/64 dev veth1


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Create ovs bridge for ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 01:26:12 ] :: [   LOG    ] :: 
:: [ 01:26:12 ] :: [   LOG    ] ::  modprobe openvswitch
:: [ 01:26:12 ] :: [   LOG    ] ::  systemctl stop openvswitch
:: [ 01:26:12 ] :: [   LOG    ] ::  sleep 3
:: [ 01:26:12 ] :: [   LOG    ] ::  systemctl start openvswitch
:: [ 01:26:12 ] :: [   LOG    ] ::  sleep 3
:: [ 01:26:12 ] :: [   LOG    ] ::  ovs-vsctl --if-exists del-br ovsbr0
:: [ 01:26:12 ] :: [   LOG    ] ::  sleep 5
:: [ 01:26:12 ] :: [   LOG    ] ::  systemctl restart openvswitch
:: [ 01:26:12 ] :: [   LOG    ] ::  sleep 3
:: [ 01:26:12 ] :: [   LOG    ] ::  ovs-vsctl add-br ovsbr0
:: [ 01:26:12 ] :: [   LOG    ] ::  ovs-vsctl show

:: [ 01:26:27 ] :: [  BEGIN   ] :: Running 'ovs-vsctl show'
c67cfd50-a522-4454-887d-a58fd09d5c02
    Bridge "ovsbr0"
        Port "ovsbr0"
            Interface "ovsbr0"
                type: internal
    ovs_version: "2.9.0"
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Attach veth2 to ovs bridge ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 01:26:33 ] :: [   LOG    ] ::  ovs-vsctl add-port ovsbr0 veth2
:: [ 01:26:33 ] :: [   LOG    ] ::  

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Create ovs bond for ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 01:26:39 ] :: [   LOG    ] :: 
:: [ 01:26:39 ] :: [   LOG    ] ::  ovs-vsctl add-bond ovsbr0 bond0 p6p1_0 p6p2_0 bond_mode=active-backup 
:: [ 01:26:39 ] :: [   LOG    ] ::  #ovs-appctl lacp/show bond0
:: [ 01:26:39 ] :: [   LOG    ] ::  ovs-vsctl show 
:: [ 01:26:39 ] :: [   LOG    ] ::  
:: [ 01:26:40 ] :: [  BEGIN   ] :: Running 'ovs-vsctl show'
c67cfd50-a522-4454-887d-a58fd09d5c02
    Bridge "ovsbr0"
        Port "bond0"
            Interface "p6p1_0"
            Interface "p6p2_0"
        Port "ovsbr0"
            Interface "ovsbr0"
                type: internal
        Port "veth2"
            Interface "veth2"
    ovs_version: "2.9.0"

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Connection ping check ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


:: [ 01:26:47 ] :: [   LOG    ] :: 
:: [ 01:26:48 ] :: [   LOG    ] ::  ip netns exec ns1 ping 192.168.99.102 -c 10 -s 1000 -M do
:: [ 01:26:48 ] :: [   LOG    ] ::  ip netns exec ns1 ping6 2001::102 -c 10 -s 1000 -M do
:: [ 01:26:48 ] :: [   LOG    ] ::  
:: [ 01:26:48 ] :: [  BEGIN   ] :: Running 'ip netns exec ns1 ping 192.168.99.102 -c 10 -s 1000 -M do'
PING 192.168.99.102 (192.168.99.102) 1000(1028) bytes of data.


--- 192.168.99.102 ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 8999ms

:: [ 01:27:07 ] :: [   FAIL   ] :: Command 'ip netns exec ns1 ping 192.168.99.102 -c 10 -s 1000 -M do' (Expected 0, got 1)
:: [ 01:27:07 ] :: [  BEGIN   ] :: Running 'ip netns exec ns1 ping6 2001::102 -c 10 -s 1000 -M do'
PING 2001::102(2001::102) 1000 data bytes

--- 2001::102 ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 9000ms

:: [ 01:27:26 ] :: [   FAIL   ] :: Command 'ip netns exec ns1 ping6 2001::102 -c 10 -s 1000 -M do' (Expected 0, got 1)


**********************************************************************
**********************************************************************
client side

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   clear env for ovs_bond_functional_test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 01:24:39 ] :: [   LOG    ] :: 
:: [ 01:24:39 ] :: [   LOG    ] ::  modprobe -r veth
:: [ 01:24:39 ] :: [   LOG    ] ::  modprobe -r bonding
:: [ 01:24:39 ] :: [   LOG    ] ::  test -d /var/run/netns/ && ip -all netns del
:: [ 01:24:39 ] :: [   LOG    ] ::  modprobe openvswitch
:: [ 01:24:39 ] :: [   LOG    ] ::  systemctl start libvirtd
:: [ 01:24:39 ] :: [   LOG    ] ::  systemctl start openvswitch
:: [ 01:24:39 ] :: [   LOG    ] ::  ovs-vsctl --if-exists del-br ovsbr0
:: [ 01:24:39 ] :: [   LOG    ] ::  systemctl restart libvirtd
:: [ 01:24:39 ] :: [   LOG    ] ::  systemctl stop openvswitch

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Create VF for each PF for ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


        echo 0 > /sys/bus/pci/devices/0000:05:00.0/sriov_numvfs
        echo 1 > /sys/bus/pci/devices/0000:05:00.0/sriov_numvfs
        ip link set p7p1 up
        ip link show p7p1
        

        echo 0 > /sys/bus/pci/devices/0000:05:00.1/sriov_numvfs
        echo 1 > /sys/bus/pci/devices/0000:05:00.1/sriov_numvfs
        ip link set p7p2 up
        ip link show p7p2
        

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Create network namespace for ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [ 01:25:14 ] :: [   LOG    ] :: 
:: [ 01:25:14 ] :: [   LOG    ] ::  ip netns add ns1
:: [ 01:25:14 ] :: [   LOG    ] ::  
:: [ 01:25:14 ] :: [   LOG    ] :: 
:: [ 01:25:14 ] :: [   LOG    ] ::  #create veth paris veth1--veth2
:: [ 01:25:14 ] :: [   LOG    ] ::  ip link add veth1 type veth peer name veth2
:: [ 01:25:14 ] :: [   LOG    ] ::  ip link set veth1 up 
:: [ 01:25:14 ] :: [   LOG    ] ::  ip link set veth2 up 
:: [ 01:25:14 ] :: [   LOG    ] :: 
:: [ 01:25:14 ] :: [   LOG    ] ::  #set veth1 into the namespace ns1
:: [ 01:25:14 ] :: [   LOG    ] ::  ip link set veth1 netns ns1
:: [ 01:25:14 ] :: [   LOG    ] ::  
:: [ 01:25:14 ] :: [   LOG    ] ::  #create vlan device in ns1 and config ip address both ipv4 and ipv6
:: [ 01:25:14 ] :: [   LOG    ] ::  ip netns exec ns1 ip link set veth1 up
:: [ 01:25:14 ] :: [   LOG    ] ::  ip netns exec ns1 ip link set veth1 mtu 1500
:: [ 01:25:14 ] :: [   LOG    ] ::  ip netns exec ns1 ip addr add 192.168.99.102/24 dev veth1
:: [ 01:25:14 ] :: [   LOG    ] ::  ip netns exec ns1 ip addr add 2001::102/64 dev veth1


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Create ovs bridge for ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 01:25:21 ] :: [   LOG    ] :: 
:: [ 01:25:21 ] :: [   LOG    ] ::  modprobe openvswitch
:: [ 01:25:21 ] :: [   LOG    ] ::  systemctl stop openvswitch
:: [ 01:25:21 ] :: [   LOG    ] ::  sleep 3
:: [ 01:25:21 ] :: [   LOG    ] ::  systemctl start openvswitch
:: [ 01:25:21 ] :: [   LOG    ] ::  sleep 3
:: [ 01:25:21 ] :: [   LOG    ] ::  ovs-vsctl --if-exists del-br ovsbr0
:: [ 01:25:21 ] :: [   LOG    ] ::  sleep 5
:: [ 01:25:21 ] :: [   LOG    ] ::  systemctl restart openvswitch
:: [ 01:25:21 ] :: [   LOG    ] ::  sleep 3
:: [ 01:25:21 ] :: [   LOG    ] ::  ovs-vsctl add-br ovsbr0
:: [ 01:25:21 ] :: [   LOG    ] ::  ovs-vsctl show
:: [ 01:25:21 ] :: [   LOG    ] ::  
:: [ 01:25:36 ] :: [  BEGIN   ] :: Running 'ovs-vsctl show'
5f2b6ba3-3fc5-47e2-826b-3f07f25f6d8a
    Bridge "ovsbr0"
        Port "ovsbr0"
            Interface "ovsbr0"
                type: internal
    ovs_version: "2.9.0"

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Attach veth2 to ovs bridge ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 01:25:42 ] :: [   LOG    ] :: 
:: [ 01:25:42 ] :: [   LOG    ] ::  ovs-vsctl add-port ovsbr0 veth2


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Create ovs bond for ovs_bond_functional_test active-backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 01:25:48 ] :: [   LOG    ] :: 
:: [ 01:25:48 ] :: [   LOG    ] ::  ovs-vsctl add-bond ovsbr0 bond0 p7p1_0 p7p2_0 bond_mode=active-backup 
:: [ 01:25:48 ] :: [   LOG    ] ::  #ovs-appctl lacp/show bond0
:: [ 01:25:48 ] :: [   LOG    ] ::  ovs-vsctl show 
:: [ 01:25:48 ] :: [   LOG    ] ::  
:: [ 01:25:48 ] :: [  BEGIN   ] :: Running 'ovs-vsctl show'
5f2b6ba3-3fc5-47e2-826b-3f07f25f6d8a
    Bridge "ovsbr0"
        Port "veth2"
            Interface "veth2"
        Port "ovsbr0"
            Interface "ovsbr0"
                type: internal
        Port "bond0"
            Interface "p7p2_0"
            Interface "p7p1_0"
    ovs_version: "2.9.0"


Actual results:
ping can not work 

Expected results:
ping can works fine .

Additional info:

Comment 1 Matteo Croce 2020-02-28 17:30:21 UTC
Hi,

can you drop me a shell on a machine with the failing setup?

thanks,

Comment 20 Flavio Leitner 2024-03-12 14:32:48 UTC
Hi,
The Open vSwitch 2.9 is no longer supported.
If this issue is still relevant, please open a new ticket using a supported Open vSwitch version at https://issues.redhat.com/projects/FDP
Thanks