-
Notifications
You must be signed in to change notification settings - Fork 31
Forwarding performance recipes #402
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Marking as a draft, it requires changes from #400 to be merged first |
3ce0e47 to
7c708be
Compare
de247d2 to
0610259
Compare
6b9e20c to
0e0102a
Compare
lnst/RecipeCommon/Perf/Measurements/Results/ForwardingMeasurementResults.py
Outdated
Show resolved
Hide resolved
lnst/Recipes/ENRT/MeasurementGenerators/ForwardingMeasurementGenerator.py
Outdated
Show resolved
Hide resolved
Implemented `InterfaceStatsMonitor` that periodically samples specified stats (by `stats` parameter) and saves them to `._res_data`.
6c38868 to
730bad2
Compare
|
Code wise looks ok. |
|
From the Beaker job. The test wide description contains duplicated IPs: |
a23626f to
b263b3b
Compare
Thanks, @jtluka , fixed. Tests for latest version in |
lnst/RecipeCommon/Perf/Measurements/Results/ForwardingMeasurementResults.py
Outdated
Show resolved
Hide resolved
lnst/RecipeCommon/Perf/Measurements/Results/ForwardingMeasurementResults.py
Outdated
Show resolved
Hide resolved
lnst/RecipeCommon/Perf/Measurements/Results/ForwardingMeasurementResults.py
Show resolved
Hide resolved
lnst/RecipeCommon/Perf/Measurements/Results/ForwardingMeasurementResults.py
Show resolved
Hide resolved
Added ForwardingRecipe that measures performance of whole forwarding stack. This can be extended in a way it'll test specific devices/other forwarding planes.
This is just forwarding test but instead of utilizing kernel forwarding plane, it uses `xdp-forward` instead.
Previous version haven't removed static routes to `netns` network (set in `test_wide_configuration`) on generator machine.
Using "aliases" for used NICs so they can be overriden in child recipes when inheriting from `SimpleNetnsRouterRecipe`.
Forwarding recipes requires 2 hosts with 2 NICs each which is currently unsupported by ContainerMapper
olichtne
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just some final discussion comments, on monday we can have a final discussion and merge this in IMO
Description
This MR includes:
xdp-forwardwhich utilizesXDP_REDIRECTInterfaceStatsMonitorwhich samples netlink stats of specified interface. However, these might be affected by driver's implementation details. E.g. mlx5 does not update standard statistics when XDP program is loaded.For forwarding recipes, test environment is separated to generator namespace (default), forwarder ns (which is default NS of forwarding machine) and receiver ns (on generator machine). There is no direct route from generator ns to reciever ns, test adds static route from generator to receiver via forwarder.
Test scheme:

Scheme is bit outdated as I rebased & reused
SimpleNetnsRouterRecipefrom #410 . The difference is, that this recipe requires 2 physical NICs on each host, and "receiver ns" is at host1 not on host 2 as inSimpleNetnsRouterRecipe. host2 is used as a forwarder/router only.Tests
ForwardingRecipeandXDPForwardingRecipetested inJ:12021989This requires reworked pkgten from #400