Compatible Devices¶
Networking-generic-switch supports two families of device drivers: Netmiko (SSH/CLI) and NETCONF. The Mechanism Driver architecture allows adding new devices of either type.
OpenStack Neutron v2.0 => ML2 plugin => Generic Mechanism Driver => Device plugin
Netmiko (SSH/CLI) Devices¶
These device plugins use Netmiko library, which in turn uses Paramiko library to access and configure the switches via the SSH protocol.
Arista EOS
ArubaOS-CX
Brocade ICX (FastIron)
Cisco IOS
Cisco NX-OS (Nexus)
Cisco 300-Series
Cumulus Linux (via NCLU)
Cumulus Linux(via NVUE)
Dell Enterprise SONiC
Dell Force10 (OS9)(netmiko_dell_force10)
Dell OS10 (netmiko_dell_os10)
Dell PowerConnect
Fake
HPE 5900 Series Switches
HPE 5900 Series Switches
Huawei (VRP V3 and V5)
Huawei (VRP V8)
Juniper Junos OS
Mellanox MLNX-OS
Nokia SR Linux OS
OpenVSwitch
Pluribus
Ruijie
SONiC
Supermicro
Cisco Nexus (netmiko_cisco_nxos)¶
Known working firmware versions: 10.3.7
Notes:
Default state for switches is well suited for networking-generic-switch as long as SSH is utilized and the underlying role provided to the account permits configuration of switchports.
Pre-configuration of upstream network trunk ports to the neutron networking nodes is advisable, however the
ngs_trunk_portssetting should be suitable for most users as well.Use of an “enable” secret through the
secretconfiguration option has not been tested.
- Security group limitations:
Only ingress rules allowed
Only IPv4 rules are implemented
Supports rules for protocols: tcp, udp, icmp
Dell Force10 OS9 (netmiko_dell_force10)¶
Known working firmware versions: 9.13.0.0
Notes:
Dell Force10 Simulator for 9.13.0 lacks the ability to set a switchport mode to trunk, which prevents automated or even semi-automated testing. That being said, creating VLANs and tagging/untagging works as expected.
Uplink switchports to the rest of the network fabric must be configured in advance if the
ngs_trunk_portsswitch device level configuration option is not utilized.Use of SSH is expected and must be configured on the remote switch.
Set each port to “switchport” to enable L2 switchport mode.
Use of an “enable” secret through the switch level configuration option
secretwas the tested path. Depending on precise switch configuration and access control modeling, it may be possible to use without an enable secret, but that has not been tested.Security groups not yet implemented
Known Issues:
bug 2100641 is alieviated by setting a port to “switchport” before attempting to utilize networking-generic-switch.
Dell Force10 OS10 (netmiko_dell_os10)¶
Known working firmware version: 10.6.0.2.74
Notes:
Uplink switchports may need to be configured as Trunk ports prior to the use of networking-generic-switch through a “switchport mode trunk” command. Further specific trunk configuration may be necessary, however NGS can leverage the
ngs_trunk_portsconfiguration option and does appropriately tag switchports as permitted when creating/deleting attachments.Password authentication for networking-generic-switch needs to be setup in advance, specifically “ip ssh server enable” and “ip ssh server password-authentication” commands.
This driver was tested without the use of an enable secret to permit a higher level of configuration access within the Switch.
Security groups not yet implemented
Sonic - Community Distribution (netmiko_sonic)¶
Known working firmware version: master branch - March 2025
Notes:
The driver expects to be able to SSH into the switch running SONiC, execute sudo, and then execute configuration commands.
Ports must be in Layer-2 mode. As such,
sudo config interface ip remove $INTERFACE $IP_ADDRESS/$CIDRandsudo config switchport mode access $INTERFACEcommands may be required.Uplink switch ports should be configured in advance with the
sudo config switchport mode trunk $INTERFACEcommand. Testing for the configuration utilized this advanced state configuration of the trunk uplink ports with thengs_trunk_portsconfiguration option for Networking-Generic-Switch.Security groups not yet implemented
NETCONF Devices¶
These device plugins use ncclient library to access and configure switches via the NETCONF protocol (RFC 6241). See Management Interfaces for details on NETCONF management interface behaviour.
NETCONF OpenConfig (netconf_openconfig)¶
Compatible with switches supporting OpenConfig YANG models over NETCONF. Known platforms include Cisco NX-OS (Nexus 9000), Arista EOS, Juniper Junos and Nokia SR OS.
Supported operations:
Network (VLAN) management — create and delete VLANs in a named network-instance.
Port management — assign access VLANs to switch interfaces.
Trunk port tagging — automatically tag/untag
ngs_trunk_portswhen networks are created or deleted.Neutron trunk ports — dynamically add and remove subport VLANs on trunk ports via the Neutron trunk API.
Port enable/disable — administratively shut down inactive ports when
ngs_disable_inactive_portsis set.Default VLAN restore — restore
ngs_port_default_vlanwhen a port is released.
Not yet supported: bond/LACP, L2VNI, security groups.