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" <b...@nicira.com>
To: "Hyojoon Kim" <jo...@gatech.edu>
Cc: discuss@openvswitch.org
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
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to