From: Ondrej Lichtner <olichtne(a)redhat.com>
Hi,
what follows is a very large patch set with a lot of stuff happening in it.
Normally I would have split it up into at least 2 logical parts, but
unfortunately most of the changes introduced in the patch set is dependent on
each other. The reasoning behind all of the code should be nicely explained in
the commit messages, if you have any additional questions don't hesitate to ask.
One thing that I want to explain is the creation of a whole new concept of
the Controller Device Database, mirroring the one on the Slave so that I could
work on testing OvS vxlans. For now the implementation is just that and nothing
more. At the moment this makes the Controller look very ugly seeing as there's
both an Interface object and a Device object representing the same NIC but with
different information.
In the future I want to merge these two classes, mostly by replacing the current
Interface objects with the new Device objects extended with setters and other
features required for proper configuration. This however is a large
restructuring of the code and it would either depend or heavily conflict with
the implementation of python recipes which is why I chose to just do a very
quick and ugly implementation of a parallel concept that I can use for now while
we wait to merge in the Python recipes implementation.
v2: fixed a traceback when configuring veth devices - reported by jtluka, the 3
updated commits are:
InterfaceManager: fix rescan_devices method
InterfaceManager: extend Device::if_data method
InterfaceManager: add if_deleted update messages
Ondrej Lichtner (20):
NetConfigDevice: use link_up in Vxlan and Vlan devices
NetUtils: remove FIXME from scan_netdevs
NetUtils: add address information to the interface scan
InterfaceManager: handle RTM_{NEW, DEL}ADDR nl_messages
InterfaceManager: fix rescan_devices method
InterfaceManager: extend Device::if_data method
NetTestSlave: remake get_devices and add get_device
Machine: construct a Device database reflecting InterfaceManager state
Task: add DeviceAPI as extension of Machine device database
InterfaceManager: add if_deleted update messages
InterfaceManager: add Device objects to tmp_mapping sooner
InterfaceManager: rescan devices before checking if name used
InterfaceManager: make assign_name_generic publicly accessible
NetConfigCommon: add function get_slave_options
NetConfigDevice: extend NetConfigDeviceOvsBridge
RecipeParser, schema-recipe: extend OvS bridge XML configuration
PerfRepoUtils: add perfrepo_baseline_to_dict function
Netperf: allow bind option in client
RecipeCommon: add ModuleWrap
regression_tests: add phase3, starting with vxlan
lnst/Common/NetUtils.py | 20 +-
lnst/Controller/Machine.py | 148 +++++++++++-
lnst/Controller/NetTestController.py | 3 +
lnst/Controller/PerfRepoUtils.py | 16 ++
lnst/Controller/RecipeParser.py | 123 ++++++++--
lnst/Controller/Task.py | 58 ++++-
lnst/Controller/Wizard.py | 14 +-
lnst/RecipeCommon/ModuleWrap.py | 179 +++++++++++++++
lnst/Slave/InterfaceManager.py | 150 ++++++++++---
lnst/Slave/NetConfigCommon.py | 7 +
lnst/Slave/NetConfigDevice.py | 107 ++++++++-
lnst/Slave/NetTestSlave.py | 13 +-
.../regression_tests/phase3/2_virt_ovs_vxlan.py | 247 +++++++++++++++++++++
.../regression_tests/phase3/2_virt_ovs_vxlan.xml | 138 ++++++++++++
.../regression_tests/phase3/novirt_ovs_vxlan.py | 201 +++++++++++++++++
.../regression_tests/phase3/novirt_ovs_vxlan.xml | 86 +++++++
.../regression_tests/phase3/vxlan_multicast.xml | 66 ++++++
recipes/regression_tests/phase3/vxlan_remote.xml | 67 ++++++
recipes/regression_tests/phase3/vxlan_test.py | 247 +++++++++++++++++++++
schema-recipe.rng | 76 +++++--
test_modules/Netperf.py | 5 +
21 files changed, 1875 insertions(+), 96 deletions(-)
create mode 100644 lnst/RecipeCommon/ModuleWrap.py
create mode 100644 recipes/regression_tests/phase3/2_virt_ovs_vxlan.py
create mode 100644 recipes/regression_tests/phase3/2_virt_ovs_vxlan.xml
create mode 100644 recipes/regression_tests/phase3/novirt_ovs_vxlan.py
create mode 100644 recipes/regression_tests/phase3/novirt_ovs_vxlan.xml
create mode 100644 recipes/regression_tests/phase3/vxlan_multicast.xml
create mode 100644 recipes/regression_tests/phase3/vxlan_remote.xml
create mode 100644 recipes/regression_tests/phase3/vxlan_test.py
--
2.8.2