Thanks, I applied this fix to master, and I'll look at other branches
now.

On Mon, Mar 17, 2014 at 02:41:37PM -0400, Kim, Hyojoon wrote:
> Hi Ben, 
> 
> The patch works, and solves the problem. Now it updates immediately :-)
> 
> Seems like you can make it an official patch. Thanks for your prompt response 
> and solution!
> 
> Thanks,
> Joon
> 
> ----- Original Message -----
> From: "Ben Pfaff" <[email protected]>
> To: "Hyojoon Kim" <[email protected]>
> Cc: [email protected]
> Sent: Monday, March 17, 2014 8:47:46 AM
> Subject: Re: [ovs-discuss] Immediate reaction to group-mod
> 
> On Mon, Mar 17, 2014 at 05:08:22AM -0400, Kim, Hyojoon wrote:
> > For example:
> > Let's say there is a flow table entry whose action is "group table
> > 10". And the group table entry with id 10 has an action as "output:
> > 1". I generate flows that match the aforementioned flow table entry,
> > so flows start to go out through output port 1.
> > 
> > Now, if I modify the group table entry's action to have "output: 2",
> > those flows should now go out through output port 2 instead of 1
> > *immediately*, right after I send the group-mod OpenFlow command.
> > 
> > However, it seems that this is not the case. I have to stop the flow,
> > wait until the flow table entry times out, and then re-initiate the
> > flow. Then, the modified group table entry finally seems to take
> > effect.
> 
> It appears that this is a bug that has not been reported before.  Can
> you try this patch?
> 
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index 97eb2b8..f6383dd 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -3334,6 +3334,7 @@ group_destruct(struct ofgroup *group_)
>  static enum ofperr
>  group_modify(struct ofgroup *group_, struct ofgroup *victim_)
>  {
> +    struct ofproto_dpif *ofproto = ofproto_dpif_cast(group_->ofproto);
>      struct group_dpif *group = group_dpif_cast(group_);
>      struct group_dpif *victim = group_dpif_cast(victim_);
>  
> @@ -3344,6 +3345,8 @@ group_modify(struct ofgroup *group_, struct ofgroup 
> *victim_)
>      group_construct_stats(group);
>      ovs_mutex_unlock(&group->stats_mutex);
>  
> +    ofproto->backer->need_revalidate = REV_RECONFIGURE;
> +
>      return 0;
>  }
>  
_______________________________________________
discuss mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to