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()") V3: Posting the series for sake of completeness. As per the mailing list discussion, I am going to rip out the userspace changes & will post the only kernel changes in a different patchset. This version includes a couple of fixes: 01. Release Build can be installed and tested now. 02. Fix to work around network adapters that fail UDP checksum if the checksum value is zero. V2: 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 | 244 ++++ Makefile.am | 6 +- datapath-windows/CodingStyle | 139 ++ datapath-windows/DESIGN | 371 +++++ datapath-windows/Package/package.VcxProj | 95 ++ datapath-windows/Package/package.VcxProj.user | 15 + 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 | 1522 +++++++++++++++++++++ datapath-windows/ovsext/OvsAtomic.h | 32 + datapath-windows/ovsext/OvsBufferMgmt.c | 1535 +++++++++++++++++++++ datapath-windows/ovsext/OvsBufferMgmt.h | 124 ++ datapath-windows/ovsext/OvsChecksum.c | 578 ++++++++ datapath-windows/ovsext/OvsChecksum.h | 39 + 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 | 368 +++++ 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 | 303 +++++ 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 | 859 ++++++++++++ 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 | 507 +++++++ 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/ovsext.vcxproj.user | 15 + 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 + 78 files changed, 20643 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 100755 datapath-windows/Package/package.VcxProj.user 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 100755 datapath-windows/ovsext/ovsext.vcxproj.user 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@openvswitch.org http://openvswitch.org/mailman/listinfo/dev