NETCONF Device Commands¶
This section shows the XML payloads generated by each NETCONF device driver
for each supported operation. The XML is rendered with example values
(VLAN 100, port Ethernet1/1) to illustrate the OpenConfig structure sent
to the switch via edit-config.
NetconfOpenConfigSwitch (netconf_openconfig)¶
NETCONF OpenConfig switch driver.
Manages network and port operations using OpenConfig YANG models
over NETCONF transport. Callable class variables (ADD_NETWORK,
DELETE_NETWORK, ADD_NETWORK_TO_TRUNK, REMOVE_NETWORK_FROM_TRUNK,
PLUG_PORT_TO_NETWORK, DELETE_PORT, ENABLE_PORT, DISABLE_PORT,
ADD_SUBPORTS_ON_TRUNK, DEL_SUBPORTS_ON_TRUNK) build OpenConfig
model objects that the base class serialises to XML and pushes
via send_config_to_device.
ADD_NETWORK¶
Create a VLAN on the device
<config>
<network-instances xmlns="http://openconfig.net/yang/network-instance">
<network-instance>
<name>default</name>
<vlans xmlns="http://openconfig.net/yang/vlan">
<vlan>
<vlan-id operation="merge">100</vlan-id>
<config operation="merge">
<vlan-id>100</vlan-id>
<name>aabbccdd11223344aabbccdd11223344</name>
<status>ACTIVE</status>
</config>
</vlan>
</vlans>
</network-instance>
</network-instances>
</config>
DELETE_NETWORK¶
Remove a VLAN from the device
<config>
<network-instances xmlns="http://openconfig.net/yang/network-instance">
<network-instance>
<name>default</name>
<vlans xmlns="http://openconfig.net/yang/vlan">
<vlan>
<vlan-id operation="remove">100</vlan-id>
<config operation="merge">
<vlan-id>100</vlan-id>
<name>neutron-DELETED-100</name>
<status>SUSPENDED</status>
</config>
</vlan>
</vlans>
</network-instance>
</network-instances>
</config>
ADD_NETWORK_TO_TRUNK¶
Tag trunk ports with a VLAN when a network is created
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>Ethernet1/48</name>
<config/>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet">
<config operation="merge"/>
<switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config operation="merge">
<trunk-vlans>100</trunk-vlans>
<interface-mode>TRUNK</interface-mode>
</config>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>
REMOVE_NETWORK_FROM_TRUNK¶
Untag trunk ports when a network is deleted
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>Ethernet1/48</name>
<config/>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet">
<config operation="merge"/>
<switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config operation="merge">
<trunk-vlans operation="remove">100</trunk-vlans>
<interface-mode>TRUNK</interface-mode>
</config>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>
PLUG_PORT_TO_NETWORK¶
Assign an access VLAN to a port
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>Ethernet1/1</name>
<config/>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet">
<config operation="merge"/>
<switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config operation="replace">
<access-vlan>100</access-vlan>
<interface-mode>ACCESS</interface-mode>
</config>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>
DELETE_PORT¶
Remove VLAN configuration from a port
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>Ethernet1/1</name>
<config>
<description operation="remove"/>
</config>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet">
<config operation="merge"/>
<switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config operation="remove"/>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>
ENABLE_PORT¶
Administratively enable a port
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>Ethernet1/1</name>
<config>
<enabled operation="merge">true</enabled>
</config>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet">
<config operation="merge"/>
<switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config operation="merge"/>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>
DISABLE_PORT¶
Administratively disable a port
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>Ethernet1/1</name>
<config>
<enabled operation="merge">false</enabled>
</config>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet">
<config operation="merge"/>
<switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config operation="merge"/>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>
ADD_SUBPORTS_ON_TRUNK¶
Add subport VLANs to a trunk port (converging with trunk_details)
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>Ethernet1/1</name>
<config/>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet">
<config operation="merge"/>
<switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config operation="replace">
<native-vlan>100</native-vlan>
<trunk-vlans>200</trunk-vlans>
<trunk-vlans>201</trunk-vlans>
<trunk-vlans>202</trunk-vlans>
<interface-mode>TRUNK</interface-mode>
</config>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>
DEL_SUBPORTS_ON_TRUNK¶
Remove subport VLANs from a trunk port (converging with trunk_details showing remaining subports)
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>Ethernet1/1</name>
<config/>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet">
<config operation="merge"/>
<switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config operation="replace">
<native-vlan>100</native-vlan>
<trunk-vlans>202</trunk-vlans>
<interface-mode>TRUNK</interface-mode>
</config>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>
PLUG_PORT_TO_NETWORK (trunk)¶
Assign a trunk port with native VLAN and subport VLANs
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>Ethernet1/1</name>
<config/>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet">
<config operation="merge"/>
<switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config operation="replace">
<native-vlan>100</native-vlan>
<trunk-vlans>200</trunk-vlans>
<trunk-vlans>201</trunk-vlans>
<trunk-vlans>202</trunk-vlans>
<interface-mode>TRUNK</interface-mode>
</config>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>