This series adds support for the creation of tunnels using the rtnetlink
interface. This will open the possibility for new features and flags on those
vports without the need to change vport compatibility code.

Support for STT and LISP have not been added because these are not upstream yet,
so we don't know how the interface will be like upstream. And there are no
features in the current drivers right now we could make use of.

Note: This work originally started by Thadeu Lima de Souza Cascardo.

Testing:
  - kernel 4.9.3, in-tree datapath
    - rtnetlink successfully creates devices
  - kernel 4.2.8, in-tree datapath
    - rtnetlink is tried, but fails due to no COLLECT_METADATA support
    - genetlink successfully creates devices
  - kernel 4.2.8, out-of-tree datapath
    - rtnetlink is not tried
    - genetlink successfully creates devices

v2:

We are able to set the MTU to UINT16_MAX since it is not restricted by the
driver during newlink.

v3:

Prefer to get type from vport before checking if device is opened. Also, disable
IFLA_VXLAN_LEARNING as it's not enabled on compat vports as well.

v4:
  - Probe for ovs_geneve on init, this indicates out-of-tree datapath
    - If exists, only try genetlink/compat
    - else, try rtnetlink and fallback to genetlink/compat
  - Read back and verify devices created with rtnetlink
  - checkpatch fixes

v5:
  - Move rtnetlink code to a new file lib/dpif-rtnetlink.c. This is for
        creating/destroying linux tunnel devices.
  - Move probe patch to after GENEVE, so it doesn't break build.
  - Add NEWS item
  - Split patch 2 into two parts (patch 2 and 3 in this series)

Eric Garver (7):
  dpif-netlink: break up code that creates compat ports
  dpif-netlink: code to create/destroy tunnel ports via rtnetlink
  dpif-netlink: add VXLAN creation support
  dpif-netlink: add GRE creation support
  dpif-netlink: add GENEVE creation support
  dpif-netlink: Probe for out-of-tree datapath.
  NEWS: Add item for creating tunnels via rtnetlink

Thadeu Lima de Souza Cascardo (1):
  netdev: get device type from vport prefix if it uses one

 NEWS                 |   3 +
 lib/automake.mk      |   3 +
 lib/dpif-netlink.c   | 199 +++++++++++++-------
 lib/dpif-netlink.h   |   2 +
 lib/dpif-rtnetlink.c | 515 +++++++++++++++++++++++++++++++++++++++++++++++++++
 lib/dpif-rtnetlink.h |  53 ++++++
 lib/netdev.c         |  26 ++-
 7 files changed, 735 insertions(+), 66 deletions(-)
 create mode 100644 lib/dpif-rtnetlink.c
 create mode 100644 lib/dpif-rtnetlink.h

-- 
2.10.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to