Nexus Mechanism Driver Contributor Guide

DevStack Configuration Examples

For introductory details on DevStack, refer to How to Contribute. This section focuses on Nexus VLAN and VXLAN feature specific changes to DevStack’s configuration file local.conf. These changes should follow the section which installs networking-cisco repository as described in How to Contribute.

VLAN Configuration

The following sample configuration will provide you with Nexus VLAN Configuration. This configuration supports both normal VM as well as Baremetal. As you can see there is a lot of similarity between the neutron config file and the local.conf file so details in the neutron start-up config file sections Configuring neutron directly for Nexus apply here.

[[local|localrc]]
enable_plugin networking-cisco https://github.com/openstack/networking-cisco

# Set openstack passwords here.  For example, ADMIN_PASSWORD=ItsASecret

# disable_service/enable_service here. For example,
# disable_service tempest
# enable_service q-svc

# bring in latest code from repo.  (RECLONE=yes; OFFLINE=False)

Q_PLUGIN=ml2
Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch,cisco_nexus
Q_ML2_TENANT_NETWORK_TYPE=vlan
ML2_VLAN_RANGES=physnet1:100:109
ENABLE_TENANT_TUNNELS=False
ENABLE_TENANT_VLANS=True
PHYSICAL_NETWORK=physnet1
OVS_PHYSICAL_BRIDGE=br-eth1

[[post-config|/etc/neutron/plugins/ml2/ml2_conf.ini]]
[ml2]
extension_drivers = cisco_providernet_ext

[ml2_cisco]
switch_heartbeat_time = 30

[ml2_mech_cisco_nexus:192.168.1.1]
host_ports_mapping=ComputeHostA:[1/10]  # deprecates config `ComputeHostA=1/10`
username=admin
password=mySecretPasswordForNexus
vpc_pool=1001-1025,1030
intfcfg_portchannel=no lacp suspend-individual;spanning-tree port type edge trunk

[ml2_mech_cisco_nexus:192.168.2.2]
host_ports_mapping=ComputeHostB:[1/10]  # deprecates config `ComputeHostB=1/10`
username=admin
password=mySecretPasswordForNexus
vpc_pool=1001-1025,1030
intfcfg_portchannel=no lacp suspend-individual;spanning-tree port type edge trunk

VXLAN Configuration

In addition to the standard OpenStack settings, follow the local.conf file example below to configure the Nexus switch for VXLAN Terminal End Point (VTEP) support. As you can see there is a lot of similarity between the neutron config file and the local.conf file so details in the neutron start-up config file sections VXLAN Overlay Configuration apply here.

[[local|localrc]]
enable_plugin networking-cisco https://github.com/openstack/networking-cisco

Q_PLUGIN=ml2
Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch,cisco_nexus
Q_ML2_PLUGIN_TYPE_DRIVERS=nexus_vxlan,vlan
Q_ML2_TENANT_NETWORK_TYPE=nexus_vxlan
ML2_VLAN_RANGES=physnet1:100:109
ENABLE_TENANT_TUNNELS=False
ENABLE_TENANT_VLANS=True
PHYSICAL_NETWORK=physnet1
OVS_PHYSICAL_BRIDGE=br-eth1

[[post-config|/etc/neutron/plugins/ml2/ml2_conf.ini]]
[agent]
minimize_polling=True
tunnel_types=

[ml2]
extension_drivers = cisco_providernet_ext

[ml2_cisco]
switch_hearbeat_time = 30  # No longer required since 30 is now the default in this release.
nexus_driver = restapi     # No longer required since restapi is now the default in this release.

[ml2_mech_cisco_nexus:192.168.1.1]
host_ports_mapping=ComputeHostA:[1/10]  # deprecates config `ComputeHostA=1/10`
username=admin
password=secretPassword
ssh_port=22
physnet=physnet1

[ml2_mech_cisco_nexus:192.168.1.2]
host_ports_mapping=ComputeHostB:[1/10]  # deprecates config `ComputeHostB=1/10`
NetworkNode=1/11
username=admin
password=secretPassword
ssh_port=22
physnet=physnet1

[ml2_type_nexus_vxlan]
vni_ranges=50000:55000
mcast_ranges=225.1.1.1:225.1.1.2

[ml2_type_vlan]
network_vlan_ranges = physnet1:100:109

Source Code Location

Code location for the ML2 Nexus Mechanism Driver are found in the following directory:

{networking-cisco install directory}/networking_cisco/ml2_drivers/nexus