RFC Convert OVS tunnel vports to use regular net_devices
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest13 of 14 patches 6 repliesIn review
13 of 14 patches are in this archive. The cover letter announces 14.
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/14 | ip_tunnel: Make ovs_tunnel_info and ovs_key_ipv4_tunnel genericinclude/ include/ net/ +10 more | +128 | 0 replies | |
| 2/14 | ip_tunnel: support per packet tunnel metadatainclude/ include/ net/ +1 more | +69 | 0 replies | |
| 3/14 | vxlan: Flow based tunnelingdrivers/ include/ include/ +3 more | +146 | 0 replies | |
| 4/14 | route: Extend flow representation with tunnel keyinclude/ include/ net/ | +19 | 0 replies | |
| 5/14 | route: Per route tunnel metadata with RTA_TUNNELinclude/ include/ include/ +5 more | +161 | 2 replies | |
| 6/14 | fib: Add fib rule match on tunnel idinclude/ include/ net/ | +17 | 0 replies | |
| 7/14 | vxlan: Factor out device configurationdrivers/ include/ | +236 | 0 replies | |
| 8/14 | openvswitch: Allocate & attach ip_tunnel_info for tunnel set actionnet/ net/ net/ +2 more | +69 | 2 replies | |
| 9/14 | openvswitch: Move dev pointer into vport itselfnet/ net/ net/ +3 more | +58 | 0 replies | |
| 11/14 | openvswitch: Use regular VXLAN net_device devicedrivers/ include/ net/ +4 more | +193 | 0 replies | |
| 12/14 | vxlan: remove indirect call to vxlan_rcv() and vni memberdrivers/ include/ | +107 | 0 replies | |
| 13/14 | openvswitch: Use regular GRE net_device instead of vportnet/ net/ net/ +2 more | +168 | 0 replies | |
| 14/14 | arp: Associate ARP requests with tunnel infonet/ | +8 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [net-next RFC 00/14] Convert OVS tunnel vports to use regular net_devices
This is the first series in a greater effort to bring the scalability and programmability advantages of OVS to the rest of the network stack and to get rid of as much OVS specific code as possible.
This first series focuses on getting rid of OVS tunnel vports and use regular tunnel net_devices instead. As part of this effort, the routing subsystem is extended with support for flow based tunneling. In this new tunneling mode, the route is able to match on tunnel information as well as set tunnel encapsulation parameters per route. This allows to perform L3 forwarding for a large number of tunnel endpoints and virtual networks using a single tunnel net_device.
TODO:
- Geneve support
- IPv6 support
- Benchmarks
Pravin Shelar (1):
openvswitch: Use regular GRE net_device instead of vport
Thomas Graf (13):
ip_tunnel: Make ovs_tunnel_info and ovs_key_ipv4_tunnel generic
ip_tunnel: support per packet tunnel metadata
vxlan: Flow based tunneling
route: Extend flow representation with tunnel key
route: Per route tunnel metadata with RTA_TUNNEL
fib: Add fib rule match on tunnel id
vxlan: Factor out device configuration
openvswitch: Allocate & attach ip_tunnel_info for tunnel set action
openvswitch: Move dev pointer into vport itself
openvswitch: Abstract vport name through ovs_vport_name()
openvswitch: Use regular VXLAN net_device device
vxlan: remove indirect call to vxlan_rcv() and vni member
arp: Associate ARP requests with tunnel info
drivers/net/vxlan.c | 663 ++++++++++++++++++++--------------- include/linux/skbuff.h | 2 + include/net/fib_rules.h | 1 + include/net/flow.h | 7 + include/net/ip_fib.h | 3 + include/net/ip_tunnels.h | 127 ++++++- include/net/route.h | 18 + include/net/vxlan.h | 82 ++++- include/uapi/linux/fib_rules.h | 2 +- include/uapi/linux/if_link.h | 1 + include/uapi/linux/openvswitch.h | 2 +- include/uapi/linux/rtnetlink.h | 16 + net/core/dev.c | 5 +- net/core/fib_rules.c | 17 +- net/core/skbuff.c | 8 + net/ipv4/arp.c | 8 + net/ipv4/fib_frontend.c | 57 +++ net/ipv4/fib_semantics.c | 45 +++ net/ipv4/ip_gre.c | 161 ++++++++- net/ipv4/ip_tunnel_core.c | 15 + net/ipv4/route.c | 32 +- net/openvswitch/Kconfig | 12 - net/openvswitch/Makefile | 2 - net/openvswitch/actions.c | 10 +- net/openvswitch/datapath.c | 19 +- net/openvswitch/datapath.h | 5 +- net/openvswitch/dp_notify.c | 5 +- net/openvswitch/flow.c | 4 +- net/openvswitch/flow.h | 77 +--- net/openvswitch/flow_netlink.c | 78 ++++- net/openvswitch/flow_netlink.h | 3 +- net/openvswitch/vport-geneve.c | 17 +- net/openvswitch/vport-gre.c | 313 ----------------- net/openvswitch/vport-internal_dev.c | 38 +- net/openvswitch/vport-netdev.c | 271 +++++++++++--- net/openvswitch/vport-netdev.h | 13 - net/openvswitch/vport-vxlan.c | 322 ----------------- net/openvswitch/vport.c | 34 +- net/openvswitch/vport.h | 21 +- 39 files changed, 1334 insertions(+), 1182 deletions(-) delete mode 100644 net/openvswitch/vport-gre.c delete mode 100644 net/openvswitch/vport-vxlan.c
Signature · 1 line
2.3.5