Extend the switchdev layer 3 recipes to test ECMP routes, bridge port as
router ports and stressed L3 configuration.
Patch 1 and 7 add some functionality to the switchdev TestLib, needed for
the other recipes.
Patch 2 adds common logic for ECMP recipes, as they all share the same
topology and basic traffic testing functionality. Patches 3, 4 and 6 use
that common logic and add three different ECMP recipes.
Patch 5 add the get_routes functionality to the Controller's HostAPI. That
functionality is needed for some of the tests, mainly to validate that the
route got offloaded and the abort mechanism was not called.
Patch 8 add router stress recipe, that adds large amount of routes and
validates that traffic acts accordingly.
Patch 9, 10 adds recipe for vlan .1d/.1q bridge as router ports.
Yotam Gigi (10):
recipes: switchdev: TestLib: Make the pktgen dst_eth controllable
recipes: switchdev: Add ECMP common logic module
recipes: switchdev: Add recipe for basic ECMP topology
recipes: switchdev: Add recipe for ECMP with link down
HostAPI: Add get_routes function
recipes: switchdev: Add recipe for max ecmp size
recipes: switchdev: TestLib: Allow using destination range in pktgen
recipes: switchdev: Add recipe for stressed L3 routing
recipes: switchdev: Add recipe for .1q bridge as a rif
recipes: switchdev: Add recipe for .1d bridge as a rif
lnst/Controller/Machine.py | 4 +
lnst/Controller/Task.py | 3 +
lnst/Slave/NetTestSlave.py | 58 +++++++++++++
recipes/switchdev/TestLib.py | 7 +-
recipes/switchdev/ecmp_common.py | 107 +++++++++++++++++++++++
recipes/switchdev/l3-005-ecmp-basic.py | 59 +++++++++++++
recipes/switchdev/l3-005-ecmp-basic.xml | 33 ++++++++
recipes/switchdev/l3-006-ecmp-linkdown.py | 101 ++++++++++++++++++++++
recipes/switchdev/l3-006-ecmp-linkdown.xml | 33 ++++++++
recipes/switchdev/l3-007-ecmp-maxsize.py | 71 ++++++++++++++++
recipes/switchdev/l3-007-ecmp-maxsize.xml | 33 ++++++++
recipes/switchdev/l3-008-routes_stress.py | 132 +++++++++++++++++++++++++++++
recipes/switchdev/l3-008-routes_stress.xml | 24 ++++++
recipes/switchdev/l3-009-1q_bridge_rif.py | 104 +++++++++++++++++++++++
recipes/switchdev/l3-009-1q_bridge_rif.xml | 26 ++++++
recipes/switchdev/l3-010-1d_bridge_rif.py | 103 ++++++++++++++++++++++
recipes/switchdev/l3-010-1d_bridge_rif.xml | 26 ++++++
17 files changed, 922 insertions(+), 2 deletions(-)
create mode 100644 recipes/switchdev/ecmp_common.py
create mode 100644 recipes/switchdev/l3-005-ecmp-basic.py
create mode 100644 recipes/switchdev/l3-005-ecmp-basic.xml
create mode 100644 recipes/switchdev/l3-006-ecmp-linkdown.py
create mode 100644 recipes/switchdev/l3-006-ecmp-linkdown.xml
create mode 100644 recipes/switchdev/l3-007-ecmp-maxsize.py
create mode 100644 recipes/switchdev/l3-007-ecmp-maxsize.xml
create mode 100644 recipes/switchdev/l3-008-routes_stress.py
create mode 100644 recipes/switchdev/l3-008-routes_stress.xml
create mode 100644 recipes/switchdev/l3-009-1q_bridge_rif.py
create mode 100644 recipes/switchdev/l3-009-1q_bridge_rif.xml
create mode 100644 recipes/switchdev/l3-010-1d_bridge_rif.py
create mode 100644 recipes/switchdev/l3-010-1d_bridge_rif.xml
--
2.8.4