This series implements support for layer 3 ports, of which we have one example
so far, the LISP vport.  LISP support is currently implemented with a hack, by
adding/removing the Ethernet header within the datapath/vport-lisp.c file.  By
removing the assumption that all packets/flows have Ethernet header, this
series adds generic support for layer 3 ports in OVS, and thus it is expected
that the user/kernel space API for LISP support will not change.  This will
allow the upstreaming of the LISP vport, resulting in a decreased the delta
against the Linux kernel module, which is the goal that started this work.  It
will also allow supporting layer 3 GRE tunnels, for which patches have been
proposed based on this work.

The patch set doesn't change the current behavior when a packet from a LISP
port is sent to a layer 2 port or the other way around, so it's not necessary
to change existing flow rules.  The implementation will automatically add the
appropriate pop_eth and push_eth actions to datapath flows.  This may change in
the future when OpenFlow support for these actions will be added, since
discussions on EXT-112 in the ONF showed preference for explicitly requiring
the pop_eth and push_eth actions in OpenFlow rules.

Changes from v4:
  * Addressed the new round of comments from Jesse
  * Rebased several times

Changes from v3:
  * Addressed the new round of comments from Ben
  * Rebased several times

Changes from v2:
  * Addressed the new round of comments from Ben
  * Addressed Jesse's comments
  * Rebased several times

Changes from the initial version:
  * Addressed all comments from Ben's review
  * Fixed all failing unit tests

Lorand Jakab (3):
  userspace: add support for pop_eth and push_eth actions
  userspace: add layer 3 flow and switching support
  datapath: add layer 3 flow/port support

 build-aux/extract-ofp-fields                      |   1 +
 datapath/actions.c                                |  85 ++++++++++++---
 datapath/flow.c                                   |  45 ++++----
 datapath/flow.h                                   |   4 +-
 datapath/flow_netlink.c                           |  75 +++++++++++--
 datapath/linux/compat/include/linux/openvswitch.h |  12 +++
 datapath/vport-geneve.c                           |   2 +-
 datapath/vport-gre.c                              |   2 +-
 datapath/vport-internal_dev.c                     |   2 +-
 datapath/vport-lisp.c                             |  28 ++---
 datapath/vport-netdev.c                           |   2 +-
 datapath/vport-vxlan.c                            |   2 +-
 datapath/vport.c                                  |   6 +-
 datapath/vport.h                                  |   2 +-
 lib/bfd.c                                         |   1 +
 lib/dpif-netdev.c                                 |   5 +-
 lib/dpif-netlink.c                                |   8 ++
 lib/dpif.c                                        |   8 +-
 lib/flow.c                                        | 124 ++++++++++++++--------
 lib/flow.h                                        |  16 ++-
 lib/match.c                                       |   2 +-
 lib/meta-flow.c                                   |   5 +
 lib/meta-flow.h                                   |  13 +--
 lib/netdev-dummy.c                                |   1 +
 lib/netdev-linux.c                                |   1 +
 lib/nx-match.c                                    |   2 +-
 lib/odp-execute.c                                 |  19 ++++
 lib/odp-util.c                                    |  95 +++++++++++++++--
 lib/odp-util.h                                    |   8 +-
 lib/ofp-print.c                                   |  19 ++--
 lib/ofp-print.h                                   |   3 +-
 lib/ofp-util.c                                    |   2 +-
 lib/ofpbuf.h                                      |  12 ++-
 lib/packets.c                                     |  27 +++++
 lib/packets.h                                     |   4 +
 lib/pcap-file.c                                   |   1 +
 ofproto/ofproto-dpif-xlate.c                      |  29 +++--
 ofproto/ofproto-dpif-xlate.h                      |   2 +-
 ofproto/ofproto-dpif.c                            |   3 +-
 ofproto/ofproto.c                                 |   1 +
 tests/ofproto-dpif.at                             |   6 +-
 tests/vlan-splinters.at                           |   4 +-
 42 files changed, 522 insertions(+), 167 deletions(-)

-- 
1.9.3 (Apple Git-50)

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

Reply via email to