This is an aggregation of my previous patch series:
* Recipes.ENRT: add L2TPTunnelRecipe to ENRT module imports
* Device.GeneveDevice: add external property
* Various tunnel recipes
* Tunnel recipes enhancements
There was a major issue with loopback device and also multiple issues
with how the devices were handled in namespaces which is fixed now by
additional patches.
The original series that were merged here are identical, only the new patches
should be reviewed.
Additional patches fixes several bugs with the namespaces. In
particular:
* Machine's device_database is now namespace aware
* loopback device is handled separately while initializing InterfaceManager
* Machine's device_delete method is now namespace aware
* added special handler for RTM_DELLINK event on device net namespace changes
Summary of the original series cover letters follows.
Series: Various tunnel recipes
This patch series extends the ENRT test recipe set with additional
tunnel recipes.
The series also includes updates to VxlanDevice and a bug fix for Device
class required by VxlanGpeTunnelRecipe.
Series: Tunnel recipes enhancements
This includes several enhancements for the recently added tunnel
recipes.
The L2TPTunnelRecipe is updated to automatically load the l2tp_eth
kernel module that is required by the L2TPTunnelManager to function
properly. A new parameter carrier_ipversion is added to this recipe.
Rest of the patches adds specific HWConfigMixins to the recipes, to
allow mtu, pause frames and offload settings configuration.
Jan Tluka (43):
Recipes.ENRT: add L2TPTunnelRecipe to ENRT module imports
Recipes.ENRT: add Ip6GreNetnsTunnelRecipe.py
Device.GeneveDevice: add external property
Devices.GreDevice: add external property
Devices.VxlanDevice: add external property
Devices: add LoopbackDevice
Machine: remove unused get_configuration method
NetTestSlave: include netns when forwarding a from_netns message
Controller.MessageDispatcher: pass netns argument to device_created
method
Slave.InterfaceManager: use LoopbackDevice for loopback devices
Controller.Machine: change _namespaces to dictionary
Controller.Machine: make device_database namespace aware
Controller.Machine: handle loopback devices in device_create() call
Controller.Namespace: handle LoopbackDevice assignment
Controller.Namespace: update device's _id in device_database in
special cases
Controller.Machine: make device_delete netns-aware
Controller.MessageDispatcher: pass netns in device_delete call
Controller/Slave: handle RTM_DELLINK on net namespace changes
Recipes.ENRT.ConfigMixins: enable usage of individual HWConfigMixins
Recipes.ENRT: add GeneveLwtTunnelRecipe
Recipes.ENRT: add GreLwtTunnelRecipe
Recipes.ENRT: add VxlanLwtTunnelRecipe
Recipes.ENRT: add GreOvsTunnelRecipe
Recipes.ENRT: add GeneveOvsTunnelRecipe
Recipes.ENRT: add VxlanOvsTunnelRecipe
Recipes.ENRT: add GreTunnelOverVlanRecipe
Recipes.ENRT: add GreTunnelOverMacvlanRecipe
Recipes.ENRT: add VxlanNetnsTunnelRecipe
Devices.VxlanDevice: add gpe property
Devices.VxlanDevice: add learning property
Devices.Device: handle RTM_NEWLINK messages without any IFLA_ADDRESS
Recipes.ENRT: add VxlanGpeTunnelRecipe
Recipes.ENRT.L2TPTunnelRecipe: add carrier_ipversion parameter
Recipes.ENRT.L2TPTunnelRecipe: load l2tp_eth module before creating
the tunnel
Recipes.ENRT.L2TPTunnelRecipe: add PauseFramesHWConfigMixin
Recipes.ENRT.GeneveTunnelRecipe: add OffloadSubConfigMixin and
PauseFramesHWConfigMixin
Recipes.ENRT.SitTunnelRecipe: add {MTU,PauseFrames}HWConfigMixins
Recipes.ENRT.Ip6TnlTunnelRecipe: add {MTU,PauseFrames}HWConfigMixins
Recipes.ENRT.IpIpTunnelRecipe: add {MTU,PauseFrames}HWConfigMixins
Recipes.ENRT.GreTunnelRecipe: add {MTU,PauseFrames}HWConfigMixins
Recipes.ENRT.GreTunnelOverBondRecipe: add
{MTU,PauseFrames}HWConfigMixins
Recipes.ENRT.Ip6GreNetnsTunnelRecipe.py: add
{MTU,PauseFrames}HWConfigMixins
Recipes.ENRT.Ip6GreTunnelRecipe.py: add
{MTU,PauseFrames}HWConfigMixins
docs/source/geneve_lwt_tunnel_recipe.rst | 6 +
docs/source/geneve_ovs_tunnel_recipe.rst | 6 +
docs/source/gre_lwt_tunnel_recipe.rst | 6 +
docs/source/gre_ovs_tunnel_recipe.rst | 6 +
.../source/gre_tunnel_over_macvlan_recipe.rst | 6 +
docs/source/gre_tunnel_over_vlan_recipe.rst | 6 +
docs/source/ip6gre_netns_tunnel_recipe.rst | 6 +
docs/source/specific_scenarios.rst | 11 +
docs/source/vxlan_gpe_tunnel_recipe.rst | 6 +
docs/source/vxlan_lwt_tunnel_recipe.rst | 6 +
docs/source/vxlan_netns_tunnel_recipe.rst | 6 +
docs/source/vxlan_ovs_tunnel_recipe.rst | 6 +
lnst/Controller/Machine.py | 133 +++++----
lnst/Controller/MessageDispatcher.py | 35 ++-
lnst/Controller/Namespace.py | 29 +-
lnst/Devices/Device.py | 5 +-
lnst/Devices/GeneveDevice.py | 17 +-
lnst/Devices/GreDevice.py | 16 +-
lnst/Devices/LoopbackDevice.py | 26 ++
lnst/Devices/VxlanDevice.py | 53 +++-
lnst/Devices/__init__.py | 2 +
.../ENRT/ConfigMixins/BaseHWConfigMixin.py | 17 +-
.../ConfigMixins/CommonHWSubConfigMixin.py | 16 +-
lnst/Recipes/ENRT/GeneveLwtTunnelRecipe.py | 228 +++++++++++++++
lnst/Recipes/ENRT/GeneveOvsTunnelRecipe.py | 166 +++++++++++
lnst/Recipes/ENRT/GeneveTunnelRecipe.py | 14 +-
lnst/Recipes/ENRT/GreLwtTunnelRecipe.py | 233 ++++++++++++++++
lnst/Recipes/ENRT/GreOvsTunnelRecipe.py | 174 ++++++++++++
lnst/Recipes/ENRT/GreTunnelOverBondRecipe.py | 17 +-
.../ENRT/GreTunnelOverMacvlanRecipe.py | 211 ++++++++++++++
lnst/Recipes/ENRT/GreTunnelOverVlanRecipe.py | 212 ++++++++++++++
lnst/Recipes/ENRT/GreTunnelRecipe.py | 19 +-
lnst/Recipes/ENRT/Ip6GreNetnsTunnelRecipe.py | 261 ++++++++++++++++++
lnst/Recipes/ENRT/Ip6GreTunnelRecipe.py | 17 +-
lnst/Recipes/ENRT/Ip6TnlTunnelRecipe.py | 20 +-
lnst/Recipes/ENRT/IpIpTunnelRecipe.py | 14 +-
lnst/Recipes/ENRT/L2TPTunnelRecipe.py | 68 +++--
lnst/Recipes/ENRT/SitTunnelRecipe.py | 14 +-
lnst/Recipes/ENRT/VxlanGpeTunnelRecipe.py | 227 +++++++++++++++
lnst/Recipes/ENRT/VxlanLwtTunnelRecipe.py | 227 +++++++++++++++
lnst/Recipes/ENRT/VxlanNetnsTunnelRecipe.py | 245 ++++++++++++++++
lnst/Recipes/ENRT/VxlanOvsTunnelRecipe.py | 185 +++++++++++++
lnst/Recipes/ENRT/__init__.py | 12 +
lnst/Slave/InterfaceManager.py | 25 +-
lnst/Slave/NetTestSlave.py | 1 +
45 files changed, 2884 insertions(+), 132 deletions(-)
create mode 100644 docs/source/geneve_lwt_tunnel_recipe.rst
create mode 100644 docs/source/geneve_ovs_tunnel_recipe.rst
create mode 100644 docs/source/gre_lwt_tunnel_recipe.rst
create mode 100644 docs/source/gre_ovs_tunnel_recipe.rst
create mode 100644 docs/source/gre_tunnel_over_macvlan_recipe.rst
create mode 100644 docs/source/gre_tunnel_over_vlan_recipe.rst
create mode 100644 docs/source/ip6gre_netns_tunnel_recipe.rst
create mode 100644 docs/source/vxlan_gpe_tunnel_recipe.rst
create mode 100644 docs/source/vxlan_lwt_tunnel_recipe.rst
create mode 100644 docs/source/vxlan_netns_tunnel_recipe.rst
create mode 100644 docs/source/vxlan_ovs_tunnel_recipe.rst
create mode 100644 lnst/Devices/LoopbackDevice.py
create mode 100644 lnst/Recipes/ENRT/GeneveLwtTunnelRecipe.py
create mode 100644 lnst/Recipes/ENRT/GeneveOvsTunnelRecipe.py
create mode 100644 lnst/Recipes/ENRT/GreLwtTunnelRecipe.py
create mode 100644 lnst/Recipes/ENRT/GreOvsTunnelRecipe.py
create mode 100644 lnst/Recipes/ENRT/GreTunnelOverMacvlanRecipe.py
create mode 100644 lnst/Recipes/ENRT/GreTunnelOverVlanRecipe.py
create mode 100644 lnst/Recipes/ENRT/Ip6GreNetnsTunnelRecipe.py
create mode 100644 lnst/Recipes/ENRT/VxlanGpeTunnelRecipe.py
create mode 100644 lnst/Recipes/ENRT/VxlanLwtTunnelRecipe.py
create mode 100644 lnst/Recipes/ENRT/VxlanNetnsTunnelRecipe.py
create mode 100644 lnst/Recipes/ENRT/VxlanOvsTunnelRecipe.py
--
2.26.3