[ovs-dev] [PATCH] ofproto: Optimise OpenFlow flow expiry

Ben Pfaff blp at nicira.com
Mon Jan 14 05:22:31 UTC 2013


On Mon, Jan 14, 2013 at 10:06:13AM +0900, Simon Horman wrote:
> Optimise OpenFlow flow expiry by placing expirable flows on a list.
> This optimises scanning of flows for expiry in two ways:
> 
> * Empirically list traversal appears faster than the code it replaces.
> 
>   With 1,000,000 flows present an otherwise idle system I observed CPU
>   utilisation of around 20% with the existing code but around 10% with
>   this new code.
> 
> * Flows that will never expire are not traversed.
> 
>   This addresses a case seen in the field.
> 
> Signed-off-by: Simon Horman <horms at verge.net.au>

It seems reasonable to use a list for this but I'd be inclined to do it
at the ofproto or ofproto-dpif layer rather than in the classifier.  It
doesn't seem to me like a natural function of the classifier: the
classifier is intended as a mechanism for quickly looking up an OpenFlow
rule on the basis of a flow and doesn't to date have anything to do with
expiration.



More information about the dev mailing list