[ovs-git] [openvswitch/ovs] 5e82ce: datapath-windows: Support for custom VXLAN tunnel ...

GitHub noreply at github.com
Wed May 27 19:44:38 UTC 2015


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: 5e82ceefd12dfcb954da48d027b47d98dc53676a
      https://github.com/openvswitch/ovs/commit/5e82ceefd12dfcb954da48d027b47d98dc53676a
  Author: Sorin Vinturis <svinturis at cloudbasesolutions.com>
  Date:   2015-05-27 (Wed, 27 May 2015)

  Changed paths:
    M datapath-windows/ovsext/Datapath.c
    M datapath-windows/ovsext/Netlink/Netlink.c
    M datapath-windows/ovsext/Netlink/NetlinkError.h
    M datapath-windows/ovsext/Switch.c
    M datapath-windows/ovsext/Tunnel.h
    M datapath-windows/ovsext/TunnelFilter.c
    M datapath-windows/ovsext/TunnelIntf.h
    M datapath-windows/ovsext/Vport.c
    M datapath-windows/ovsext/Vport.h
    M datapath-windows/ovsext/Vxlan.c
    M datapath-windows/ovsext/Vxlan.h

  Log Message:
  -----------
  datapath-windows: Support for custom VXLAN tunnel port

The kernel datapath supports only port 4789 for VXLAN tunnel creation.
Added support in order to allow for the VXLAN tunnel port to be
configurable to any port number set by the userspace.

The patch also checks to see if an existing WFP filter, for the
necessary UDP tunnel port, is already created before adding a new one.
This is a double check, because currently the userspace also verifies
this, but it is necessary to avoid future issues.

Custom VXLAN tunnel port requires the addition of a new WFP filter
with the new UDP tunnel port. The creation of a new WFP filter is
triggered in OvsInitVxlanTunnel function and the removal of the WFP
filter in OvsCleanupVxlanTunnel function.
But the latter functions are running at IRQL = DISPATCH_LEVEL, due
to the NDIS RW lock acquisition, and all WFP calls must be running at
IRQL = PASSIVE_LEVEL. This is why I have created a system thread which
records all filter addition/removal requests into a list for later
processing by the system thread. The ThreadStart routine processes all
received requests at IRQL = PASSIVE_LEVEL, which is the required IRQL
for the necessary WFP calls for adding/removal of the WFP filters.

The WFP filter for the default VXLAN port 4789 is not added anymore at
filter attach. All WFP filters for the tunnel ports are added when the
tunnel ports are initialized and are removed at cleanup. WFP operation
status is then reported to userspace.

It is necessary that OvsTunnelFilterUninitialize function is called
after OvsClearAllSwitchVports in order to allow for the added WFP
filters to be removed. OvsTunnelFilterUninitialize function closes the
global engine handle used by most of the WFP calls, including filter
removal.

Signed-off-by: Sorin Vinturis <svinturis at cloudbasesolutions.com>
Reported-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
Reported-at: https://github.com/openvswitch/ovs-issues/issues/66
Acked-by: Nithin Raju <nithin at vmware.com>
Signed-off-by: Ben Pfaff <blp at nicira.com>


  Commit: ffde5f8f292055c36d41651967ca057d30ded877
      https://github.com/openvswitch/ovs/commit/ffde5f8f292055c36d41651967ca057d30ded877
  Author: Sorin Vinturis <svinturis at cloudbasesolutions.com>
  Date:   2015-05-27 (Wed, 27 May 2015)

  Changed paths:
    M datapath-windows/ovsext/Actions.c
    M datapath-windows/ovsext/Switch.c
    M datapath-windows/ovsext/Switch.h
    M datapath-windows/ovsext/Tunnel.c
    M datapath-windows/ovsext/Vport.c
    M datapath-windows/ovsext/Vport.h
    M datapath-windows/ovsext/Vxlan.c
    M datapath-windows/ovsext/Vxlan.h

  Log Message:
  -----------
  datapath-windows: Support for multiple VXLAN tunnels

At the moment the OVS extension supports only one VXLAN tunnel that
is cached in the extension switch context. Replaced the latter
cached pointer with an array list that contains all VXLAN tunnel
vports.

Signed-off-by: Sorin Vinturis <svinturis at cloudbasesolutions.com>
Reported-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
Reported-at: https://github.com/openvswitch/ovs-issues/issues/64
Acked-by: Eitan Eliahu <eliahue at vmware.com>
Acked-by: Nithin Raju <nithin at vmware.com>
Signed-off-by: Ben Pfaff <blp at nicira.com>


  Commit: 68f1df92ce8dab00bbd3bf46819a758e1d193dcf
      https://github.com/openvswitch/ovs/commit/68f1df92ce8dab00bbd3bf46819a758e1d193dcf
  Author: Sorin Vinturis <svinturis at cloudbasesolutions.com>
  Date:   2015-05-27 (Wed, 27 May 2015)

  Changed paths:
    M datapath-windows/ovsext/TunnelFilter.c

  Log Message:
  -----------
  datapath-windows: Document OVS tunnel filter callout

Signed-off-by: Sorin Vinturis <svinturis at cloudbasesolutions.com>
Acked-by: Nithin Raju <nithin at vmware.com>
Signed-off-by: Ben Pfaff <blp at nicira.com>


Compare: https://github.com/openvswitch/ovs/compare/b6ec827fe0ed...68f1df92ce8d


More information about the git mailing list