[ovs-dev] [RFC 14/14] revalidator: Reduce ukey contention.

2014-08-20 Thread Joe Stringer
When handler threads are installing ukeys, they hold the ukey mutex for the duration of flow setup. If a revalidator thread dumps this flow while the handler holds the lock, it will attempt to lock it using ovs_mutex_trylock(), then if it cannot grab the lock, skip the flow. Attempting to lock on

[ovs-dev] [RFC 09/14] hash: Add 128-bit murmurhash.

2014-08-20 Thread Joe Stringer
Add the 128-bit murmurhash by Austin Appleby, for 32-bit systems from: http://code.google.com/p/smhasher/source/browse/trunk/MurmurHash3.cpp Signed-off-by: Joe Stringer --- There is also a version for 64-bit systems which I haven't tried yet, mostly because this version provides the same code for

[ovs-dev] [RFC 07/14] upcall: Create ukeys in handler threads.

2014-08-20 Thread Joe Stringer
Currently, when a revalidator thread first dumps a flow, it creates a 'udpif_key' object and caches a copy of a kernel flow key. This allows us to perform lookups in the classifier to attribute stats and validate the correctness of the datapath flow. This patch sets up this cache from the handler

[ovs-dev] [RFC 10/14] dpif: Add Unique flow identifiers.

2014-08-20 Thread Joe Stringer
One of the limiting factors on the number of flows that can be supported in the datapath is the overhead of assembling flow dump messages in the datapath. This patch adds a new alternative to dumping the key, mask and actions from the datapath, which is a 128-bit unique identifier for the flow. For

[ovs-dev] [RFC 05/14] udpif: Separate ukey maps from revalidators.

2014-08-20 Thread Joe Stringer
An upcoming patch will change the access patterns for ukey maps to increase the number of writers, and shift write-access from revalidator threads to upcall handler threads. As such, it no longer makes sense to tie these maps to revalidators in a 1:1 relationship. This patch separates the ukey map

[ovs-dev] [RFC 13/14] dpif-linux: Support unique flow identifiers.

2014-08-20 Thread Joe Stringer
Signed-off-by: Joe Stringer --- lib/dpif-linux.c | 91 +- 1 file changed, 42 insertions(+), 49 deletions(-) diff --git a/lib/dpif-linux.c b/lib/dpif-linux.c index f4e78a1..a5f4182 100644 --- a/lib/dpif-linux.c +++ b/lib/dpif-linux.c @@ -110,6

[ovs-dev] [RFC 04/14] revalidator: Protect ukeys with a mutex.

2014-08-20 Thread Joe Stringer
Currently, ukeys are protected during revalidator_sweep__() as only one thread accesses the ukey at a time. This is ensured using barriers: all revalidators will be in the GC phase, so they will only access their own ukey collection. A future patch will change the access patterns to allow these uk

[ovs-dev] [RFC 06/14] upcall: Rename dump_op -> ukey_op.

2014-08-20 Thread Joe Stringer
Future patches will make use of the 'struct dump_op' in a broader sense, so this patch renames it to make things a bit clearer. Signed-off-by: Joe Stringer --- ofproto/ofproto-dpif-upcall.c | 95 + 1 file changed, 48 insertions(+), 47 deletions(-) diff

[ovs-dev] [RFC 08/14] upcall: Revalidate using cache of mask, actions.

2014-08-20 Thread Joe Stringer
This allows us to ignore most fields of a flow_dump, requiring only the flow key for looking up the ukey. Fetching flows can also be avoided in the corner case where a flow is missed from a dump but revalidation is required. A future patch will modify the datapath interface to make these cached fi

[ovs-dev] [RFC 12/14] dpif-netdev: Support unique flow identifiers.

2014-08-20 Thread Joe Stringer
Signed-off-by: Joe Stringer --- lib/dpif-netdev.c | 209 --- lib/flow.h |6 ++ tests/dpif-netdev.at|3 + tests/ofproto-dpif.at | 20 +++-- tests/ofproto-macros.at |1 + 5 files changed, 164 insertions(+), 75 delet

[ovs-dev] [RFC 11/14] upcall: Generate unique flow identifiers.

2014-08-20 Thread Joe Stringer
This patch modifies the way that ukey lookup is done, to use a 128-bit hash of the flow key as Netlink attributes. This hash is generated at flow installation time, and passed down to the dpif so that datapaths which support UID can index based on this ID rather than the flow. In the unlikely case

[ovs-dev] [RFC 03/14] revalidator: Use 'cmap' for storing ukeys.

2014-08-20 Thread Joe Stringer
Signed-off-by: Joe Stringer --- ofproto/ofproto-dpif-upcall.c | 61 ++--- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c index 5f1d6d5..bccd7e8 100644 --- a/ofproto/ofproto-dpif-up

[ovs-dev] [RFC 01/14] tests: Fix race conditions.

2014-08-20 Thread Joe Stringer
These tests had the potential to fail due to statistics not updating before the test script retrieves them. Fix them by waiting until the next revalidation cycle. Signed-off-by: Joe Stringer --- tests/ofproto-dpif.at |6 ++ 1 file changed, 6 insertions(+) diff --git a/tests/ofproto-dpif

[ovs-dev] [RFC 00/14] Revalidate flows with unique identifiers.

2014-08-20 Thread Joe Stringer
One of the current bottlenecks for revalidation performance is the cost of assembling flow keys, masks and actions in the (linux) datapath. This series seeks to reduce this cost by caching these elements in the udpif, and modifying the datapath to skip sending these. To distinguish flows in the dat

[ovs-dev] [RFC 02/14] dpif: Zero flow before dpif_flow_get().

2014-08-20 Thread Joe Stringer
Signed-off-by: Joe Stringer --- lib/dpif.c |1 + 1 file changed, 1 insertion(+) diff --git a/lib/dpif.c b/lib/dpif.c index b2a1972..1a32ef6 100644 --- a/lib/dpif.c +++ b/lib/dpif.c @@ -840,6 +840,7 @@ dpif_flow_get(struct dpif *dpif, struct dpif_op *opp; struct dpif_op op; +m

[ovs-dev] [PATCH] ovs-ofctl: Document that "move" uses a standard action in OF1.5+.

2014-08-20 Thread Ben Pfaff
Reported-by: Jean Tourrilhes Signed-off-by: Ben Pfaff --- utilities/ovs-ofctl.8.in | 4 1 file changed, 4 insertions(+) diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in index d31c173..be82ed9 100644 --- a/utilities/ovs-ofctl.8.in +++ b/utilities/ovs-ofctl.8.in @@ -1408,6 +1

[ovs-dev] [PATCH] tests: Add test that 1.5 copy-field can copy into the standardized xregs.

2014-08-20 Thread Ben Pfaff
From: Jean Tourrilhes Signed-off-by: Jean Tourrilhes Signed-off-by: Ben Pfaff --- Jean supplied this patch via github and the ONF JIRA ticketing system. I have already applied it to master; I am posting it now so that readers of ovs-dev see it. diff --git a/tests/ofproto-dpif.at b/tests/ofprot

[ovs-dev] [PATCH] nx-match: Serialize standard xregs instead of Nicira regiseters, in OF1.5.

2014-08-20 Thread Ben Pfaff
Commit 79fe0f4611b60 (meta-flow: Add 64-bit registers.) added support for the OpenFlow 1.5 (draft) standardized registers, but neglected to cause them to be serialized when Open vSwitch composes flow matches. This meant that they were always sent to a controller as pairs of Nicira extension regist

[ovs-dev] [PATCH v6 03/18] lib/stp: Some debugging support.

2014-08-20 Thread Jarno Rajahalme
Set the stp port name before enabling it, so that debugging messages have the name to print out. Do not treat the first state initialization as a state change. Zero is not a valid state, so changing from zero to STP_DISABLED is not a state change. Signed-off-by: Jarno Rajahalme --- lib/stp.c

[ovs-dev] [PATCH v6 18/18] lib/rstp: Use hmap instead of a list for ports.

2014-08-20 Thread Jarno Rajahalme
Finding a given port is faster. Signed-off-by: Jarno Rajahalme --- lib/rstp-common.h |5 +++-- lib/rstp-state-machines.c | 30 +++--- lib/rstp.c| 35 ++- 3 files changed, 36 insertions(+), 34 deletions(-) di

[ovs-dev] [PATCH v6 14/18] lib/rstp: Remove lock recursion.

2014-08-20 Thread Jarno Rajahalme
Change the RSTP send_bpdu interface so that a recursive mutex is not needed. Signed-off-by: Jarno Rajahalme --- lib/rstp-common.h |2 +- lib/rstp-state-machines.c |2 +- lib/rstp.c|7 +++ lib/rstp.h|5 ++--- ofproto/ofproto-dpif.c|

[ovs-dev] [PATCH v6 17/18] lib/rstp: Eliminate ports_count.

2014-08-20 Thread Jarno Rajahalme
It was only used to guard against unintialized list. Signed-off-by: Jarno Rajahalme --- lib/rstp-common.h |1 - lib/rstp-state-machines.c | 273 - lib/rstp.c| 89 +++ 3 files changed, 164 insertions(+), 199 de

[ovs-dev] [PATCH v6 16/18] lib/rstp: Simplify priority vector comparison.

2014-08-20 Thread Jarno Rajahalme
Testing for sameness first makes the logic simpler to follow. Signed-off-by: Jarno Rajahalme --- lib/rstp-state-machines.c | 57 +++-- 1 file changed, 24 insertions(+), 33 deletions(-) diff --git a/lib/rstp-state-machines.c b/lib/rstp-state-machines.c i

[ovs-dev] [PATCH v6 15/18] lib/rstp: CodingStyle fixes.

2014-08-20 Thread Jarno Rajahalme
Signed-off-by: Jarno Rajahalme --- lib/rstp-state-machines.c | 398 + 1 file changed, 182 insertions(+), 216 deletions(-) diff --git a/lib/rstp-state-machines.c b/lib/rstp-state-machines.c index 3a408b4..e8b8438 100644 --- a/lib/rstp-state-machines.c

[ovs-dev] [PATCH v6 13/18] lib/rstp: More robust thread safety.

2014-08-20 Thread Jarno Rajahalme
Current code expects there to be a single thread that is responsible for creating rstp and creating and deleting rstp_port objects. rstp objects are also deleted from other threads, as managed by reference counting. rstp port objects are not reference counted, which means that references to rstp

[ovs-dev] [PATCH v6 07/18] lib/rstp: Coding style fixes.

2014-08-20 Thread Jarno Rajahalme
Signed-off-by: Jarno Rajahalme --- lib/rstp.c | 132 ++-- lib/rstp.h | 12 +++--- 2 files changed, 81 insertions(+), 63 deletions(-) diff --git a/lib/rstp.c b/lib/rstp.c index b0ad613..17830d9 100644 --- a/lib/rstp.c +++ b/lib/rstp.c @@

[ovs-dev] [PATCH v6 10/18] lib/rstp: Refactor port initialization.

2014-08-20 Thread Jarno Rajahalme
Prior to this patch the default values for ports were set in three different places. This refactors them all to one helper function. Signed-off-by: Jarno Rajahalme --- lib/rstp.c | 105 ++-- ofproto/ofproto-dpif.c |1 + 2 files change

[ovs-dev] [PATCH v6 08/18] lib/rstp: Refactor priority vector recalculation.

2014-08-20 Thread Jarno Rajahalme
Signed-off-by: Jarno Rajahalme --- lib/rstp.c | 54 ++ 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/lib/rstp.c b/lib/rstp.c index 17830d9..6254bb8 100644 --- a/lib/rstp.c +++ b/lib/rstp.c @@ -225,19 +225,32 @@ rstp_create(co

[ovs-dev] [PATCH v6 09/18] lib/rstp: Refactor port number allocation.

2014-08-20 Thread Jarno Rajahalme
Port number allocation was O(N^3), this refactoring will make it O(N^2). Signed-off-by: Jarno Rajahalme --- lib/rstp.c | 48 +--- 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/lib/rstp.c b/lib/rstp.c index 6254bb8..034292d 100644 --

[ovs-dev] [PATCH v6 12/18] lib/rstp: Inline trivial predicate functions.

2014-08-20 Thread Jarno Rajahalme
Signed-off-by: Jarno Rajahalme --- lib/rstp.c | 34 -- lib/rstp.h | 42 +++--- 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/lib/rstp.c b/lib/rstp.c index c674105..80479fb 100644 --- a/lib/rstp.c +++ b/lib/

[ovs-dev] [PATCH v6 11/18] lib/rstp: CodingStyle changes.

2014-08-20 Thread Jarno Rajahalme
Signed-off-by: Jarno Rajahalme --- lib/rstp.c | 39 ++- ofproto/ofproto-dpif.c |2 +- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/lib/rstp.c b/lib/rstp.c index 3bec795..c674105 100644 --- a/lib/rstp.c +++ b/lib/rstp.c @@ -

[ovs-dev] [PATCH v6 06/18] lib/rstp: Remove unused struct rstp_priority_vector4

2014-08-20 Thread Jarno Rajahalme
Signed-off-by: Jarno Rajahalme --- lib/rstp-common.h |7 --- 1 file changed, 7 deletions(-) diff --git a/lib/rstp-common.h b/lib/rstp-common.h index 6bc04eb..a67115b 100644 --- a/lib/rstp-common.h +++ b/lib/rstp-common.h @@ -205,13 +205,6 @@ struct rstp_priority_vector { uint16_t br

[ovs-dev] [PATCH v6 00/18] Rapid Spanning Tree Protocol

2014-08-20 Thread Jarno Rajahalme
I took my time starting the review, so I decided address issues as I see them rather than just comment on them. The first patch of this series is a minimally rebased version of the v5 sent on ovs-dev on June 12th, 2014. Rest of the series is my proposal for fixes and enhancements. I could have r

[ovs-dev] [PATCH v6 05/18] vswitch.xml: Fix RSTP configuration documentation.

2014-08-20 Thread Jarno Rajahalme
Move port's configuration options where they belong, add typing, and correct errors. Signed-off-by: Jarno Rajahalme --- vswitchd/vswitch.xml | 130 ++ 1 file changed, 77 insertions(+), 53 deletions(-) diff --git a/vswitchd/vswitch.xml b/vswitchd/

[ovs-dev] [PATCH v6 04/18] lib/rstp: Better debug messages, style fixes.

2014-08-20 Thread Jarno Rajahalme
Signed-off-by: Jarno Rajahalme --- lib/rstp-state-machines.c | 22 -- ofproto/ofproto-dpif.c| 11 ++- vswitchd/bridge.c | 10 +- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/lib/rstp-state-machines.c b/lib/rstp-state-machin

[ovs-dev] [PATCH v6 02/18] lib/stp, rstp: Add unit more unit tests.

2014-08-20 Thread Jarno Rajahalme
Existing STP and RSTP test cases only test the protocols with test utilities. These tests test them as part of OVS using the netdev-dummy device. Signed-off-by: Jarno Rajahalme --- ofproto/ofproto-dpif.c | 16 tests/rstp.at | 86 + t

[ovs-dev] OVS on HyperV: meeting minutes for 8/20 IRC meeting

2014-08-20 Thread Nithin Raju
hi, Just sending out the meeting minutes for future reference. Attendees: Alin Serdean, Samuel Ghinet, Ankur Sharma, Saurabh Shah, Nithin Raju 1. Review http://openvswitch.org/pipermail/dev/2014-August/044315.html -- - VMware fol

Re: [ovs-dev] OvsIpHelper vs the ARP method

2014-08-20 Thread Nithin Raju
hi Samuel, Thanks for resending. I'm CCing Ben if he as more points. At a high level, IP helper uses the host Hyper-V's ARP and IP routing stack functionality. At a high level it consists of the following parts: 1. Data structures the maintain the L2 and L3 cache. 2. Functionality to Query the

Re: [ovs-dev] OvsIpHelper vs the ARP method

2014-08-20 Thread Samuel Ghinet
Re-sent. From: Samuel Ghinet Sent: Friday, August 08, 2014 8:57 PM To: dev@openvswitch.org Subject: OvsIpHelper vs the ARP method Hello guys, I wanted to ask you about this since a week or so. I have seen that you use the OvsIpHelper to find dest eth for a given

[ovs-dev] VMware install base accounts

2014-08-20 Thread Cathy Collins
Hi, Would you be interested in acquiring leads from "VMware install base accounts"? We are pioneers in providing verified Technology user lists. We also have the VMware products install accounts users - VMware vSphere, VMware vCenter, VMware VCloud etc. You can choose from the data fiel

Re: [ovs-dev] [PATCH] ovsdb Allow comparison on optional scalar types

2014-08-20 Thread Ben Pfaff
On Tue, Aug 19, 2014 at 05:28:55PM -0600, Terry Wilson wrote: > This allows things like initiating a wait request on an interface > ofport being set. > > When the optional field is empty and operation is != or excludes > then the result is true; otherwise it is false. If the field is > set then th

[ovs-dev] VMware install base accounts

2014-08-20 Thread Cathy Collins
Hi, Would you be interested in acquiring leads from "VMware install base accounts"? We are pioneers in providing verified Technology user lists. We also have the VMware products install accounts users - VMware vSphere, VMware vCenter, VMware VCloud etc. You can choose from the data fiel

Re: [ovs-dev] [PATCH 1/3] datapath-windows: add netlink message parsing APIs

2014-08-20 Thread Saurabh Shah
>In this change we introduce Netlink.c, Netlink.h and NetlinkProto.h >in datapath-windows. These files will provide netlink message >data structures and parsing APIs. > >Changes are on similar lines to userspace netlink code. > >Change-Id: Ic225504eff3a25c0619ce3b27d8f54155d8af409 Not a review. I

[ovs-dev] [PATCH 3/3] datapath-windows: remove reference to OvsNetlink.h

2014-08-20 Thread Ankur Sharma
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. Change-Id: I281a0c6478e3de2e9b04c988bea57b06822a504e --- datapath-windows/automake.mk | 5 +- datapath-windows/include/OvsNetlink.h | 174 --

[ovs-dev] [PATCH 1/3] datapath-windows: add netlink message parsing APIs

2014-08-20 Thread Ankur Sharma
In this change we introduce Netlink.c, Netlink.h and NetlinkProto.h in datapath-windows. These files will provide netlink message data structures and parsing APIs. Changes are on similar lines to userspace netlink code. Change-Id: Ic225504eff3a25c0619ce3b27d8f54155d8af409 Signed-off-by: Ankur Sha

[ovs-dev] [PATCH 2/3] datapath-windows: Using windows kernel netlink parsing APIs.

2014-08-20 Thread Ankur Sharma
In this patch we incorporate the usage of netlink message and the parsing APIs that were added in previous commit. Change-Id: If627ba5a10d78b93668afd32da77807394cd06be --- datapath-windows/include/OvsPub.h | 13 +++- datapath-windows/ovsext/Datapath.c| 8 ++--- datapath-windows/ovsex

[ovs-dev] openvswitch_2.3.0+git20140819-2_i386.changes ACCEPTED into unstable

2014-08-20 Thread Debian FTP Masters
Accepted: -BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Format: 1.8 Date: Wed, 20 Aug 2014 08:31:11 -0700 Source: openvswitch Binary: openvswitch-common openvswitch-switch openvswitch-ipsec openvswitch-pki openvswitch-dbg python-openvswitch openvswitch-test openvswitch-vtep Architecture: sou

[ovs-dev] Processing of openvswitch_2.3.0+git20140819-2_i386.changes

2014-08-20 Thread Debian FTP Masters
openvswitch_2.3.0+git20140819-2_i386.changes uploaded successfully to localhost along with the files: openvswitch-common_2.3.0+git20140819-2_i386.deb openvswitch-switch_2.3.0+git20140819-2_i386.deb openvswitch-ipsec_2.3.0+git20140819-2_i386.deb openvswitch-dbg_2.3.0+git20140819-2_i386.deb

Re: [ovs-dev] [PATCH v4 2/2] dpif-netdev: Exact match cache

2014-08-20 Thread Jarno Rajahalme
> On Aug 19, 2014, at 5:11 PM, Daniele Di Proietto > wrote: (Snip) > +static inline size_t > +emc_processing(struct dp_netdev *dp, struct emc_cache *flow_cache, > + struct dpif_packet **packets, size_t cnt, > + struct pkt_metadata *md, struct netdev_flow_key *keys

Re: [ovs-dev] [PATCH v3] datapath-windows: Use OVS_DEFAULT_PORT_NO instead of 0 in a few places

2014-08-20 Thread Saurabh Shah
Acked-by: Saurabh Shah From: Nithin Raju Date: Thursday, August 14, 2014 at 9:02 PM To: "dev@openvswitch.org" Subject: [ovs-dev] [PATCH v3] datapath-windows: Use OVS_DEFAULT_PORT_NO instead of 0 in a few places >Signed-off-by: Nithin Raju >--- > datapath-windows/ovsext/OvsActions.c

Re: [ovs-dev] [PATCH] Add build of ovsext.sln using MSBuild

2014-08-20 Thread Alin Serdean
Will keep in mind. I targeted the ALL with the make not specific targets. Kind Regards, Alin. From: Gurucharan Shetty [shet...@nicira.com] Sent: Tuesday, August 19, 2014 5:37 PM To: Alin Serdean Cc: dev@openvswitch.org Subject: Re: [ovs-dev] [PATCH] Add buil