From: Simon Horman Date: Thu, 5 Jun 2014 09:54:47 +0000 (+0900) Subject: ofproto: Send monitor updates if a flow mod changes a rules actions X-Git-Tag: v2.0.2~12 X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=commitdiff_plain;h=4fbb1fd32a72de93fce0d3da06b72ed5568d1b47 ofproto: Send monitor updates if a flow mod changes a rules actions Without this change a monitor update will be sent when a flow mod changes a rules cookie but not if only the actions are updated. This appears to be a logic error. I noticed this while working on implementing OpenFlow1.4 flow monitor as an OpenFlow1.4 flow mod does not update a rules cookie. Signed-off-by: Simon Horman Signed-off-by: Ben Pfaff --- diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index 13c20b3e2..be66b0441 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -5409,7 +5409,7 @@ ofopgroup_complete(struct ofopgroup *group) if (!(op->error || ofproto_rule_is_hidden(rule) || (op->type == OFOPERATION_MODIFY - && op->actions + && !op->actions && rule->flow_cookie == op->flow_cookie))) { /* Check that we can just cast from ofoperation_type to * nx_flow_update_event. */ diff --git a/tests/ofproto.at b/tests/ofproto.at index 38bfb0225..41ef0891d 100644 --- a/tests/ofproto.at +++ b/tests/ofproto.at @@ -1671,6 +1671,7 @@ ovs-ofctl add-flow br0 in_port=0,dl_vlan=0,actions=output:20 ovs-ofctl add-flow br0 in_port=0,dl_vlan_pcp=0,actions=output:21 ovs-ofctl add-flow br0 in_port=0,dl_vlan_pcp=1,actions=output:22 ovs-ofctl add-flow br0 in_port=0,actions=output:23 +ovs-ofctl mod-flows br0 dl_vlan=123,actions=output:3 ovs-ofctl mod-flows br0 cookie=5,dl_vlan=123,actions=output:3 ovs-ofctl del-flows br0 dl_vlan=123 ovs-ofctl del-flows br0 @@ -1733,6 +1734,10 @@ NXST_FLOW_MONITOR reply (xid=0x0): event=ADDED table=0 cookie=0 in_port=0,dl_vlan_pcp=1 actions=output:22 NXST_FLOW_MONITOR reply (xid=0x0): event=ADDED table=0 cookie=0 in_port=0 actions=output:23 +NXST_FLOW_MONITOR reply (xid=0x0): + event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:3 + event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123,dl_vlan_pcp=0 actions=output:3 + event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123,dl_vlan_pcp=1 actions=output:3 NXST_FLOW_MONITOR reply (xid=0x0): event=MODIFIED table=0 cookie=0x5 in_port=0,dl_vlan=123 actions=output:3 event=MODIFIED table=0 cookie=0x5 in_port=0,dl_vlan=123,dl_vlan_pcp=0 actions=output:3