[ovs-dev] [PATCH] ofproto: Maintain "expirable" list for "add" flow_mod with replaced rule.

Simon Horman horms at verge.net.au
Mon Jan 28 00:25:21 UTC 2013


On Fri, Jan 25, 2013 at 03:21:25PM -0800, Ben Pfaff wrote:
> Commit e503cc199 (ofproto: Optimise OpenFlow flow expiry) optimized
> OpenFlow flow expiration by putting expirable flows on a list, but it
> failed to remove flows from the list when they were replaced by a new
> flow with an OpenFlow flow_mod "add" operation.  This commit fixes the
> problem.
> 
> Found by valgrind.
> 
> CC: Simon Horman <horms at verge.net.au>
> Signed-off-by: Ben Pfaff <blp at nicira.com>

Sorry about that:

Acked-by: Simon Horman <horms at verge.net.au>

> ---
>  ofproto/ofproto.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
> index 249f2d5..093ccd5 100644
> --- a/ofproto/ofproto.c
> +++ b/ofproto/ofproto.c
> @@ -4858,6 +4858,7 @@ oftable_replace_rule(struct rule *rule)
>  
>      victim = rule_from_cls_rule(classifier_replace(&table->cls, &rule->cr));
>      if (victim) {
> +        list_remove(&victim->expirable);
>          eviction_group_remove_rule(victim);
>      }
>      eviction_group_add_rule(rule);
> -- 
> 1.7.2.5
> 



More information about the dev mailing list