aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAndy Zhou <azhou@nicira.com>2014-02-02 20:08:06 -0500
committerJesse Gross <jesse@nicira.com>2014-02-05 01:32:38 -0500
commitc14e0953ca51dbcb8d1ac92acbdcff23d0caa158 (patch)
treec3a16743141b36b972590bb152b5a52bebc26459 /net
parente4c6d7595403e943a3afc334eb8c0efcd840043a (diff)
openvswitch: Suppress error messages on megaflow updates
With subfacets, we'd expect megaflow updates message to carry the original micro flow. If not, EINVAL is returned and kernel logs an error message. Now that the user space subfacet layer is removed, it is expected that flow updates can arrive with a micro flow other than the original. Change the return code to EEXIST and remove the kernel error log message. Reported-by: Ben Pfaff <blp@nicira.com> Signed-off-by: Andy Zhou <azhou@nicira.com> Signed-off-by: Jesse Gross <jesse@nicira.com>
Diffstat (limited to 'net')
-rw-r--r--net/openvswitch/datapath.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c
index 58689dda8377..e9a48baf8551 100644
--- a/net/openvswitch/datapath.c
+++ b/net/openvswitch/datapath.c
@@ -860,11 +860,8 @@ static int ovs_flow_cmd_new_or_set(struct sk_buff *skb, struct genl_info *info)
860 goto err_unlock_ovs; 860 goto err_unlock_ovs;
861 861
862 /* The unmasked key has to be the same for flow updates. */ 862 /* The unmasked key has to be the same for flow updates. */
863 error = -EINVAL; 863 if (!ovs_flow_cmp_unmasked_key(flow, &match))
864 if (!ovs_flow_cmp_unmasked_key(flow, &match)) {
865 OVS_NLERR("Flow modification message rejected, unmasked key does not match.\n");
866 goto err_unlock_ovs; 864 goto err_unlock_ovs;
867 }
868 865
869 /* Update actions. */ 866 /* Update actions. */
870 old_acts = ovsl_dereference(flow->sf_acts); 867 old_acts = ovsl_dereference(flow->sf_acts);