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 1893588

Summary: [OVS-DPDK-BONDING][broadcom] create ovs dpdk bonding failed with var/run/openvswitch/db.sock: receive error: Connection reset by peer
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Hekai Wang <hewang>
Component: openvswitchAssignee: Adrián Moreno <amorenoz>
openvswitch sub component: ovs-dpdk QA Contact: Hekai Wang <hewang>
Status: CLOSED CURRENTRELEASE Docs Contact:
Severity: unspecified    
Priority: unspecified CC: avishnoi, ctrautma, jhsiao, ktraynor, mhou, qding
Version: FDP 20.H   
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: 2022-10-11 02:44:18 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 2020-11-02 02:39:35 UTC
Description of problem:
Can not set up ovs dpdk bonding with ovs openvswitch-2.9.7-1.el7fdn.x86_64 on broadcom interface .


Version-Release number of selected component (if applicable):

Distro RHEL-7.9-20200824.2

[root@dell-per740-10 ~]# lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	RedHatEnterpriseServer
Description:	Red Hat Enterprise Linux Server release 7.9 (Maipo)
Release:	7.9
Codename:	Maipo

[root@dell-per740-10 ~]# uname  -a
Linux dell-per740-10.rhts.eng.pek2.redhat.com 3.10.0-1160.el7.x86_64 #1 SMP Tue Aug 18 14:50:17 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux

[root@dell-per740-10 ~]# ovs-vsctl list Open_vSwitch
_uuid               : dd77ae47-1942-480d-bf34-3c5791c85325
bridges             : [1c05c9d2-581b-4d38-acd3-366ab4ab98c8]
cur_cfg             : 2
datapath_types      : [netdev, system]
db_version          : "7.15.1"
external_ids        : {hostname="dell-per740-10.rhts.eng.pek2.redhat.com", rundir="/var/run/openvswitch", system-id="995dc4d3-22cb-4e5c-aa61-380c49e9c0c1"}
iface_types         : [dpdk, dpdkr, dpdkvhostuser, dpdkvhostuserclient, geneve, gre, internal, lisp, patch, stt, system, tap, vxlan]
manager_options     : []
next_cfg            : 3
other_config        : {dpdk-init="true", dpdk-socket-mem="4096,4096", pmd-cpu-mask="0xa00000a00000", vhost-iommu-support="true"}
ovs_version         : "2.9.7"
ssl                 : []
statistics          : {}
system_type         : rhel
system_version      : "7.9"


[root@dell-per740-10 ~]# rpm -qa | grep dpdk
dpdk-tools-18.11.8-1.el7_8.x86_64
kernel-kernel-networking-ovs-dpdk-bonding-new-bonding-1.0-160.noarch
dpdk-18.11.8-1.el7_8.x86_64
[root@dell-per740-10 ~]# 





How reproducible:
100%

Steps to Reproduce:
Here a job link , just create ovs dpdk bonding 
https://beaker.engineering.redhat.com/jobs/4697478

install openvswitch
install dpdk and dpdk tools
enable dpdk port to vfio-pci driver 

bonding_nic() 
{
    local nic1_mac=$1
    local nic2_mac=$2
    local bond_mode=$3
    local mtu_val=$4
    
    # if [[ "$NIC_DRIVER" == "nfp" ]];then
    #     #here need update /etc/sysconfig/openvswitch
    #     sed -ie 's/OVS_USER_ID/#OVS_USER_ID/g' /etc/sysconfig/openvswitch 

    # fi
    enable_openvswitch_as_root_user

    local pmd_cpu_mask
    if i_am_server;then
        pmd_cpu_mask=$SERVER_PMD_CPU_MASK
    elif i_am_client;then
        pmd_cpu_mask=$CLIENT_PMD_CPU_MASK
    fi

    

	modprobe openvswitch
	systemctl stop openvswitch
	sleep 3
	systemctl start openvswitch
	sleep 3

	ovs-vsctl --if-exists del-br ovsbr0
	sleep 5

	ovs-vsctl set Open_vSwitch . other_config={}
	ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
	ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="4096,4096"
	ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask="$pmd_cpu_mask"
    ovs-vsctl --no-wait set Open_vSwitch . other_config:vhost-iommu-support=true
	systemctl restart openvswitch
	sleep 3
	ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev

    if [[ $NIC_DRIVER_NAME =~ mlx.* ]];then
        ovs-vsctl add-bond ovsbr0 dpdkbond dpdk0 dpdk1 "bond_mode=${bond_mode}" \
        -- set Interface dpdk0 type=dpdk options:dpdk-devargs=class=eth,mac=${nic1_mac} mtu_request=${mtu_val} \
        -- set Interface dpdk1 type=dpdk options:dpdk-devargs=class=eth,mac=${nic2_mac} mtu_request=${mtu_val}
    else
        ovs-vsctl add-bond ovsbr0 dpdkbond dpdk0 dpdk1 "bond_mode=${bond_mode}" \
        -- set Interface dpdk0 type=dpdk options:dpdk-devargs=${NIC1_BUS_INFO} \
        -- set Interface dpdk1 type=dpdk options:dpdk-devargs=${NIC2_BUS_INFO}
    fi

    ovs-vsctl set interface dpdk0 options:dpdk-lsc-interrupt=true
    ovs-vsctl set interface dpdk1 options:dpdk-lsc-interrupt=true

    #set dpdkbond port with vlan mode trunk and permit all vlans
    ovs-vsctl set Port dpdkbond vlan_mode=trunk
    ovs-vsctl list Port dpdkbond

    #set updelay and downdelay for test
    ovs-vsctl set Port dpdkbond bond_updelay=5
    ovs-vsctl set Port dpdkbond bond_downdelay=5

    local updelay=`ovs-vsctl list Port dpdkbond | grep bond_updelay | awk '{print $NF}'`
    local downdelay=`ovs-vsctl list Port dpdkbond | grep bond_downdelay | awk '{print $NF}'`
    rlAssertEquals "Check bond up delay time " "$updelay" "5"
    rlAssertEquals "Check bond down delay time " "$downdelay" "5"
    ovs-vsctl list Port dpdkbond
    ovs-vsctl set Port dpdkbond bond_updelay=0
    ovs-vsctl set Port dpdkbond bond_downdelay=0

    #set lacp_fallback_ab: and check
    #set bond-rebalance-interval
    if [[ $bond_mode == $OVS_BOND_MODE_BALANCE_TCP ]]
    then
        rlLog "Current mode ${bond_mode}"
        rlLog "set ther-config:lacp-fallback-ab"
        rlLog "set other_config:bond-rebalance-interval"
        ovs-vsctl set Port dpdkbond other-config:lacp-fallback-ab=true
        ovs-vsctl set Port dpdkbond other_config:bond-rebalance-interval=10000
    elif [[ $bond_mode == $OVS_BOND_MODE_BALANCE_SLB ]]
    then
        rlLog "set other_config:bond-rebalance-interval"
        ovs-vsctl set Port dpdkbond other_config:bond-rebalance-interval=10000
    else
        rlLog "Current mode ${bond_mode}"
    fi
	
    #ovs-vsctl add-port ovsbr0 vhost0 -- set interface vhost0 type=dpdkvhostuser
    ovs-vsctl add-port ovsbr0 vhost0 -- set interface vhost0 type=dpdkvhostuserclient options:vhost-server-path=/tmp/vhost0
	#chmod 777 /var/run/openvswitch/vhost0

	ovs-ofctl del-flows ovsbr0
	ovs-ofctl add-flow ovsbr0 actions=NORMAL

	sleep 2
	ovs-vsctl show
	sleep 5
	echo "after bonding nic, check the bond status"
	ovs-appctl bond/show
    sleep 30
    ovs-appctl bond/show
}

bonding_nic


1.
2.
3.

Actual results:
:: [ 20:57:01 ] :: [  BEGIN   ] :: Running 'bonding_nic 00:10:18:ad:1f:20 00:10:18:ad:1f:21 balance-tcp 1500'
ovs-vswitchd PID is: 5597
Setting up watches.
Watches established.
Setting up watches.
Watches established.
Setting up watches.
Watches established.
ovs-vswitchd PID is: 5791
Setting up watches.
Watches established.
2020-11-02T01:57:35Z|00002|jsonrpc|WARN|unix:/var/run/openvswitch/db.sock: receive error: Connection reset by peer
2020-11-02T01:57:35Z|00003|reconnect|WARN|unix:/var/run/openvswitch/db.sock: connection dropped (Connection reset by peer)
ovs-vswitchd PID is: 6046
Setting up watches.


Expected results:
It works fine .

Additional info: