All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Graf <tgraf@suug.ch>
To: roopa@cumulusnetworks.com, rshearma@brocade.com,
	ebiederm@xmission.com, hannes@stressinduktion.org,
	pshelar@nicira.com, jesse@nicira.com, davem@davemloft.net,
	daniel@iogearbox.net, tom@herbertland.com, edumazet@google.com,
	jiri@resnulli.us, marcelo.leitner@gmail.com,
	stephen@networkplumber.org, jpettit@nicira.com, kaber@trash.net
Cc: netdev@vger.kernel.org, dev@openvswitch.org
Subject: [RFC net-next 00/22] Lightweight & flow based tunneling
Date: Fri, 10 Jul 2015 16:19:02 +0200	[thread overview]
Message-ID: <cover.1436537414.git.tgraf@suug.ch> (raw)

This series combines the work previously posted by Roopa, Robert and
myself. It's according to what we discussed at NFWS. The series
accomplishes:

 * Lightweight tunnel infrastructure to attach encapsulation
   instructions to routes.
 * Metadata dst to carry metadata between forwarding elements.
 * Use of this new infrastructure in VXLAN and GRE to enable
   flow based RX/TX tunnels using iproute2 and to get rid of
   OVS specific vports.

iproute examples:

  VXLAN:
  ip route add 40.1.1.1/32 encap vxlan id 10 dst 50.1.1.2 dev vxlan0

  MPLS:
  ip route add 10.1.1.0/30 encap mpls 200 via inet 10.1.1.1 dev swp1

The series is functional for both iproute2 and OVS and demonstrates
how a unified and combined code path can look like.

Comments?

Pravin Shelar (1):
  openvswitch: Use regular GRE net_device instead of vport

Roopa Prabhu (9):
  rtnetlink: introduce new RTA_ENCAP_TYPE and RTA_ENCAP attributes
  lwtunnel: infrastructure for handling light weight tunnels like mpls
  ipv4: support for fib route lwtunnel encap attributes
  ipv6: support for fib route lwtunnel encap attributes
  lwtunnel: support dst output redirect function
  ipv4: redirect dst output to lwtunnel output
  ipv6: rt6_info output redirect to tunnel output
  mpls: export mpls functions for use by mpls iptunnels
  mpls: ip tunnel support

Thomas Graf (12):
  ip_tunnel: Make ovs_tunnel_info and ovs_key_ipv4_tunnel generic
  dst: Metadata destinations
  arp: Inherit metadata dst when creating ARP requests
  vxlan: Flow based tunneling
  route: Extend flow representation with tunnel key
  route: Per route IP tunnel metadata via lightweight tunnel
  fib: Add fib rule match on tunnel id
  vxlan: Factor out device configuration
  openvswitch: Make tunnel set action attach a metadata dst
  openvswitch: Move dev pointer into vport itself
  openvswitch: Abstract vport name through ovs_vport_name()
  openvswitch: Use regular VXLAN net_device device

 drivers/net/vxlan.c                  | 671 +++++++++++++++++++++--------------
 include/linux/lwtunnel.h             |   6 +
 include/linux/mpls_iptunnel.h        |   6 +
 include/linux/skbuff.h               |   1 +
 include/net/dst.h                    |   5 +-
 include/net/dst_metadata.h           |  55 +++
 include/net/fib_rules.h              |   1 +
 include/net/flow.h                   |   7 +
 include/net/ip6_fib.h                |   3 +
 include/net/ip_fib.h                 |   5 +-
 include/net/ip_tunnels.h             |  84 ++++-
 include/net/lwtunnel.h               | 144 ++++++++
 include/net/mpls_iptunnel.h          |  29 ++
 include/net/route.h                  |   1 +
 include/net/vxlan.h                  |  83 ++++-
 include/uapi/linux/fib_rules.h       |   2 +-
 include/uapi/linux/if_link.h         |   1 +
 include/uapi/linux/lwtunnel.h        |  16 +
 include/uapi/linux/mpls_iptunnel.h   |  28 ++
 include/uapi/linux/openvswitch.h     |   2 +-
 include/uapi/linux/rtnetlink.h       |  17 +
 net/Kconfig                          |   7 +
 net/core/Makefile                    |   1 +
 net/core/dev.c                       |   7 +-
 net/core/dst.c                       |  76 +++-
 net/core/fib_rules.c                 |  17 +-
 net/core/lwtunnel.c                  | 228 ++++++++++++
 net/ipv4/arp.c                       |  71 ++--
 net/ipv4/fib_frontend.c              |   8 +
 net/ipv4/fib_semantics.c             | 101 +++++-
 net/ipv4/ip_gre.c                    | 165 ++++++++-
 net/ipv4/ip_input.c                  |   3 +-
 net/ipv4/ip_tunnel_core.c            | 114 ++++++
 net/ipv4/route.c                     |  26 +-
 net/ipv6/ip6_fib.c                   |   2 +
 net/ipv6/route.c                     |  34 +-
 net/mpls/Kconfig                     |   8 +-
 net/mpls/Makefile                    |   1 +
 net/mpls/af_mpls.c                   |  11 +-
 net/mpls/internal.h                  |   3 +
 net/mpls/mpls_iptunnel.c             | 229 ++++++++++++
 net/openvswitch/Kconfig              |  12 -
 net/openvswitch/Makefile             |   2 -
 net/openvswitch/actions.c            |  12 +-
 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               |  78 +---
 net/openvswitch/flow_netlink.c       |  81 ++++-
 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       | 272 +++++++++++---
 net/openvswitch/vport-netdev.h       |  13 -
 net/openvswitch/vport-vxlan.c        | 322 -----------------
 net/openvswitch/vport-vxlan.h        |  11 -
 net/openvswitch/vport.c              |  34 +-
 net/openvswitch/vport.h              |  21 +-
 60 files changed, 2292 insertions(+), 1249 deletions(-)
 create mode 100644 include/linux/lwtunnel.h
 create mode 100644 include/linux/mpls_iptunnel.h
 create mode 100644 include/net/dst_metadata.h
 create mode 100644 include/net/lwtunnel.h
 create mode 100644 include/net/mpls_iptunnel.h
 create mode 100644 include/uapi/linux/lwtunnel.h
 create mode 100644 include/uapi/linux/mpls_iptunnel.h
 create mode 100644 net/core/lwtunnel.c
 create mode 100644 net/mpls/mpls_iptunnel.c
 delete mode 100644 net/openvswitch/vport-gre.c
 delete mode 100644 net/openvswitch/vport-vxlan.c
 delete mode 100644 net/openvswitch/vport-vxlan.h

-- 
2.4.3

             reply	other threads:[~2015-07-10 14:19 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-10 14:19 Thomas Graf [this message]
2015-07-10 14:19 ` [RFC net-next 01/22] rtnetlink: introduce new RTA_ENCAP_TYPE and RTA_ENCAP attributes Thomas Graf
2015-07-10 14:19 ` [RFC net-next 02/22] lwtunnel: infrastructure for handling light weight tunnels like mpls Thomas Graf
2015-07-10 14:19 ` [RFC net-next 03/22] ipv4: support for fib route lwtunnel encap attributes Thomas Graf
2015-07-10 15:36   ` Eric Dumazet
     [not found]     ` <1436542616.24939.52.camel-XN9IlZ5yJG9HTL0Zs8A6p/gx64E7kk8eUsxypvmhUTTZJqsBc5GL+g@public.gmane.org>
2015-07-10 16:54       ` Thomas Graf
     [not found]         ` <20150710165436.GC11654-4EA/1caXOu0mYvmMESoHnA@public.gmane.org>
2015-07-10 16:56           ` roopa
2015-07-10 14:19 ` [RFC net-next 04/22] ipv6: " Thomas Graf
2015-07-10 14:19 ` [RFC net-next 05/22] lwtunnel: support dst output redirect function Thomas Graf
     [not found] ` <cover.1436537414.git.tgraf-G/eBtMaohhA@public.gmane.org>
2015-07-10 14:19   ` [RFC net-next 06/22] ipv4: redirect dst output to lwtunnel output Thomas Graf
2015-07-10 14:19   ` [RFC net-next 09/22] mpls: ip tunnel support Thomas Graf
2015-07-10 14:19 ` [RFC net-next 07/22] ipv6: rt6_info output redirect to tunnel output Thomas Graf
2015-07-10 14:19 ` [RFC net-next 08/22] mpls: export mpls functions for use by mpls iptunnels Thomas Graf
2015-07-10 14:19 ` [RFC net-next 10/22] ip_tunnel: Make ovs_tunnel_info and ovs_key_ipv4_tunnel generic Thomas Graf
2015-07-10 14:19 ` [RFC net-next 11/22] dst: Metadata destinations Thomas Graf
     [not found]   ` <1b20319e1ff0f2be28e783b90ac48738d6a8b72b.1436537414.git.tgraf-G/eBtMaohhA@public.gmane.org>
2015-07-10 18:57     ` Julian Anastasov
2015-07-10 19:19       ` Thomas Graf
2015-07-10 14:19 ` [RFC net-next 12/22] arp: Inherit metadata dst when creating ARP requests Thomas Graf
2015-07-10 18:55   ` Sergei Shtylyov
2015-07-10 14:19 ` [RFC net-next 13/22] vxlan: Flow based tunneling Thomas Graf
2015-07-10 14:19 ` [RFC net-next 14/22] route: Extend flow representation with tunnel key Thomas Graf
2015-07-10 14:19 ` [RFC net-next 15/22] route: Per route IP tunnel metadata via lightweight tunnel Thomas Graf
2015-07-10 14:19 ` [RFC net-next 16/22] fib: Add fib rule match on tunnel id Thomas Graf
2015-07-10 14:19 ` [RFC net-next 17/22] vxlan: Factor out device configuration Thomas Graf
2015-07-10 14:19 ` [RFC net-next 18/22] openvswitch: Make tunnel set action attach a metadata dst Thomas Graf
2015-07-13 22:55   ` Joe Stringer
2015-07-14  9:30     ` Thomas Graf
2015-07-10 14:19 ` [RFC net-next 19/22] openvswitch: Move dev pointer into vport itself Thomas Graf
2015-07-10 14:19 ` [RFC net-next 20/22] openvswitch: Abstract vport name through ovs_vport_name() Thomas Graf
2015-07-10 14:19 ` [RFC net-next 21/22] openvswitch: Use regular VXLAN net_device device Thomas Graf
2015-07-10 14:19 ` [RFC net-next 22/22] openvswitch: Use regular GRE net_device instead of vport Thomas Graf
2015-07-16  8:59   ` Simon Horman
2015-07-16 14:52     ` Thomas Graf
2015-07-16 21:36       ` Pravin Shelar
2015-07-17 10:58         ` Thomas Graf
2015-07-17 17:10           ` Pravin Shelar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1436537414.git.tgraf@suug.ch \
    --to=tgraf@suug.ch \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=dev@openvswitch.org \
    --cc=ebiederm@xmission.com \
    --cc=edumazet@google.com \
    --cc=hannes@stressinduktion.org \
    --cc=jesse@nicira.com \
    --cc=jiri@resnulli.us \
    --cc=jpettit@nicira.com \
    --cc=kaber@trash.net \
    --cc=marcelo.leitner@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=pshelar@nicira.com \
    --cc=roopa@cumulusnetworks.com \
    --cc=rshearma@brocade.com \
    --cc=stephen@networkplumber.org \
    --cc=tom@herbertland.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.