Fixes bug 1234826
This fix adds a "nexus_l3_enable" configuration boolean for the
Cisco Nexus plugin. When this config boolean is set to False (default),
then the Nexus switches are only used for L2 switching/segmentation, and
layer 3 functionality is deferred to the OVS subplugin / network
control node. If this config boolean is set to True, layer 3
functionality, e.g. switch virtual interfaces, are supported on
the Nexus switches. (Note that layer 3 functionality is not supported
on all versions/models Nexus switches.)
Some other things addressed with this fix:
- The l3_port_check keyword argument which is optionally passed to the
Cisco plugin's delete_port method was not being forwarded on to the
OVS (sub) plugin. This keyword argument needs to be forwarded to OVS
e.g. when the delete_port is being done in the context of a
router interface delete (whereby l3_port_check==False).
- UT test cases are added for new "nexus_l3_enable" config, which
exercise router interface add/delete.
- The Cisco test_network_plugin.py module is refactored/reorganized
in order to cleanly add a new router interface test class.
- The test_model_update_port_rollback test case was yielding a false
positive result (device_owner was not being passed to self.port).
Change-Id: I994b2b82769ea5e10e50dbe3a223d1518e99f714