This patch set adds a recipe to perform a simple L2TP tunnel test.
A minor modification to the BaseTunnelRecipe was required to enable
users to bypass running the packet assert test if it's not required.
The Device.ip_add() method was updated to support the configuration of
addresses with peer address included. This is a typical use case of the
L2TP deployments.
I have also found several issues in the LNST code while implementing the
test, so I'm including them here.
Most important one is handling of RTM_NEWADDR netlink update message
that contained a bug for the point-to-point network address assignment.
v2:
logical reordering of the patches
v3:
- removed the handling of empty PacketAsserConfig and instead
implemented the packet assert test in the L2TPTunnelRecipe
- modified the Device.ip_add() and also ip_del() methods to accept only
a single ip address instead of list of addresses
- enhanced the Device.ip_add() method to accept also a peer address as
a separate argument
- added one more patch in the series that removes unused _clear_ips()
method
Jan Tluka (7):
RecipeCommon.Ping.Evaluators.RatePingEvaluator: fix the rate_text
RatePingEvaluator: handle None result of the Ping test
Devices.Device: fix RTM_NEWADDR handling
Devices.Device: modify ip_add and ip_del to accept only one address
Devices.Device: add peer argument to ip_add() method
Recipes.ENRT: add L2TPTunnelRecipe
Devices.Device: remove unused _clear_ips() method
docs/source/l2tp_tunnel_recipe.rst | 6 +
docs/source/specific_scenarios.rst | 1 +
lnst/Devices/Device.py | 72 +++----
.../Ping/Evaluators/RatePingEvaluator.py | 8 +-
lnst/Recipes/ENRT/L2TPTunnelRecipe.py | 178 ++++++++++++++++++
5 files changed, 228 insertions(+), 37 deletions(-)
create mode 100644 docs/source/l2tp_tunnel_recipe.rst
create mode 100755 lnst/Recipes/ENRT/L2TPTunnelRecipe.py
--
2.26.3