summaryrefslogtreecommitdiff
path: root/datapath-windows/automake.mk
Commit message (Collapse)AuthorAgeFilesLines
* datapath-windows: support meter action initial versionldejing2022-09-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implemented meter action, currently, meter only support drop method and only support one band. The overall implementation is, when a packet comes in, it will first lookup meter according to the meter id, then get the band->rates and delta time since last access the same meter from the meter struct. Add the multiply result(band->rates * delta_time) to bucket, finally bucket minus the packet size, if the result larger than zero, allow the packet go through, otherwise deny the packet go through. Test case: 1. Setting the size meter size 3M, then the bandwidth was limit around 3M; ovs-ofctl -O OpenFlow13 add-meter br-test meter=2,kbps,\ band=type=drop,rate=3000 ovs-ofctl add-flow br-test "table=0,priority=1,ip \ actions=meter:2,normal" -O OpenFlow13 2. Setting the meter size 8M, then the bandwidth was limit around 8M; ovs-ofctl -O OpenFlow13 add-meter br-test meter=2,\ kbps,band=type=drop,rate=8000 ovs-ofctl add-flow br-test "table=0,priority=1,ip\ actions=meter:2,normal" -O OpenFlow13 Signed-off-by: ldejing <ldejing@vmware.com> Signed-off-by: Alin-Gabriel Serdean <aserdean@ovn.org>
* datapath-windows: Add IPv6 conntrack ip fragment support on windowsldejing2022-09-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implementation on Windows: IPv6 conntrack ip fragment feature use a link list to store ip fragment. When ipv6 fragment module receives a fragment packet, it will store length of the fragment, until to the received length equal to the packet length before fragmented, it will reassemble fragment packet to a complete packet and send the complete packet to conntrack module. After conntrack processed the packet, fragment module will divide the complete packet into small fragment and send it to destination. Currently, ipv6 was implemented in a indenpent module, for the reason it can reduce the risk of introduce bug to ipv4 fragmenb module. Testing Topology: On the Windows VM runs on the ESXi host, two hyper-v ports attached to the ovs bridge; one hyper-v port worked as client and the other port worked as server. Testing Case: 1.UdpV6 a) UdpV6 fragment with multiple ipv6 extension fields. b) UdpV6 fragment in normal scenario. c) UdpV6 fragment in nat scenario. 2.IcmpV6 a) IcmpV6 fragment in normal scenario. b) IcmpV6 fragment in nat scenario. Signed-off-by: ldejing <ldejing@vmware.com> Signed-off-by: Alin-Gabriel Serdean <aserdean@ovn.org>
* datapath_windows: Add datapath_windows targetAlin Gabriel Serdean2020-10-041-0/+4
| | | | | | | | It is useful to build the latest supported version of the driver using the `make` command. Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org> Acked-by: Ilya Maximets <i.maximets@ovn.org>
* datapath-windows: Add Win10Analyze targetAlin Gabriel Serdean2019-05-091-0/+2
| | | | | | | | | | | | | | | | This patch adds a new target called `Win10Analyze` to the driver solution. It enables us to trigger static analysis over the Win10 target. Since the location of the ruleset of drivers is somewhat random starting from 1803: https://www.osr.com/blog/2018/05/21/wdk-1803-ca/ Commit the ruleset inside our repository. This is the same ruleset used for 8,8.1 and 10. Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org> Acked-by: Anand Kumar <kumaranand@vmware.com>
* build-windows: Suppress output from MSBuildAlin Gabriel Serdean2017-11-141-2/+2
| | | | | | | | | Add `nologo` parameter to MSBuild to suppress the banner. This will make tidier log messages. Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org> Acked-by: Alin Balutoiu <abalutoiu@cloudbasesolutions.com>
* datapath-windows: Add NAT module in conntrackYin Lin2017-06-121-0/+2
| | | | | | Signed-off-by: Yin Lin <linyi@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Gurucharan Shetty <guru@ovn.org>
* datapath-windows: add two new build targets for code analysisAlin Serdean2017-05-251-0/+4
| | | | | | | | | | | | | | Add two new build targets: 'Win8Analyze' and 'Win8.1Analyze'. The new build targets have the static code analyzer (built in Visual Studio feature). This patch also introduces a new make target ('datapath_windows_analyze') this can be added to the CI jobs to get a list warnings/errors issued by the code analyzer. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Acked-by: Anand Kumar <kumaranand@vmware.com> Signed-off-by: Gurucharan Shetty <guru@ovn.org>
* datapath-windows: Added a new file to support Ipv4 fragments.Anand Kumar2017-05-081-0/+2
| | | | | | | | | | | | | | | | | | | | This patch adds functionalities to support IPv4 fragments, which will be used by Conntrack module. Added a new structure to hold the Ipv4 fragments and a hash table to hold Ipv4 datagram entries. Also added a clean up thread that runs every minute to delete the expired IPv4 datagram entries. The individual fragments are ignored by the conntrack. Once all the fragments are recieved, a new NBL is created out of the reassembled fragments and conntrack executes actions on the new NBL. Created new APIs OvsProcessIpv4Fragment() to process individual fragments, OvsIpv4Reassemble() to reassemble Ipv4 fragments. Signed-off-by: Anand Kumar <kumaranand@vmware.com> Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
* datapath-windows: Conntrack - Introduce support for tracking related connectionsSairam Venugopal2016-12-201-0/+2
| | | | | | | | | | | | | Introduce a new table to track related connections. This table will be used to track FTP data connections based on the control connection. There is a new Conntrack-ftp.c to parse incoming FTP messages to determine the related data ports. It creates a new entry in the related connections tracker table. If there is a matching FTP data connection, then the state for that connection is marked as RELATED. Signed-off-by: Sairam Venugopal <vsairam@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Gurucharan Shetty <guru@ovn.org>
* doc: Populate 'topics' sectionStephen Finucane2016-12-121-1/+0
| | | | | | | | | | | There are many docs that don't need to kept at the top level, along with many more hidden in random folders. Move them all. This also allows us to add the '-W' flag to Sphinx, ensuring unindexed docs result in build failures. Signed-off-by: Stephen Finucane <stephen@that.guru> Signed-off-by: Ben Pfaff <blp@ovn.org>
* doc: Populate 'internals' sectionStephen Finucane2016-12-121-1/+0
| | | | | | | | | | This is mostly docs moved from the top-level directory and content scraped from the Open vSwitch website source [1]. [1] https://github.com/openvswitch/openvswitch.github.io/ Signed-off-by: Stephen Finucane <stephen@that.guru> Signed-off-by: Ben Pfaff <blp@ovn.org>
* datapath-windows: Add ovsext/Conntrack-icmp.c to automake.mkJarno Rajahalme2016-11-111-0/+1
| | | | | | Fix build breakage. Signed-off-by: Jarno Rajahalme <jarno@ovn.org> Acked-by: Sairam Venugopal <vsairam@vmware.com>
* doc: Convert datapath-windows/DESIGN to rSTStephen Finucane2016-11-031-1/+1
| | | | | Signed-off-by: Stephen Finucane <stephen@that.guru> Signed-off-by: Russell Bryant <russell@ovn.org>
* doc: Convert datapath-windows/CodingStyle to rSTStephen Finucane2016-11-031-1/+1
| | | | | Signed-off-by: Stephen Finucane <stephen@that.guru> Signed-off-by: Russell Bryant <russell@ovn.org>
* Windows: Add conntrack netfilter netlink definitions to kernel and userspaceSairam Venugopal2016-07-011-0/+1
| | | | | | | | | | | | Include netfilter-conntrack header definitions. This will be used by Windows userspace for adding debugging support in Conntrack. Few of these files are intentionally left blank to avoid removing #includes in userspace. New file - OvsDpInterfaceCtExt.h has been defined similar to OvsDpInterfaceExt.h to be reused by userspace and kernel. Signed-off-by: Sairam Venugopal <vsairam@vmware.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Gurucharan Shetty <guru@ovn.org>
* datapath-windows: Add Geneve supportYin Lin2016-06-241-0/+2
| | | | | | Signed-off-by: Yin Lin <linyi@vmware.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Gurucharan Shetty <guru@ovn.org>
* datapath-windows: Add support for UDP and ICMP to Conntrack ModuleSairam Venugopal2016-06-241-0/+1
| | | | | | | | | Enable support for UDP and ICMP in the connection tracking module on Hyper-V. Define 1s as variable and reuse it. Signed-off-by: Sairam Venugopal <vsairam@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Gurucharan Shetty <guru@ovn.org>
* datapath-windows: Add Connection Tracking SupportSairam Venugopal2016-04-141-0/+3
| | | | | | | | | | | | | | | | | | | | Enable support for Stateful Firewall in Hyper-V by adding a Connection Tracking module. The module has been ported over from the userspace implementation patch of a similar name. The current version of the module supports ct - zone, mark and label for TCP packets. Support for other packet formats will be added in subsequent patches. The conntrack-tcp module is adapted from FreeBSD's pf subsystem and hence the BSD license. It has been ported over to match OVS Hyper-V coding style. Signed-off-by: Sairam Venugopal <vsairam@vmware.com> Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Co-Authored-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* datapath-windows: Added recirculation support.Sorin Vinturis2016-03-251-0/+3
| | | | | | | | | | | | | Recirculation support for the OVS extension. Tested using PING and iperf with Driver Verifier enabled. Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Co-authored-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Reported-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Reported-at: https://github.com/openvswitch/ovs-issues/issues/104 Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* datapath-windows: Refactor sofware offloads and mssAlin Serdean2016-02-101-2/+2
| | | | | | | | | | | | | | | | | | The purpose of this patch is to refactor the software offloads found in the VXLAN and GRE code and also to refactor how the maximmum segment size for a given NBL is obtained. This patch introduces two functions OvsApplySWChecksumOnNB and OVSGetTcpMSS. OVSGetTcpMSS - will return the mss found in a given NBL. OvsApplySWChecksumOnNB - will compute and set software offloads for a given NBL. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Acked-by: Sorin Vinturis <svinturis at cloudbasesolutions.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* datapath-windows: Support for OVS_KEY_ATTR_MPLS attributeSorin Vinturis2016-02-021-0/+1
| | | | | | | | | | | | This patch adds OVS_KEY_ATTR_MPLS to the OVS flow mechanism. Tested using ping. Tested using iperf (TCP and UDP). Tested using DriverVerifier. Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Gurucharan Shetty <guru@ovn.org>
* datapath-windows: Add GRE TEB support for windows datapathAlin Serdean2015-12-111-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces the support for GRE TEB (trasparent ethernet bridging) for the windows datapath. The GRE support is based on http://tools.ietf.org/html/rfc2890, without taking into account the GRE sequence, and it supports only the GRE protocol type 6558 (trasparent ethernet bridging) like its linux counterpart. Util.h: define the GRE pool tag Vport.c/h: sort the includes alphabetically add the function OvsFindTunnelVportByPortType which searches the tunnelVportsArray for a given port type Actions.c : sort the includes alphabetically call the GRE encapsulation / decapsulation functions when needed Gre.c/h : add GRE type defines add initialization/cleanup functions add encapsulation / decapsulation functions with software offloads (hardware offloads will be added in a separate patch) support Tested using: PSPING (https://technet.microsoft.com/en-us/sysinternals/psping.aspx) (ICMP, TCP, UDP) with various packet lengths IPERF3 (https://iperf.fr/iperf-download.php) (TCP, UDP) with various options Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Acked-by: Nithin Raju <nithin@vmware.com> Acked-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Signed-off-by: Justin Pettit <jpettit@ovn.org>
* datapath-windows: Fix broken break by distributing resource.h.Ben Pfaff2015-07-151-1/+2
| | | | | | | Commit e19a0c6 (datapath-windows: update extension information) added resource.h but did not distribute it. Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath-windows: Stateless TCP Tunnelling protocol - Initial implementationEitan Eliahu2015-06-111-0/+2
| | | | | | | | | | | | | | | | | | | This change include an initial implementable of STT. The following should be added: [1] Checksum offload (SW and HW) [2] LSO (SW and HW) [3] IP layer WFP callout for IP segments Added support for multiple (per TCP port) STT ports Testing: link layer connection through ping works. File transfer. Signed-off-by: Eitan Eliahu <eliahue@vmware.com> Co-authored-by: Saurabh Shah <ssaurabh@vmware.com> Signed-off-by: Saurabh Shah <ssaurabh@vmware.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* datpath-windows: include/OvsPub.h => ovsext/DpInternal.hNithin Raju2014-11-201-1/+1
| | | | | | | | | | | | OvsPub.h is not longer the interface file that published the interface of the kernel datapath to userspace. Nevertheless it is still being used internal to the kernel datapath. We rename the file for this reason. Signed-off-by: Nithin Raju <nithin@vmware.com> Acked-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
* datapath-windows: nuke non-netlink based interfaceNithin Raju2014-11-201-2/+0
| | | | | | Signed-off-by: Nithin Raju <nithin@vmware.com> Acked-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
* datapath-windows: Fix broken build by adding new file to distribution.Ben Pfaff2014-09-291-0/+1
| | | | Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath-windows: Add file NetlinkError.h.Samuel Ghinet2014-09-261-0/+1
| | | | | | | | | | | | | | | Contains error codes for netlink transactional errors. These errors are passed to the "error" field (INT) of the NL_MSG_ERR struct. The userspace requires them to be negative values: the nl_msg_nlmsgerr userspace function transforms them from negative to positive values. These error codes correspond to the userspace error codes defined in: "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\errno.h" Signed-off-by: Samuel Ghinet <sghinet@cloudbasesolutions.com> Acked-by: Eitan Eliahu <eliahue@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath-windows: Add Netlink buffer management APIs.Ankur Sharma2014-09-041-0/+2
| | | | | | | | | | | | | | In this change we have introduced buffer mgmt apis which will be used while creating netlink messages. The basic functionality provided by apis is on similar lines to ofpbuf in userspace with an exception that it will not do run time buffer reallocation. Signed-off-by: Ankur Sharma <ankursharma@vmware.com> Tested-by: Ankur Sharma <ankursharma@vmware.com> Reported-at: https://github.com/openvswitch/ovs-issues/issues/37 Acked-by: Eitan Eliahu <eliahue@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath-windows: Move netlink files to a new directory.Ankur Sharma2014-09-041-3/+3
| | | | | | | | | | | | | | | | | | In this change we have created a new directory named Netlink inside datapath-windows/ovsext/. This directory will be used to keep all the netlink related files. The reason we have created new directory is that for 'put' related APIs we will be adding netlink buffer mgmt files as well. These files will take the count of netlink related files to 5. Hence we decided to club the netlink files in a single directory. Signed-off-by: Ankur Sharma <ankursharma@vmware.com> Tested-by: Ankur Sharma <ankursharma@vmware.com> Reported-at: https://github.com/openvswitch/ovs-issues/issues/37 Acked-by: Eitan Eliahu <eliahue@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath-windows: Rename files.Samuel Ghinet2014-08-291-42/+42
| | | | | | | | | | | | This patch includes the file renaming and accommodations needed for the file renaming to build the forwarding extension for Hyper-V. This patch is also a follow-up for the thread: http://openvswitch.org/pipermail/dev/2014-August/044005.html Signed-off-by: Samuel Ghinet <sghinet@cloudbasesolutions.com> Co-authored-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath-windows: remove reference to OvsNetlink.hAnkur Sharma2014-08-221-1/+0
| | | | | | | | | | | In this patch we remove reference to OvsNetlink.h. Since we do not refer to lib/netlink-protocol.h anymore, hence removed the WIN_DP based check as well. Signed-off-by: Ankur Sharma <ankursharma@vmware.com> Reported-at: https://github.com/openvswitch/ovs-issues/issues/18 Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath-windows: Using windows kernel netlink parsing APIs.Ankur Sharma2014-08-221-1/+4
| | | | | | | | | | In this patch we incorporate the usage of netlink message and the parsing APIs that were added in previous commit. Signed-off-by: Ankur Sharma <ankursharma@vmware.com> Reported-at: https://github.com/openvswitch/ovs-issues/issues/18 Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath-windows: Add Datapath.[ch] and OVS_USE_NL_INTERFACE CPPNithin Raju2014-08-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | In this change we create peer to OvsIoctl.[ch] that would interface with userspace using the netlink interface. The new files are called Datapath.[ch]. We are not deleting OvsIoctl.[ch] yet. Datapath.[ch] provides bare minimum functionality to register a pseudo device for communication with userspace. We also define a CPP called OVS_USE_NL_INTERFACE in the ovsext project. This defines if the old interface (pre-netlink based) or the new interface (netlink- based) should be enabled in the kernel. By default, the value is 0 since the Datapath.[ch] are minimal. In the next change, we'll turn it to 1. Since Datapath.[ch] containes code copied from OvsIoctl.[ch], acking the original author as well. Signed-off-by: Nithin Raju <nithin@vmware.com> Co-authored-by: Guolin Yang <gyang@vmware.com> Acked-by: Alin Serdean <aserdean@cloudbasesolutions.com> Acked-by: Ankur Sharma <ankursharma@vmware.com> Acked-by: Saurabh Shah <ssaurabh@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Add extentions to the standard datapath interfaceNithin Raju2014-08-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The datapath interface defined in odp-netlink.h needs some extensions that are platform dependent. Some examples are the name of the communication device on Windows and a set of commands that are specific to Windows. In this change we define a datapath-windows/include/OvsDpInterfaceExt.h to include any platform specific interface extensions. OvsDpInterfaceExt.h is in turn included in odp-netlink.h ONLY for _WIN32. This approach was chosen to avoid including OvsDpInterfaceExt.h directly although the latter approach is as good as the former. Also, we define three ioctls in OvsDpInterfaceExt.h: read: provides an output buffer (mimics a recv) write: provides an input buffer (mimics a send) transact: provides an input and optionally an output buffer. (mimics a send followed by recv) Signed-off-by: Nithin Raju <nithin@vmware.com> Co-Authored-by: Ben Pfaff <blp@nicira.com> Acked-by: Alin Serdean <aserdean@cloudbasesolutions.com> Acked-by: Ankur Sharma <ankursharma@vmware.com> Acked-by: Saurabh Shah <ssaurabh@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* datapath-windows: Rename solution name.Samuel Ghinet2014-08-051-1/+1
| | | | | | | | extensions.sln is the name of the MS sample solution. Signed-off-by: Samuel Ghinet <sghinet@cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Nithin Raju <nithin@vmware.com>
* datapath-windows: Kernel module for HyperV.Saurabh Shah2014-07-281-0/+58
The kernel switch extension has support for bridged back forwarding & tunneling over VXLAN. There is no Netlink integration as it is still being worked out. Co-Authored-By: Ankur Sharma <ankursharma@vmware.com> Signed-off-by: Ankur Sharma <ankursharma@vmware.com> Co-Authored-By: Eitan Eliahu <eliahue@vmware.com> Signed-off-by: Eitan Eliahu <eliahue@vmware.com> Co-Authored-By: Guolin Yang <gyang@vmware.com> Signed-off-by: Guolin Yang <gyang@vmware.com> Co-Authored-By: Linda Sun <lsun@vmware.com> Signed-off-by: Linda Sun <lsun@vmware.com> Co-Authored-By: Nithin Raju <nithin@vmware.com> Signed-off-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Saurabh Shah <ssaurabh@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>