Install EFA OpenStack Neutron Plugin

This section provides information required to install Extreme Fabric Automation OpenStack Neutron plugin on Ubuntu.

Before you begin

The prerequisites for installing the EFA OpenStack Neutron plugin are as follows:
  • Working knowledge of Linux
  • Experience in OpenStack deployment
  • Experience in managing EFA 2.x.x
  • Network nodes are prepared as required
  • All OpenStack compute, network, and controller node hostname name resolutions are setup (fully qualified Host names (fqdn) are not supported for beta release)
  • All OpenStack nodes are configured with unique hostnames
  • Working EFA Fabric using efa cli/rest
  • OpenStack nodes are connected to the leaf switches either in direct mode, VPC, or bonded mode
  • Bonding setup is done using 802.3ad


EFA OpenStack Neutron plugin supports only Extreme specific OpenStack services. If other OpenStack services are required, install the respective plugins prior to EFA OpenStack Neutron plugin installation.

All network and server connection settings can be saved to .csv files for configuring them simultaneously using the file option.


  1. Install the EFA OpenStack plugin RPM package.
    # $sudo rpm -U <RPM file>
  2. Note the Neutron configuration file layout.
    • Neutron configuration: /etc/neutron/neutron.conf
    • ML2 plugin configuration: /etc/neutron/plugins/ml2/ml2_conf.ini
    • Extreme EFA Mechanism driver or topology configuration: /etc/neutron/plugins/ml2/ml2_conf_extreme.ini
  3. Configure the M12 core_plugin in the neutron.conf file.
    service_plugins = trunk, segments, efa_topology_plugin
    Do not enable the reference router plugin.
  4. Enable Neutron in the ml2_conf_extreme.ini file to communicate with EFA.
    efa_rest_token = <efa_api_token for VIM_1>
    efa_cert_file = /root/gcla/extreme-ca-chain.crt
    efa_secure_mode = True
    efa_port = 443
    region_name = VIM_1
    region_shared = SHARED_TENANT
    #SHARED_TENANT is the name of the shared tenant created on EFA
    fabric_name = CNCF
  5. Enable the Neutron EFA extension plugin in the ml2_conf_extreme.ini file to build initial physical topology between OpenStack Compute nodes and TOR switches.
    efa_link_mapping_file = /home/ubuntu/link.csv
  6. Enable Extreme EFA mechanism drivers in ml2_conf.ini.
    tenant_network_types = vlan 
    type_drivers = vlan 
    mechanism_drivers = openvswitch,extreme_efa 
    network_vlan_ranges = physnet1:100:500 (Required vlan range) 
    bridge_mappings = physnet1:br0 (bridge used for datapath)
  7. Modify the system unit file to start Neutron with ml2_conf_extreme.ini.
    # ExecStart = /usr/local/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini  --config-file /etc/neutron/plugins/ml2/ml2_conf_extreme.ini 
    # systemctl daemon-reload
    On DevStack installation, modify the /etc/systemd/system/devstack@q-svc.service file.
  8. Restart the Neutron server.
    systemctl restart devstack@q-agt.service

    along with


    If you are installing using Open Source, use the sudo service neutron-* restart command.

    If you are installing using DevStack, use the sudo systemctl restart devstack@q-svc.service command.

  9. Verify if the status of the Neutron server is Active and confirm the following:
    • The Neutron service was started with the ml2_confi_extreme.ini file.
    • The efa-topology extension is loaded using openstack extension show efa-topology.
    # sudo systemctl status devstack@q-svc.service
    If you are installing using Open Source stack, use the sudo service neutron-* status command.