[ovs-dev] [PATCH v2 0/3] Support for OVS datapath on Windows platform.
Saurabh Shah
ssaurabh at vmware.com
Sat Jul 26 00:59:38 UTC 2014
Nithin made a good suggestion. It would help to know where the packet is
getting dropped. Can you collect wireshark traces on both the VM¹s and the
HV NICs and let us know where the packet gets dropped? We suspect that
this might be a checksum offload issue, so disabling offloads on the VM &
the PNIC might just do the trick.
>How about the tunnel status? Is RDI true? Can you post the output of -
>
>ovs-vsctl.exe --db=tcp:127.0.0.1:8888 show interface vxlan-1
>
>Saurabh
>
>From: Alin Serdean
><aserdean at cloudbasesolutions.com<mailto:aserdean at cloudbasesolutions.com>>
>Date: Friday, July 25, 2014 at 4:10 PM
>To: Alessandro Pilotti
><apilotti at cloudbasesolutions.com<mailto:apilotti at cloudbasesolutions.com>>,
> Saurabh Shah <ssaurabh at vmware.com<mailto:ssaurabh at vmware.com>>
>Cc: "dev at openvswitch.org<mailto:dev at openvswitch.org>"
><dev at openvswitch.org<mailto:dev at openvswitch.org>>, Ankur Sharma
><ankursharma at vmware.com<mailto:ankursharma at vmware.com>>, Rajiv
>Krishnamurthy
><krishnamurthyr at vmware.com<mailto:krishnamurthyr at vmware.com>>, Guolin
>Yang <gyang at vmware.com<mailto:gyang at vmware.com>>
>Subject: RE: [ovs-dev] [PATCH v2 0/3] Support for OVS datapath on Windows
>platform.
>
>Hey Saurabh,
>
>I applied the patches that you sent. Everything seems to compile fine and
>install properly.
>
>I tried to set-up a tunnel between two hypervisors following the steps in
>INSTALL.Windows.
>(I tried with Hyper-V to Hyper-V and KVM to Hyper-V)
>
>Here is my configuration on H1:
>PS C:\ovs_guys\binaries> .\ovs-vsctl.exe --db=tcp:127.0.0.1:8888 show
>4f148df0-a7da-4782-a2a2-514dfe3079f4
> Bridge br-pif
> Controller "ptcp:9999:127.0.0.1"
> Port "external.1"
> Interface "external.1"
> Port br-pif
> Interface br-pif
> type: internal
> Port internal
> Interface internal
> Bridge br-int
> Port "vmNICSyn.1000048"
> Interface "vmNICSyn.1000048"
> Port br-int
> Interface br-int
> type: internal
> Port "vxlan-1"
> Interface "vxlan-1"
> type: vxlan
> options: {in_key=flow, local_ip="10.13.8.101",
>out_key=flow, remote_ip="10.13.8.160"}
> Port "vmNICSyn.1000049"
> Interface "vmNICSyn.1000049"
>PS C:\ovs_guys\binaries> .\ovs-dpctl.exe show
>2014-07-25T23:02:23Z|00001|socket_util|ERR|4789:0.0.0.0: bind: Only one
>usage of each socket address (protocol/network a
>ddress/port) is normally permitted.
>system at ovs-system:
> lookups: hit:13397737 missed:891252 lost:0
> flows: 9
> masks: hit:0 total:0 hit/pkt:0.00
> port 16777216: internal
> port 150994946: vxlan_sys_4789 (vxlan: df_default=false, ttl=0)
> port 16777225: external.1
> port 16777288: vmNICSyn.1000048
> port 16777289: vmNICSyn.1000049
>
>Configuration on H2:
>PS C:\ovs_guys\binaries> .\ovs-vsctl.exe --db=tcp:127.0.0.1:8888 show
>667e4171-2858-47f6-9030-fcc144a845b7
> Bridge br-int
> Port "vmNICSyn.1000048"
> Interface "vmNICSyn.1000048"
> Port "vxlan-1"
> Interface "vxlan-1"
> type: vxlan
> options: {in_key=flow, local_ip="10.13.8.160",
>out_key=flow, remote_ip="10.13.8.101"}
> Port br-int
> Interface br-int
> type: internal
> Bridge "br0"
> Port internal
> Interface internal
> Port "external.1"
> Interface "external.1"
> Port "br0"
> Interface "br0"
> type: internal
>PS C:\ovs_guys\binaries> .\ovs-dpctl.exe show
>2014-07-25T23:00:12Z|00001|socket_util|ERR|4789:0.0.0.0: bind: Only one
>usage of each socket address (protocol/network a
>ddress/port) is normally permitted.
>system at ovs-system:
> lookups: hit:364132 missed:72177 lost:0
> flows: 8
> masks: hit:0 total:0 hit/pkt:0.00
> port 16777216: internal
> port 50331650: vxlan_sys_4789 (vxlan: df_default=false, ttl=0)
> port 16777225: external.1
> port 16777288: vmNICSyn.1000048
>
>If I try to ping a VM on H1 with a VM on H2 they I get no replies. If I
>add a patch-port between the bridages
>or put the VMs on the same bridge with external/internal I get a reply,
>however I cannot make the VMs
>communicate actually using VXLAN.
>
>Kind Regards,
>Alin.
>________________________________________
>From: dev
>[dev-bounces at openvswitch.org<mailto:dev-bounces at openvswitch.org>] on
>behalf of Alessandro Pilotti
>[apilotti at cloudbasesolutions.com<mailto:apilotti at cloudbasesolutions.com>]
>Sent: Friday, July 25, 2014 8:20 PM
>To: Saurabh Shah
>Cc: dev at openvswitch.org<mailto:dev at openvswitch.org>;
>ankursharma at vmware.com<mailto:ankursharma at vmware.com>;
>krishnamurthyr at vmware.com<mailto:krishnamurthyr at vmware.com>;
>gyang at vmware.com<mailto:gyang at vmware.com>
>Subject: Re: [ovs-dev] [PATCH v2 0/3] Support for OVS datapath on
>Windows platform.
>
>Hi Saurabh,
>
>I¹d suggest that before doing a full review of the kernel driver we need
>to have:
>
>* Userspace Netlink interface support (which means that patches 1 and 2
>in this
>set can be skipped)
>
>* Kernel Netlink interface support (not provided by patch 3)
>
>* Support for multiple datapaths and vswitches
>
>* Split the kernel driver code in smaller patches to allow a proper
>review (I
>made a simple suggestion in a previous email, but any other solution is
>good)
>
>Rewriting the driver to avoid dependencies on the MSFT sample was a very
>good
>idea, since ATM we don¹t know if and when the legal review will be
>complete and
>the sample code will be released as Apache 2.
>
>Thanks,
>
>Alessandro
>
>
>On 24 Jul 2014, at 20:24, Saurabh Shah
><ssaurabh at vmware.com<mailto:ssaurabh at vmware.com>> wrote:
>
>This patch series adds OpenvSwitch datapath support for Windows platform.
>The
>kernel switch extension has support for bridged back forwarding &
>tunneling
>over VXLAN.
>
>The patch series is based on top of c450371 ("datapath: Initialize OVS_CB
>in
>ovs_vport_receive()")
>
>Here are some of the major things that are addressed by this v2 patch:
> 01. Complete rewrite of the base code, so there is no dependency on
> MS-LPL license any more.
> 02. The following crash-report by Cloudbase has been fixed -
> http://paste.openstack.org/show/84911/.
>
>Saurabh Shah (3):
> odp-util: Add utility function, odp_flow_key_to_flow_verbose.
> dpif-windows: Implement datapath interface for windows.
> datapath-windows: Implement the virtual switch forwarding extension.
>
>AUTHORS | 3 +
>BUILD.Windows | 96 --
>CodingStyle | 4 +-
>INSTALL.Windows | 131 +++
>Makefile.am | 6 +-
>datapath-windows/CodingStyle | 139 +++
>datapath-windows/DESIGN | 371 ++++++
>datapath-windows/Package/package.VcxProj | 95 ++
>datapath-windows/automake.mk | 56 +
>datapath-windows/extensions.sln | 49 +
>datapath-windows/include/OvsNetlink.h | 174 +++
>datapath-windows/include/OvsPub.h | 498 ++++++++
>datapath-windows/misc/install.cmd | 4 +
>datapath-windows/misc/uninstall.cmd | 1 +
>datapath-windows/ovsext/OvsActions.c | 1512 ++++++++++++++++++++++++
>datapath-windows/ovsext/OvsAtomic.h | 32 +
>datapath-windows/ovsext/OvsBufferMgmt.c | 1535 +++++++++++++++++++++++++
>datapath-windows/ovsext/OvsBufferMgmt.h | 124 ++
>datapath-windows/ovsext/OvsChecksum.c | 509 ++++++++
>datapath-windows/ovsext/OvsChecksum.h | 33 +
>datapath-windows/ovsext/OvsDebug.c | 58 +
>datapath-windows/ovsext/OvsDebug.h | 90 ++
>datapath-windows/ovsext/OvsDriver.c | 184 +++
>datapath-windows/ovsext/OvsEth.h | 450 ++++++++
>datapath-windows/ovsext/OvsEvent.c | 496 ++++++++
>datapath-windows/ovsext/OvsEvent.h | 50 +
>datapath-windows/ovsext/OvsFlow.c | 978 ++++++++++++++++
>datapath-windows/ovsext/OvsFlow.h | 78 ++
>datapath-windows/ovsext/OvsIoctl.c | 758 ++++++++++++
>datapath-windows/ovsext/OvsIoctl.h | 40 +
>datapath-windows/ovsext/OvsIpHelper.c | 1689
>+++++++++++++++++++++++++++
>datapath-windows/ovsext/OvsIpHelper.h | 128 +++
>datapath-windows/ovsext/OvsJhash.c | 129 +++
>datapath-windows/ovsext/OvsJhash.h | 30 +
>datapath-windows/ovsext/OvsNetProto.h | 367 ++++++
>datapath-windows/ovsext/OvsOid.c | 855 ++++++++++++++
>datapath-windows/ovsext/OvsOid.h | 26 +
>datapath-windows/ovsext/OvsPacketIO.c | 441 +++++++
>datapath-windows/ovsext/OvsPacketIO.h | 61 +
>datapath-windows/ovsext/OvsPacketParser.c | 300 +++++
>datapath-windows/ovsext/OvsPacketParser.h | 144 +++
>datapath-windows/ovsext/OvsSwitch.c | 529 +++++++++
>datapath-windows/ovsext/OvsSwitch.h | 169 +++
>datapath-windows/ovsext/OvsTunnel.c | 346 ++++++
>datapath-windows/ovsext/OvsTunnel.h | 57 +
>datapath-windows/ovsext/OvsTunnelFilter.c | 343 ++++++
>datapath-windows/ovsext/OvsTunnelIntf.h | 25 +
>datapath-windows/ovsext/OvsTypes.h | 32 +
>datapath-windows/ovsext/OvsUser.c | 861 ++++++++++++++
>datapath-windows/ovsext/OvsUser.h | 114 ++
>datapath-windows/ovsext/OvsUtil.c | 89 ++
>datapath-windows/ovsext/OvsUtil.h | 78 ++
>datapath-windows/ovsext/OvsVport.c | 1416 +++++++++++++++++++++++
>datapath-windows/ovsext/OvsVport.h | 190 +++
>datapath-windows/ovsext/OvsVxlan.c | 441 +++++++
>datapath-windows/ovsext/OvsVxlan.h | 81 ++
>datapath-windows/ovsext/ovsext.inf | 85 ++
>datapath-windows/ovsext/ovsext.rc | 23 +
>datapath-windows/ovsext/ovsext.vcxproj | 164 +++
>datapath-windows/ovsext/precomp.h | 31 +
>datapath-windows/ovsext/precompsrc.c | 17 +
>include/linux/openvswitch.h | 8 +-
>lib/automake.mk | 3 +
>lib/dpif-netdev.c | 17 +-
>lib/dpif-provider.h | 3 +
>lib/dpif-windows.c | 1786
>+++++++++++++++++++++++++++++
>lib/dpif-windows.h | 58 +
>lib/dpif.c | 3 +
>lib/netdev-provider.h | 3 +
>lib/netdev-windows.c | 714 ++++++++++++
>lib/netdev.c | 5 +
>lib/netlink-protocol.h | 5 +
>lib/odp-util.c | 24 +
>lib/odp-util.h | 2 +
>lib/util.c | 16 +
>lib/util.h | 1 +
>76 files changed, 20347 insertions(+), 116 deletions(-)
>delete mode 100644 BUILD.Windows
>create mode 100644 INSTALL.Windows
>create mode 100644 datapath-windows/CodingStyle
>create mode 100644 datapath-windows/DESIGN
>create mode 100755 datapath-windows/Package/package.VcxProj
>create mode 100644 datapath-windows/automake.mk
>create mode 100644 datapath-windows/extensions.sln
>create mode 100644 datapath-windows/include/OvsNetlink.h
>create mode 100644 datapath-windows/include/OvsPub.h
>create mode 100755 datapath-windows/misc/install.cmd
>create mode 100755 datapath-windows/misc/uninstall.cmd
>create mode 100644 datapath-windows/ovsext/OvsActions.c
>create mode 100644 datapath-windows/ovsext/OvsAtomic.h
>create mode 100644 datapath-windows/ovsext/OvsBufferMgmt.c
>create mode 100644 datapath-windows/ovsext/OvsBufferMgmt.h
>create mode 100644 datapath-windows/ovsext/OvsChecksum.c
>create mode 100644 datapath-windows/ovsext/OvsChecksum.h
>create mode 100644 datapath-windows/ovsext/OvsDebug.c
>create mode 100644 datapath-windows/ovsext/OvsDebug.h
>create mode 100644 datapath-windows/ovsext/OvsDriver.c
>create mode 100644 datapath-windows/ovsext/OvsEth.h
>create mode 100644 datapath-windows/ovsext/OvsEvent.c
>create mode 100644 datapath-windows/ovsext/OvsEvent.h
>create mode 100644 datapath-windows/ovsext/OvsFlow.c
>create mode 100644 datapath-windows/ovsext/OvsFlow.h
>create mode 100644 datapath-windows/ovsext/OvsIoctl.c
>create mode 100644 datapath-windows/ovsext/OvsIoctl.h
>create mode 100644 datapath-windows/ovsext/OvsIpHelper.c
>create mode 100644 datapath-windows/ovsext/OvsIpHelper.h
>create mode 100644 datapath-windows/ovsext/OvsJhash.c
>create mode 100644 datapath-windows/ovsext/OvsJhash.h
>create mode 100644 datapath-windows/ovsext/OvsNetProto.h
>create mode 100644 datapath-windows/ovsext/OvsOid.c
>create mode 100644 datapath-windows/ovsext/OvsOid.h
>create mode 100644 datapath-windows/ovsext/OvsPacketIO.c
>create mode 100644 datapath-windows/ovsext/OvsPacketIO.h
>create mode 100644 datapath-windows/ovsext/OvsPacketParser.c
>create mode 100644 datapath-windows/ovsext/OvsPacketParser.h
>create mode 100644 datapath-windows/ovsext/OvsSwitch.c
>create mode 100644 datapath-windows/ovsext/OvsSwitch.h
>create mode 100644 datapath-windows/ovsext/OvsTunnel.c
>create mode 100644 datapath-windows/ovsext/OvsTunnel.h
>create mode 100644 datapath-windows/ovsext/OvsTunnelFilter.c
>create mode 100644 datapath-windows/ovsext/OvsTunnelIntf.h
>create mode 100644 datapath-windows/ovsext/OvsTypes.h
>create mode 100644 datapath-windows/ovsext/OvsUser.c
>create mode 100644 datapath-windows/ovsext/OvsUser.h
>create mode 100644 datapath-windows/ovsext/OvsUtil.c
>create mode 100644 datapath-windows/ovsext/OvsUtil.h
>create mode 100644 datapath-windows/ovsext/OvsVport.c
>create mode 100644 datapath-windows/ovsext/OvsVport.h
>create mode 100644 datapath-windows/ovsext/OvsVxlan.c
>create mode 100644 datapath-windows/ovsext/OvsVxlan.h
>create mode 100644 datapath-windows/ovsext/ovsext.inf
>create mode 100644 datapath-windows/ovsext/ovsext.rc
>create mode 100644 datapath-windows/ovsext/ovsext.vcxproj
>create mode 100644 datapath-windows/ovsext/precomp.h
>create mode 100644 datapath-windows/ovsext/precompsrc.c
>create mode 100644 lib/dpif-windows.c
>create mode 100644 lib/dpif-windows.h
>create mode 100644 lib/netdev-windows.c
>
>--
>1.7.9.5
>
>_______________________________________________
>dev mailing list
>dev at openvswitch.org<mailto:dev at openvswitch.org>
>https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/
>listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=pEkjsHfytvHEWufeZPpgqSO
>JMdMjuZPbesVsNhCUc0E%3D%0A&m=BJ3XOx98uiDxOsGWUqVhUjXrXDmn6iQdRLdtIGdM0lE%3
>D%0A&s=95a66dd2db4e8c0136790403f1a42de5c183687b6e869b228a4ae7d3431f9b1c
>
>_______________________________________________
>dev mailing list
>dev at openvswitch.org<mailto:dev at openvswitch.org>
>https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/
>listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=pEkjsHfytvHEWufeZPpgqSO
>JMdMjuZPbesVsNhCUc0E%3D%0A&m=BJ3XOx98uiDxOsGWUqVhUjXrXDmn6iQdRLdtIGdM0lE%3
>D%0A&s=95a66dd2db4e8c0136790403f1a42de5c183687b6e869b228a4ae7d3431f9b1c
>
>_______________________________________________
>dev mailing list
>dev at openvswitch.org
>https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/
>listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=pEkjsHfytvHEWufeZPpgqSO
>JMdMjuZPbesVsNhCUc0E%3D%0A&m=ZK%2BYEi%2F6S7hTbDqWfVPq6jI44sedIu0HF4Y%2F6J%
>2FTSl8%3D%0A&s=978a4884df80d7c54807e42aec946c35d1097bff4c09e9ca7682b3f67ca
>db5e9
More information about the dev
mailing list