aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-10-27datapath-windows: STT - Enable support for TCP Segmentation offloadsmasterSairam Venugopal
Add support to STT - Encap and Decap functions to reassemble the packet fragments. Also add support to offload the packet to NDIS. Signed-off-by: Sairam Venugopal <vsairam@vmware.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
2015-10-27datapath-windows: STT - Add support for TCP Segmentation OffloadSairam Venugopal
Create and initialize the background thread and buffer that assists in defragmenting and completing a TSO packet. Signed-off-by: Sairam Venugopal <vsairam@vmware.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
2015-10-27datapath-windows: Move OvsAllocateNBLFromBuffer to BufferMgmtSairam Venugopal
Move the functionality around creating an NBL from Buffer to Buffermanagement. This function will be used for converting the buffer from user-space to NBL and also by STT - reassembly logic. Signed-off-by: Sairam Venugopal <vsairam@vmware.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
2015-10-27Revert "datapath-windows: Support attribute OVS_KEY_ATTR_TCP_FLAGS"Alin Serdean
This reverts commit a26b2023ce33fed1ef962012dc2c03765d2e92cb. This patch punishes performance without the implementation of megaflows on Windows. Once megaflows is implemented in the flow logic this patch will be revisited. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Acked-by: Sairam Venugopal <vsairam@vmware.com> Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
2015-10-23tests: Enable debugging in pyftpdlib.Jarno Rajahalme
Helps diagnosing problems. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Joe Stringer <joestringer@nicira.com>
2015-10-23odp-util: Fix CT action formating.Jarno Rajahalme
Comma was missing after "label" attribute. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Joe Stringer <joestringer@nicira.com>
2015-10-23datapath-windows: Support attribute OVS_KEY_ATTR_TCP_FLAGSAlin Gabriel Serdean
This patch adds OVS_KEY_ATTR_TCP_FLAGS to our flow mechanism. Also clean unecesarry parts of code. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Co-authored-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
2015-10-22bfd: always export remote_state and remote_diagnostic to OVSDBAndy Zhou
RFC 5880 specified bfd.RemoteSessionState as one of the state variables. In OVS implementation, this value is exported to OVSDB's BFD status column of the interface table, as one of the map elements, with the key of 'remote_state'. It can be surprising when the 'remote_state' map element disappears when BFD is in the 'DOWN' state, but otherwise always exported. Change to always exporting it, to make it more predictable for applications that monitors the BFD status column. While at it, make the same change to 'remote_diagnostic', so that it is also always exported to OVSDB for consistency. VMWare-BZ: 1535979 Reported-by: Mihir Gangar <gangarm@vmware.com> Signed-off-by: Andy Zhou <azhou@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-22ofproto-dpif-xlate: Fix small typo.Justin Pettit
Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Andy Zhou <azhou@nicira.com>
2015-10-22ovn-nbctl: Fix memory leak in option processing.Justin Pettit
Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Andy Zhou <azhou@nicira.com>
2015-10-22test-ovn: Fix memory leak in option processing.Justin Pettit
Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Andy Zhou <azhou@nicira.com>
2015-10-22ovsdb: Fix outdated comment for function description.Justin Pettit
Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Andy Zhou <azhou@nicira.com>
2015-10-22ovsdb: Destroy allocated hmap.Justin Pettit
Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Andy Zhou <azhou@nicira.com>
2015-10-22ovsdb-server: Destroy allocated shash.Justin Pettit
Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Andy Zhou <azhou@nicira.com>
2015-10-22tnl-ports: Free "ip_dev" on error.Justin Pettit
Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Andy Zhou <azhou@nicira.com>
2015-10-22vtep-ctl: Exit if database connection fails.Daniele Di Proietto
Before this commit vtep-ctl hung forever if it didn't manage to reach the database. This caused the testcase "ovn -- 3 HVs, 1 VIFs/HV, 1 GW, 1 LS" to hang occasionally, because ovsdb-server could be killed before ovs-vtep called vtep-ctl. This mimics the behaviour of ovs-vsctl, ovn-nbctl and ovn-sbctl. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-22ovn-northd: Fix memory leak in ARP reply flows.Justin Pettit
Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2015-10-22netdev-dpdk: Clean-up after vHost User port deleteCiara Loftus
Unregister and delete the socket associated with a vhost-user port when the port is deleted and/or the switch is brought down. Do not delete the socket if the vhost-user device is still attached to the guest. Signed-off-by: Ciara Loftus <ciara.loftus@intel.com> Acked-by: Daniele Di Proietto <diproiettod@vmware.com>
2015-10-22netdev-dpdk: Fix comment about vhost cuse/user vswitchd argumentsCiara Loftus
Signed-off-by: Ciara Loftus <ciara.loftus@intel.com> Acked-by: Daniele Di Proietto <diproiettod@vmware.com>
2015-10-21ovn-northd: Fix memory leak in logical router flow generation.Justin Pettit
Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com>
2015-10-21datapath-windows: fix NULL check in OvsGetExtInfoIoctl()Nithin Raju
End result is that "mac_in_use" column gets populated in OVSDB for internal and external NICs. Signed-off-by: Nithin Raju <nithin@vmware.com> Acked-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Acked-by: Sairam Venugopal <vsairam@vmware.com> Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
2015-10-19ovn: Reduce range of ACL priorities.Justin Pettit
To implement stateful ACLs, we've needed to reserve multiple logical flow priorities in the ACL table. Rather than continue to have a strange range of ACL priorities, we'll make ACL priority range 0 to 32767 and then offset them by 1000 when inserting them into the logical flow table. Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2015-10-19ovs-ofctl: Fix OpenFlow versions with '--bundle'Jarno Rajahalme
While the presence of the '--bundle' option implicitly added the OpenFlow 1.4 to the allowed protocols, it failed to remove OpenFlow 1.0 from the allowed protocols. This is changed so that '--bundle' option now also implicitly removes versions lesser than 1.4 from the allowed protocols. This has no behavioral difference when ovs-ofctl is paired with OVS that supports OpenFlow 1.4, as the greatest common version is negotiated, but prevents negotiation of OpenFlow 1.0 when OVS does not support OpenFlow 1.4. Found by inspection. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: YAMAMOTO Takashi <yamamoto@midokura.com>
2015-10-19ovs-ofctl: Fix replace-flows.Jarno Rajahalme
The replace-flows test cases tested for incorrect behavior due to the missing initialization of the out_group member of struct ofputil_flow_stats_request. This patch fixes this by properly initializing out_group to OFPG_ANY. Note that replace-flows still does not support multiple tables, but that will be fixed in a later patch in the series. Reported-by: YAMAMOTO Takashi <yamamoto@midokura.com> Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: YAMAMOTO Takashi <yamamoto@midokura.com>
2015-10-19ovn: Support multiple router ports per logical switch.Ben Pfaff
This allows multiple subnets to be routed directly to a logical switch. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-19ovn: Add test for logical router ARP replies.Ben Pfaff
Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-19physical: Fix implementation of logical patch ports.Ben Pfaff
Logical patch ports do not have a physical location and effectively reside on every hypervisor. This is fine for unicast output to logical patch ports. However, when a logical patch port is part of a logical multicast group, lumping them together with the other "local" ports in a multicast group yields packet duplication, because every hypervisor to which the packet is tunneled re-outputs it to the logical patch port. This commit fixes the problem, by treating logical patch ports as remote rather than local when they are part of a logical multicast group. This yields exactly-once semantics. Found while testing implementation of ARP in OVN logical router. The following commit adds a test that fails without this fix. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-19ovn: Implement the ability to send a packet back out its input port.Ben Pfaff
Otherwise logical router ARP replies won't work as implemented. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-19logical-fields: New header for logical field assignments.Ben Pfaff
The original concept for "expr" and "actions" was that they should not need to know anything about the mapping between physical and logical fields, that instead everything should be provided via the symbol table. In practice this has proven difficult because a couple of actions need to know about logical fields. For now, it seems reasonable to put the logical field mapping into a header of its own. Later, maybe we'll figure out whether there's value in a less leaky abstraction. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-17packets: Make ip_parse_masked() pickier about formatting.Ben Pfaff
It's happened a couple of times now that I've entered a typoed IP address, e.g. "192.168.0.0$x", and ip_parse_masked() or its predecessor has accepted it anyway, and it's been hard to track down the real problem. This change makes the parser pickier, by disallowing trailing garbage. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn: Implement basic logical L3 routing.Ben Pfaff
This implements basic logical L3 routing. It has a lot of caveats, including the following regarding testing: * Only single-router hops have been tested. Chains or trees of logical routers may work but definitely need testing and may need a little extra code. * No testing of logical router ARP replies. * Not enough testing in general. ovn/TODO describes a lot of other caveats in terms of the work needed to fix them. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn-northd: Add stages for logical routers.Ben Pfaff
Until now, ovn-northd has only set up flows for logical switches. With the arrival of logical routers, it needs to set up flows for them too. The stages within logical routers are completely different from those for logical switches, so this prepares for that by adding logic for identifying those stages. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16packets: New function ip_parse_masked().Ben Pfaff
Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn-nb: Add "enabled" column to Logical_Router_Port.Ben Pfaff
This is just for symmetry with Logical_Port, since it seems that if users want to be able to disable switch ports they might want to disable router ports as well. There is no "up" column because a logical router port doesn't have the same concept. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn-nb: Change how router ports work.Ben Pfaff
This is for two reasons. First, a router port is not really much of a special case from a logical switch's point of view. For switching purposes, it works exactly the same as any other port. Having a special column for it just adds artificial special cases. Second, the previous form of router ports specified that all of them use the logical port name "ROUTER". This seemed to make sense at the time but now it is just adding more special cases. Instead just giving them names like any other port makes life easier. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn-nb.xml: Reorganize documentation for Logical_Port table.Ben Pfaff
This uses the column grouping feature and the ability to document an individual key within a column to better, in my opinion, organize the documentation for the Logical_Port table. This will make it easier to document a new port type that a future commit will add. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn-nb: Add support for IP+MAC binding pairs in Port_Binding 'address'.Ben Pfaff
When a logical router can statically obtain the IP+MAC pairs for its attached logical switches, it can avoid expensive ARP resolution. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn-nb: Rename Port_Bindings 'macs' column to 'addresses'.Ben Pfaff
In an upcoming commit this column will also support IP+MAC pairs. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn-nb: Extend schema to support networks of routers.Ben Pfaff
Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn: Add new predicates for matching broadcast and multicast packets.Ben Pfaff
In my opinion, "eth.mcast" is a bit more readable than "eth.dst[40]", and so on. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn: Implement logical patch ports.Ben Pfaff
This implementation is suboptimal for several reasons. First, it creates an OVS port for every OVN logical patch port, not just for the ones that are actually useful on this hypervisor. Second, it's wasteful to create an OVS patch port per OVN logical patch port, when really there's no benefit to them beyond a way to identify how a packet ingressed into a logical datapath. There are two obvious ways to improve the situation here, by modifying OVS: 1. Add a way to configure in OVS which fields are preserved on a hop across an OVS patch port. If MFF_LOG_DATAPATH and MFF_LOG_INPORT were preserved, then only a single pair of OVS patch ports would be required regardless of the number of OVN logical patch ports. 2. Add a new OpenFlow extension action modeled on "resubmit" that also saves and restores the packet data and metadata (the inability to do this is the only reason that "resubmit" can't be used already). Or add OpenFlow extension actions to otherwise save and restore packet data and metadata. We should probably choose one of those in the medium to long term, but I don't know which one. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn-controller: Rename "ovn-patch-port" to "ovn-localnet-port".Ben Pfaff
An upcoming patch will introduce a different use for patch ports, so ovn-patch-port would become an ambiguous name. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16patch: Allow client to determine port names.Ben Pfaff
Calculating the patch port names from the bridge names makes sense when there's only one pair of patch ports between a pair of bridges, but that won't be the case for an upcoming use of patch ports. This changes makes it easy to check for existing patch ports in create_patch_port(), instead of in its caller, and since that seems like a more sensible place this change also moves it there. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16patch: Refactor to better support new kinds of patches.Ben Pfaff
Until now, the code here lumped together what was necessary to create and destroy patch ports, with what was necessary to identify the patch ports that were needed. An upcoming patch will add new reasons to create patch ports, so this commit more cleanly separates those two functions. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16patch: Bail out earlier if OVS IDL transactions cannot be executed.Ben Pfaff
The whole point of this module is side effects on the Open vSwitch database, so the whole thing can be skipped if those are impossible. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn-controller: Factor patch port management into new "patch" module.Ben Pfaff
Upcoming patches will introduce new extensive use of patch ports and it seems reasonable to put it into its own file. This is mostly code motion. Code changes are limited to those necessary to make the separated code compile, except for renaming init_bridge_mappings() to patch_run(). Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn: Update TODO, ovn-northd flow table design, ovn-architecture for L3.Ben Pfaff
This is a proposed plan for logical L3 in OVN. It is not entirely complete but it includes many important details and I believe that it moves planning forward. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
2015-10-16ovn-sb: Document "ip.ttl--;" action.Ben Pfaff
This was implemented by commits a while back, but the documentation was accidentally omitted. Signed-off-by: Ben Pfaff <blp@nicira.com>
2015-10-16ofp-actions: Fix build on earlier GCC.Joe Stringer
GCC4.4 gets confused by anonymous fields + flexible fields, complains: lib/ofp-actions.h:510: error: flexible array member in otherwise empty struct lib/ofp-actions.h:512: error: bit-field ‘build_assert_failed’ width not an integer constant lib/ofp-actions.h:514: error: bit-field ‘build_assert_failed’ width not an integer constant Fix the problem by specifying the actions length as zero. Reported-by: Pravin B Shelar <pshelar@nicira.com> Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
2015-10-16atlocal.in: Hide a harmless error on Windows.Gurucharan Shetty
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com> Acked-by: Joe Stringer <joestringer@nicira.com>