In Nexus configuration, the valid range is 4096 – 16773119
gg33-N9K-9396PX-1(config-vlan)# vn-segment ?
<4096-16773119> Segment-id
When illegal value is defined for VNI value in ml2_conf.ini file for VXLAN, e.g.
[ml2_type_nexus_vxlan]
vni_ranges = 4000:4099
the following error/traceback is logged repeatedly in screen-q-svc.log until the VM is deleted:
2015-01-27 16:10:08.257 ERROR neutron.plugins.ml2.managers [req-bf44c116-09a1-42ac-afea-f6bac508c90e None None] Mechanism driver 'cisco_nexus' failed in update_port_postcommit
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers Traceback (most recent call last):
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 299, in _call_on_drivers
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers getattr(driver.obj, method_name)(context)
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py", line 389, in update_port_postcommit
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers self._configure_nve_member) if vxlan_segment else 0
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py", line 336, in _port_action_vxlan
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers func(vni, device_id, mcast_group, host_id)
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py", line 139, in _configure_nve_member
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers vni, mcast_group)
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py", line 334, in create_nve_member
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers self._edit_config(nexus_host, config=confstr)
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py", line 111, in _edit_config
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers raise cexc.NexusConfigFailed(config=config, exc=e)
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers NexusConfigFailed: Failed to configure Nexus:
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers <config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers <configure>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers <__XML__MODE__exec_configure>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers <interface>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers <nve>nve1</nve>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers <__XML__MODE_if-nve>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers <member>member vni 4000 mcast-group 225.1.1.1</member>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers </__XML__MODE_if-nve>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers </interface>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers </__XML__MODE__exec_configure>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers </configure>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers </config>
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers . Reason: Syntax error while parsing 'member vni 4000 mcast-group 225.1.1.1'
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers .
2015-01-27 16:10:08.257 TRACE neutron.plugins.ml2.managers
2015-01-27 16:10:08.259 ERROR oslo.messaging.rpc.dispatcher [req-bf44c116-09a1-42ac-afea-f6bac508c90e None None] Exception during message handling: update_port_postcommit failed.
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher Traceback (most recent call last):
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 134, in _dispatch_and_reply
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher incoming.message))
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 177, in _dispatch
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher return self._do_dispatch(endpoint, method, ctxt, args)
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 123, in _do_dispatch
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher result = getattr(endpoint, method)(ctxt, **new_args)
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher File "/opt/stack/neutron/neutron/plugins/ml2/rpc.py", line 161, in update_device_up
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher host)
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher File "/opt/stack/neutron/neutron/plugins/ml2/plugin.py", line 1196, in update_port_status
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher self.mechanism_manager.update_port_postcommit(mech_context)
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 535, in update_port_postcommit
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher continue_on_failure=True)
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 310, in _call_on_drivers
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher method=method_name
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher MechanismDriverError: update_port_postcommit failed.
2015-01-27 16:10:08.259 TRACE oslo.messaging.rpc.dispatcher
...
Request to add code in nexus_vxlan driver to check for valid VNI values defined in ml2_conf.ini.
VLAN already has such implemented. When invalid VLAN values are defined, Neutron server will not start.
Snippet of screen-q-svc.log:
2015-01-28 11:46:45.083 ERROR neutron.plugins.ml2.drivers.type_vlan [-] Failed to parse network_vlan_ranges. Service terminated!
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan Traceback (most recent call last):
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan File "/opt/stack/neutron/neutron/plugins/ml2/drivers/type_vlan.py", line 89, in _parse_network_vlan_ranges
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan cfg.CONF.ml2_type_vlan.network_vlan_ranges)
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan File "/opt/stack/neutron/neutron/plugins/common/utils.py", line 76, in parse_network_vlan_ranges
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan network, vlan_range = parse_network_vlan_range(entry)
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan File "/opt/stack/neutron/neutron/plugins/common/utils.py", line 66, in parse_network_vlan_range
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan verify_vlan_range(vlan_range)
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan File "/opt/stack/neutron/neutron/plugins/common/utils.py", line 48, in verify_vlan_range
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan error=_("%s is not a valid VLAN tag") % vlan_tag)
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan NetworkVlanRangeError: Invalid network VLAN range: '5000:6000' - '5000 is not a valid VLAN tag'
2015-01-28 11:46:45.083 TRACE neutron.plugins.ml2.drivers.type_vlan
Verified in Kilo that Neutron won't start with VNI values below 4096.
2015-04-21 10:52:26.216 INFO neutron. plugins. ml2.managers [-] Initializing driver for type 'nexus_vxlan' cisco.plugins. ml2.drivers. cisco.nexus. type_nexus_ vxlan [-] Failed to parse vni_ranges. Service terminated! cisco.plugins. ml2.drivers. cisco.nexus. type_nexus_ vxlan Traceback (most recent call last): cisco.plugins. ml2.drivers. cisco.nexus. type_nexus_ vxlan File "/usr/local/ lib/python2. 7/dist- packages/ networking_ cisco/plugins/ ml2/drivers/ cisc type_nexus_ vxlan.py" , line 78, in _verify_vni_ranges cisco.plugins. ml2.drivers. cisco.nexus. type_nexus_ vxlan cfg.CONF. ml2_type_ nexus_vxlan. vni_ranges, self.tunnel_ranges) cisco.plugins. ml2.drivers. cisco.nexus. type_nexus_ vxlan File "/usr/local/ lib/python2. 7/dist- packages/ networking_ cisco/plugins/ ml2/drivers/ cisc type_nexus_ vxlan.py" , line 96, in _parse_ nexus_vni_ ranges cisco.plugins. ml2.drivers. cisco.nexus. type_nexus_ vxlan self._parse_ nexus_vni_ range(tunnel_ range) cisco.plugins. ml2.drivers. cisco.nexus. type_nexus_ vxlan File "/usr/local/ lib/python2. 7/dist- packages/ networking_ cisco/plugins/ ml2/drivers/ cisc type_nexus_ vxlan.py" , line 109, in _parse_ nexus_vni_ range cisco.plugins. ml2.drivers. cisco.nexus. type_nexus_ vxlan {'id': ident}) cisco.plugins. ml2.drivers. cisco.nexus. type_nexus_ vxlan NetworkTunnelRa ngeError: Invalid network Tunnel range: '2345:12599' - 2345 is not a valid Nexus VNI value. cisco.plugins. ml2.drivers. cisco.nexus. type_nexus_ vxlan
2015-04-21 10:52:26.217 ERROR networking_
2015-04-21 10:52:26.217 TRACE networking_
2015-04-21 10:52:26.217 TRACE networking_
o/nexus/
2015-04-21 10:52:26.217 TRACE networking_
2015-04-21 10:52:26.217 TRACE networking_
o/nexus/
2015-04-21 10:52:26.217 TRACE networking_
2015-04-21 10:52:26.217 TRACE networking_
o/nexus/
2015-04-21 10:52:26.217 TRACE networking_
2015-04-21 10:52:26.217 TRACE networking_
2015-04-21 10:52:26.217 TRACE networking_