[PATCH lnst 00/10] Layer 2 Multicast support
by Elad Raz
Hi,
This patchset add switchdev recipes for layer 2 multicast. The pacthset starts
introducing support with named namespaces. Using named namespace allow easy
debugging, a user can simply execute "ip netns exec <ns> bash" and see what is
been configured inside the namespace.
The link_stat() command, or "ip -s link" command is used to understand how many
packets were send and receive over the interface. It's been used in the
Multicast recipes to check selective traffic only for the joined networks. In
addition a second patch automatically adds "ip -s link" on all interfaces and
debug display the information. It's also useful for debugging connection and
understand where the faults are.
The "set_addresses" is used to on the fly assign IP address without "resetting"
interface (which kills veth paris).
I'm preparing a follow-up patch which will add Layer 3 routing support.
Elad Raz (10):
NetTestSlave: Adding named namespace to netns
InterfaceAPI: Adding get_netns()
InterfaceAPI: Adding link_stat() command
InterfaceAPI: Adding set_addresses() command
InterfaceAPI: Adding slave route support
Controller: Dump interface statistics at exit
switchdev: TestLib: Adding support for netns
switchdev: TestLib: changing _generate_default_desc() to be
multi-iface
switchdev: TestLib: Adding iperf_mc() command
recipes: switchdev: Adding multicast recipe
lnst/Controller/Machine.py | 34 +++++++++
lnst/Controller/Task.py | 15 ++++
lnst/Slave/InterfaceManager.py | 38 ++++++++++
lnst/Slave/NetConfigDevice.py | 3 +
lnst/Slave/NetTestSlave.py | 62 +++++++++++++++-
recipes/switchdev/TestLib.py | 128 +++++++++++++++++++++++++++++---
recipes/switchdev/l2-020-bridge_mdb.py | 50 +++++++++++++
recipes/switchdev/l2-020-bridge_mdb.xml | 70 +++++++++++++++++
8 files changed, 385 insertions(+), 15 deletions(-)
create mode 100644 recipes/switchdev/l2-020-bridge_mdb.py
create mode 100644 recipes/switchdev/l2-020-bridge_mdb.xml
--
2.4.3
7 years, 11 months
[PATCH 00/20] phase3 vxlan tests and InterfaceManager improvements
by Ondrej Lichtner
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
7 years, 11 months
[PATCH 00/20] phase3 vxlan tests and InterfaceManager improvements
by Ondrej Lichtner
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.
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
7 years, 11 months