Bug 1726920 - [ixgbe] ovs sriov bond can not work fine
Summary: [ixgbe] ovs sriov bond can not work fine
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux Fast Datapath
Classification: Red Hat
Component: openvswitch
Version: FDP 19.D
Hardware: x86_64
OS: Linux
high
high
Target Milestone: ---
: ---
Assignee: Adrián Moreno
QA Contact: Hekai Wang
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-07-04 05:47 UTC by Hekai Wang
Modified: 2023-07-13 07:25 UTC (History)
4 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-91 0 None None None 2022-02-22 05:54:46 UTC

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,


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