From 004cce23a6223a1fc062ff1fd3948de83742bc9c Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 14 Oct 2011 14:33:11 -0700 Subject: [PATCH] datapath: Avoid confusing tunnels that have different types. Without this change, the following commands succeed: # ovs-dpctl add-if br1 gre1,type=gre,remote_ip=1.2.3.4,local_ip=2.3.4.5 # ovs-dpctl add-if br1 gre0,type=gre,remote_ip=1.2.3.4 but if they are run in the opposite order, they fail with: ovs-dpctl: adding gre1 to br1 failed (File exists) This fixes the problem. Signed-off-by: Ben Pfaff Acked-by: Jesse Gross --- datapath/tunnel.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/datapath/tunnel.c b/datapath/tunnel.c index 5b3d7f51..e97b9f21 100644 --- a/datapath/tunnel.c +++ b/datapath/tunnel.c @@ -1326,10 +1326,7 @@ static int tnl_set_config(struct nlattr *options, const struct tnl_ops *tnl_ops, mutable->tunnel_hlen += sizeof(struct iphdr); - old_vport = tnl_find_port(mutable->key.saddr, mutable->key.daddr, - mutable->key.in_key, mutable->key.tunnel_type, - &old_mutable); - + old_vport = port_table_lookup(&mutable->key, &old_mutable); if (old_vport && old_vport != cur_vport) return -EEXIST; -- 2.30.2