From: Ondrej Lichtner <olichtne(a)redhat.com>
Hi all,
This patchset is therefore NOT COMPLETE AND NOT FIT TO APPLY YET, I'm
seding this now to get an early round of reviews...
This is the first version of a patchset to refactor the Recipes.ENRT
package to make it more flexible wrt. generating measurements, this is a
pain point that we've hit with different type of recipes that we already
have:
* baremetal recipes, generating relatively simple iperf flows
* virtual recipes, being very similar however requiring different cpu
measurements generated along these flow measurements
* ipsec type recipes that generate more complex iperf flows
* ovs+dpdk type recipes that due to using trex have their own quirks
This version of the patchset was focused on adding support for the
second bullet in the list - the virtual recipes, and making sure that
baremetal recipes still work.
Ipsec recipes should still work the same way, the ovs+dpdk recipes;
however, likely require additional work.
There's also a note in the final commit that more work on adding type
hints to the Perf.* package.
And finally... documentation has not been updated and will be added in
the second version of the patchset.
Please take a look and provide any valuable feedback that I should work
on in the second version of the set.
-Ondrej
Ondrej Lichtner (8):
RecipeCommon.Perf.Measurements: add flows property to FlowMeasurements
RecipeCommon.Perf.Measurements.StatCPUMeasurement: sort hosts
create lnst.Recipes.ENRT.MeasurementGenerators
Recipes.ENRT.BaseEnrtRecipe: remove perf measurement generation
add lnst.Recipes.ENRT.BaremetalEnrtRecipe
add lnst.Recipes.ENRT.VirtualEnrtRecipe
refactor lnst.Recipes.ENRT.BaseEnrtRecipe
lnst.RecipeCommon.Perf: Evaluators refactor to add parent recipe
configuration
lnst/RecipeCommon/BaseResultEvaluator.py | 9 +-
.../Evaluators/BaselineCPUAverageEvaluator.py | 39 +++-
.../Perf/Evaluators/BaselineEvaluator.py | 77 ++++++--
.../BaselineFlowAverageEvaluator.py | 25 ++-
.../Perf/Evaluators/NonzeroFlowEvaluator.py | 18 +-
.../Perf/Measurements/BaseFlowMeasurement.py | 4 +
.../Perf/Measurements/IperfFlowMeasurement.py | 4 +
.../Perf/Measurements/StatCPUMeasurement.py | 2 +-
.../Perf/Measurements/TRexFlowMeasurement.py | 4 +
lnst/RecipeCommon/Perf/Recipe.py | 64 +++++--
lnst/Recipes/ENRT/BaremetalEnrtRecipe.py | 26 +++
lnst/Recipes/ENRT/BaseEnrtRecipe.py | 178 +++---------------
lnst/Recipes/ENRT/BondRecipe.py | 4 +-
lnst/Recipes/ENRT/DoubleBondRecipe.py | 4 +-
lnst/Recipes/ENRT/DoubleTeamRecipe.py | 4 +-
lnst/Recipes/ENRT/IpsecEspAeadRecipe.py | 4 +-
lnst/Recipes/ENRT/IpsecEspAhCompRecipe.py | 4 +-
.../BaseMeasurementGenerator.py | 3 +
...lowEndpointsStatCPUMeasurementGenerator.py | 26 +++
.../HypervisorsStatCPUMeasurementGenerator.py | 19 ++
.../IperfMeasurementGenerator.py | 146 ++++++++++++++
.../ENRT/MeasurementGenerators/__init__.py | 0
lnst/Recipes/ENRT/NoVirtOvsVxlanRecipe.py | 4 +-
.../ENRT/ShortLivedConnectionsRecipe.py | 4 +-
lnst/Recipes/ENRT/SimpleMacsecRecipe.py | 4 +-
lnst/Recipes/ENRT/SimpleNetworkRecipe.py | 7 +-
lnst/Recipes/ENRT/TeamRecipe.py | 4 +-
lnst/Recipes/ENRT/TeamVsBondRecipe.py | 4 +-
lnst/Recipes/ENRT/VirtOvsVxlanRecipe.py | 4 +-
.../VirtualBridgeVlanInGuestMirroredRecipe.py | 4 +-
.../ENRT/VirtualBridgeVlanInGuestRecipe.py | 4 +-
.../VirtualBridgeVlanInHostMirroredRecipe.py | 4 +-
.../ENRT/VirtualBridgeVlanInHostRecipe.py | 4 +-
.../ENRT/VirtualBridgeVlansOverBondRecipe.py | 4 +-
lnst/Recipes/ENRT/VirtualEnrtRecipe.py | 28 +++
...rtualOvsBridgeVlanInGuestMirroredRecipe.py | 4 +-
.../ENRT/VirtualOvsBridgeVlanInGuestRecipe.py | 4 +-
...irtualOvsBridgeVlanInHostMirroredRecipe.py | 4 +-
.../ENRT/VirtualOvsBridgeVlanInHostRecipe.py | 4 +-
.../VirtualOvsBridgeVlansOverBondRecipe.py | 4 +-
lnst/Recipes/ENRT/VlansOverBondRecipe.py | 4 +-
lnst/Recipes/ENRT/VlansOverTeamRecipe.py | 4 +-
lnst/Recipes/ENRT/VlansRecipe.py | 4 +-
lnst/Recipes/ENRT/VxlanMulticastRecipe.py | 4 +-
lnst/Recipes/ENRT/VxlanRemoteRecipe.py | 4 +-
45 files changed, 528 insertions(+), 255 deletions(-)
create mode 100644 lnst/Recipes/ENRT/BaremetalEnrtRecipe.py
create mode 100644 lnst/Recipes/ENRT/MeasurementGenerators/BaseMeasurementGenerator.py
create mode 100644 lnst/Recipes/ENRT/MeasurementGenerators/FlowEndpointsStatCPUMeasurementGenerator.py
create mode 100644 lnst/Recipes/ENRT/MeasurementGenerators/HypervisorsStatCPUMeasurementGenerator.py
create mode 100644 lnst/Recipes/ENRT/MeasurementGenerators/IperfMeasurementGenerator.py
create mode 100644 lnst/Recipes/ENRT/MeasurementGenerators/__init__.py
create mode 100644 lnst/Recipes/ENRT/VirtualEnrtRecipe.py
--
2.29.2