On Tue, Oct 07, 2014 at 12:23:37AM +1300, Joe Stringer wrote:
> This patch modifies the dpif interface to allow flows to be manipulated
> using a 128-bit identifier. This allows revalidator threads to perform
> datapath operations faster, as they do not need to serialise the entire
> flow key for operations like flow_get and flow_delete. In conjunction
> with a future patch to simplify the dump interface, this provides a
> significant performance benefit for revalidation.
> 
> When handlers assemble flow_put operations, they specify a unique
> identifier (UID) for each flow as it is passed down to the datapath to
> be stored with the flow. The UID is currently provided to handlers
> by the dpif during upcall processing.
> 
> When revalidators assemble flow_get or flow_del operations, they specify
> the UID for the flow along with the key, and a boolean for whether to
> send the request using only a UID or to send the request using the UID
> and flow key. The former is preferred for newer datapaths that support
> UID, while the latter is used for backwards compatibility.
> 
> Signed-off-by: Joe Stringer <joestrin...@nicira.com>

I looked over the updates to the patches before this one and I'm happy
with them.  If there's one that I'm a bit concerned about, it's
"upcall: Create ukeys in handler threads."  I don't have anything to
point at in that one, I just feel like I don't fully understand the
implications of the changes.  I wonder at your confidence level; if
it's high, then I'm happy with that one, and if it is not then I will
take longer to study it.

In lib/dpctl.c, I think that calling dpif_flow_hash() will work OK for
dpif-netdev, because it knows the secret hash basis.  But standalone
ovs-dpctl will not know the secret, so it will use a bad UID.  Should
we do something about that?

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to