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: