DPDK on Cisco UCS - OVS user Bridge report "cannot open datapath local port br-provider-vnic7 (Device or resource busy)"

Solution In Progress - Updated -

Issue

  • DPDK is configured the same way for 2 vNIC on the compute nic-config template.

  • Each vNIC has its own ovs user bridge. There is no bond since HA is manage at UCS Manager profile.

  • Behavior in the resulting configurtion is different for br-provider-vnic6 and br-provider-vnic7.

  • The following nic templates are being used:

             - type: ovs_user_bridge
                name: br-provider-vnic6
                use_dhcp: false
                mtu: 9000
                members:
                  - type: ovs_dpdk_port
                    name: dpdk0
                    mtu: 9000
                    members:
                      - type: interface
                        name: nic6
              - type: ovs_user_bridge
                name: br-provider-vnic7
                use_dhcp: false
                mtu: 9000
                members:
                  - type: ovs_dpdk_port
                    name: dpdk1
                    mtu: 9000
                    members:
                      - type: interface
                        name: nic7
  • ovs-vsctl show reports the following error:
[root@overcloud-compute-0 openvswitch]# ovs-vsctl show
d90308e9-d3f3-4de1-b9b5-66543bd2afe9
    Manager "ptcp:6640:127.0.0.1"
        is_connected: true
    Bridge "br-provider-vnic7"
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port "phy-br-pr9fbad8"
            Interface "phy-br-pr9fbad8"
                type: patch
                options: {peer="int-br-pr9fbad8"}
        Port "dpdk1"
            Interface "dpdk1"
                type: dpdk
                options: {dpdk-devargs="0000:11:00.0"}
        Port "br-provider-vnic7"
            Interface "br-provider-vnic7"
                type: internal
                error: "could not open network device br-provider-vnic7 (Device or resource busy)"
    Bridge br-int
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port "int-br-pr62c3e5"
            Interface "int-br-pr62c3e5"
                type: patch
                options: {peer="phy-br-pr62c3e5"}
        Port "int-br-pr9fbad8"
            Interface "int-br-pr9fbad8"
                type: patch
                options: {peer="phy-br-pr9fbad8"}
        Port patch-tun
            Interface patch-tun
                type: patch
                options: {peer=patch-int}
        Port br-int
            Interface br-int
                type: internal
    Bridge br-tun
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port "vxlan-0a010013"
            Interface "vxlan-0a010013"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="10.10.10.10", out_key=flow, remote_ip="10.1.0.19"}
        Port "vxlan-0a010011"
            Interface "vxlan-0a010011"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="10.10.10.10", out_key=flow, remote_ip="10.10.10.11"}
        Port "vxlan-0a010012"
            Interface "vxlan-0a010012"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="10.10.10.10", out_key=flow, remote_ip="10.10.10.12"}
        Port "vxlan-0a010017"
            Interface "vxlan-0a010017"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="10.10.10.10", out_key=flow, remote_ip="10.10.10.13"}
        Port br-tun
            Interface br-tun
                type: internal
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
        Port "vxlan-0a01001a"
            Interface "vxlan-0a01001a"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="10.10.10.10", out_key=flow, remote_ip="10.10.10.14"}
    Bridge "br-provider-vnic6"
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port "br-provider-vnic6"
            Interface "br-provider-vnic6"
                type: internal
        Port "dpdk0"
            Interface "dpdk0"
                type: dpdk
                options: {dpdk-devargs="0000:10:00.0"}
        Port "phy-br-pr62c3e5"
            Interface "phy-br-pr62c3e5"
                type: patch
                options: {peer="int-br-pr62c3e5"}
    ovs_version: "2.9.0"
  • /var/log/openvswitch/ovs-vswitchd.log shows errors similar to these:
019-10-04T09:50:27.018Z|00090|netdev_linux|WARN|br-provider-vnic7: creating tap device failed: Device or resource busy
2019-10-04T09:50:27.018Z|00091|bridge|WARN|could not open network device br-provider-vnic7 (Device or resource busy)
2019-10-04T09:50:27.018Z|00092|bridge|INFO|bridge br-provider-vnic7: using datapath ID 00008a55a43c1d4c
2019-10-04T09:50:27.018Z|00093|connmgr|INFO|br-provider-vnic7: added service controller "punix:/var/run/openvswitch/br-provider-vnic7.mgmt"

Environment

  • Red Hat OpenStack Platform 13.0 (RHOSP)

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content