Guidelines, Errors, and Exceptions

The following a list of guidelines, limitations and exceptions to keep in mind while using the Pluribus ML2 plugin with the OpenStack deployment:

  • Vendor/versions of supported OpenStack: The Pluribus ML2 plugin is supported on OpenStack Queens release and with RedHat OpenStack 13.0 distro. However, the ML2 plugin is generic and may be compatible with later releases also. 

  • Supported deployment models of OpenStack: The ML2 plugin package is available from GitHub based on the OpenStack controller implementation. For Red Hat OpenStack controller, the ML2 plugin is packaged as a Docker image. For other controllers, the plugin can be downloaded from Git Hub.

  • Pre-requisites on Pluribus switches before creating on OpenStack node: 
    • Configure all the host (compute/controller) facing ports as edge ports
    • Configure leaf clusters
    • Create VTEP and ensure auto-tunnels are created or create static tunnels.

  • Configurations required on Pluribus switch before using OpenStack: You must first create the VTEPs (which in turn creates the auto-tunnels) or static tunnels on the Pluribus switch fabric. 

  • VLAN vs VXLAN provisioning: When you configure a VLAN network using the openstack network create command, the ML2 plugin creates the VLAN and assigns a VNI from a predefined offset (11million). The VNI is added to all the VTEPs or static tunnels. The VLANs used by the VMs running on the compute nodes are configured on the Pluribus fabric by the ML2 plugin. The ML2 plugin adds or removes the VNI to the tunnel.

Note: Pluribus ML2 plugin supports only VLAN-type network. Requests for other network types such VXLAN, Flat, and GRE will fail to create.

  • Supported OpenStack controllers: The ML2 plugin for Netvisor version 5.2.0 supports Red Hat OpenStack controller. However, the ML2 plugin is generic and should work with Ubuntu OpenStack controllers also.

Below is a list of error messages and exceptions to check for while configuring a VLAN network:

  • All the errors are logged in /var/log/container/neutron/server.log for Red Hat OpenStack controller (overcloud) and in /var/log/neutron/server.log for other OpenStack deployments.

  • Errors that you may encounter while creating an OpenStack network by using the openstack network create command:
    • If a VLAN already exists on the fabric, the ML2 plugin displays an error message: Vlan <vlan-id> already exists on fabric.
    • If a VXLAN is already in use, that is, if the VNI selected for a VLAN is already used by another VLAN in the fabric, an error message: vxlan <vni> already in use is displayed.
    • If there are no VTEPs or static tunnels configured on the switch fabric, an error message: Vlan create failed: vtep and tunnels not present on the switch fabric is displayed.

  • Error messages you may encounter while deleting an OpenStack network by using the openstack network delete command.
    • If the VLAN does not exist on the cluster switch, an error message: VLAN <vlan-id> does not exist in switch <switch name> is logged in server.log file. However, the ML2 plugin deletes the VLAN on other clusters and does not display any failure messages.

  • Errors displayed while creating an openstack port create and launching an instance:
    • No switch port found for host <hostname>: When a port create/update request is received by the plugin along with the binding host details, the plugin finds the host facing ports by using the lldp-show command on Pluribus switch. If no host facing ports are found, an error message: No switch port found for host <hostname> is displayed. The openstack port create command is executed only if the ML2 plugin can find at least one switch port for the host.
    • When some host facing ports are down, those ports are not displayed in the lldp-show command output and are not added to the VLAN. The ML2 plugin runs a daemon thread to periodically monitor ports table and checks for missing ports that were not added to the VLAN by comparing the lldp-show command output. When the port is back up and appears in the lldp-show command output, then the daemon thread adds the ports to the VLAN.

  • Other errors:
    • If the switch fails to configure the fabric for any reason and returns an error, then the plugin raises an exception with a  failure message in the REST API response.
    • If both the primary and secondary IP addresses specified in ml2_conf.ini file are unreachable during the configuration, the plugin displays an error message: The switches <switch name> are offline.