Instance created on compute node with OVS-DPDK enabled but no network communication

Solution Verified - Updated -

Environment

  • Red Hat OpenStack Platform 17.1

Issue

  • Overcloud deploy on Compute node with OVS-DPDK enabled succeeds, but no network communication is working for an instance using DPDK port.
  • The ovs-vswitchd.log shows a message that the dpdk port could not be created successfully.
|00338|netdev|WARN|could not create netdev dpdk-ens1f0np0 of unknown type dpdk
|00339|bridge|WARN|could not open network device dpdk-ens1f0np0 (Address family not supported by protocol)
|00340|netdev|WARN|could not create netdev dpdk-ens2f0np0 of unknown type dpdk
|00341|bridge|WARN|could not open network device dpdk-ens2f0np0 (Address family not supported by protocol)

Resolution

  • Deploy Overcloud again by including /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-dpdk.yaml in the Overcloud deploy command. Then the dpdk port is successfully created.
    Sample Overcloud deploy command
openstack overcloud deploy \
  --templates /usr/share/openstack-tripleo-heat-templates \
  --ntp-server clock.redhat.com,time1.google.com,time2.google.com,time3.google.com,time4.google.com \
  --stack overcloud \
  --roles-file $tht_path/roles/roles_data.yaml \
  -n $tht_path/network/network_data_v2.yaml \
  --deployed-server \
  -e /home/stack/templates/overcloud-baremetal-deployed.yaml \
  -e /home/stack/templates/overcloud-networks-deployed.yaml \
  -e /home/stack/templates/overcloud-vip-deployed.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-ha.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-dpdk.yaml \ <====(*)
  -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-sriov.yaml \
  -e /home/stack/containers-prepare-parameter.yaml \
  -e $tht_path/network-environment-overrides.yaml \
  -e $tht_path/api-policies.yaml \
  -e $tht_path/bridge-mappings.yaml \
  -e $tht_path/neutron-vlan-ranges.yaml \
  -e $tht_path/dpdk-config.yaml \
  -e $tht_path/sriov-config.yaml \
  --log-file overcloud_deployment.log

Root Cause

  • The neutron-ovn-dpdk.yaml template invoke neutron-ovn-dpdk-config-container-puppet.yaml to configure the ML2/OVN DPDK with puppet.

Diagnostic Steps

  • Open vSwitch's iface_types does not have a dpdk related type.
ovs-vsctl -t 5 list Open vSwitch
...
datapath_types      : [netdev, system]
...
db_version          : "8.3.1"
dpdk_initialized    : false
dpdk_version        : "DPDK 22.11.1"
...
iface_types         : [bareudp, erspan, geneve, gre, gtpu, internal, ip6erspan, ip6gre, lisp, patch, stt, system, tap, vxlan] <=====(*)
...
next_cfg            : 20
other_config        : {vlan-limit="0"}
ovs_version         : "3.1.2"
ssl                 : []
statistics          : {}iface_types
system_type         : rhel
system_version      : "9.2"
  • Device cannot be used properly message on dpdk-ens1f0np0 and dpdk-ens2f0np0.
ovs-vsctl -t 5 show
...
    Bridge br-ex
        fail_mode: standalone
        datapath_type: netdev
        Port bond-XXX
            Interface dpdk-ens1f0np0
                type: dpdk
                options: {dpdk-devargs="XXXXX", n_rxq="4"}
                error: "could not open network device dpdk-ens1f0np0 (Address family not supported by protocol)" <=======(*)
            Interface dpdk-ens2f0np0
                type: dpdk
                options: {dpdk-devargs="XXXXX", n_rxq="4"}
                error: "could not open network device dpdk-ens2f0np0 (Address family not supported by protocol)" <=======(*)
        Port br-ex
            Interface br-ex
                type: internal
...
  • The bonding device for ovs_dpdk_bond was not created successfully and does not exist.
ovs-appctl bond.show bond-XXX
...
no such bond
ovs-appctl: ovs-vswitchd: server returned an error

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments