Following series adds support for tunneling entirely in userspace.
Even though this is targeted for DPDK based device, this should
work on any platform which supports following:

1. dpif-netdev bridge is backed by netdev that should be able to
   reply to ARP requests.
2. OVS tunneling routing table is configured.

To make tunneling work it need special configuration, There is
README-Userspace-Tunneling file which has details.
This is work in progress and I have done limited testing.
Thanks for Jarno and Jesse for inputs.

Pravin B Shelar (2):
  netdev-dpif: Add metadata to dpif-packet.
  openvswitch: Userspace tunneling.

 Makefile.am                                       |   1 +
 README-Userspace-Tunneling                        |  83 ++++++++
 datapath/linux/compat/include/linux/openvswitch.h |  10 +
 debian/openvswitch-common.docs                    |   1 +
 lib/automake.mk                                   |   9 +-
 lib/dpif-netdev.c                                 | 193 ++++++++++++++----
 lib/dpif.c                                        |  32 ++-
 lib/dpif.h                                        |   4 +
 lib/netdev-bsd.c                                  |   3 +
 lib/netdev-dpdk.c                                 |   3 +
 lib/netdev-dummy.c                                |   3 +
 lib/netdev-linux.c                                |   3 +
 lib/netdev-provider.h                             |   9 +
 lib/netdev-vport.c                                | 186 +++++++++++++++--
 lib/netdev.c                                      |  34 ++++
 lib/netdev.h                                      |   7 +
 lib/odp-execute.c                                 |  30 ++-
 lib/odp-execute.h                                 |   3 +-
 lib/odp-util.c                                    | 118 +++++++++++
 lib/odp-util.h                                    |   4 +
 lib/ofpbuf.h                                      |   8 +
 lib/packet-dpif.c                                 |   3 +
 lib/packet-dpif.h                                 |   1 +
 lib/packets.c                                     |  35 ++++
 lib/packets.h                                     |   9 +-
 lib/tnl-arp-cache.c                               | 214 +++++++++++++++++++
 lib/tnl-arp-cache.h                               |  47 +++++
 lib/tnl-ports.c                                   | 203 ++++++++++++++++++
 lib/tnl-ports.h                                   |  49 +++++
 lib/tnl-router.c                                  | 237 ++++++++++++++++++++++
 lib/tnl-router.h                                  |  42 ++++
 lib/vlog.c                                        |   1 +
 lib/vxlan.h                                       |  46 +++++
 ofproto/ofproto-dpif-xlate.c                      | 177 +++++++++++++++-
 ofproto/ofproto-dpif-xlate.h                      |   3 +-
 ofproto/ofproto-dpif.c                            |  38 +++-
 ofproto/tunnel.c                                  |  79 +++++++-
 ofproto/tunnel.h                                  |  10 +-
 rhel/openvswitch.spec.in                          |   2 +-
 vswitchd/ovs-vswitchd.8.in                        |   4 +
 vswitchd/ovs-vswitchd.c                           |   6 +
 41 files changed, 1840 insertions(+), 110 deletions(-)
 create mode 100644 README-Userspace-Tunneling
 create mode 100644 lib/tnl-arp-cache.c
 create mode 100644 lib/tnl-arp-cache.h
 create mode 100644 lib/tnl-ports.c
 create mode 100644 lib/tnl-ports.h
 create mode 100644 lib/tnl-router.c
 create mode 100644 lib/tnl-router.h
 create mode 100644 lib/vxlan.h

-- 
1.9.3

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to