aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/lisp-cp/control.c
diff options
context:
space:
mode:
authorFilip Tehlar <ftehlar@cisco.com>2016-09-30 12:47:59 +0200
committerFlorin Coras <florin.coras@gmail.com>2016-09-30 13:07:51 +0000
commitf3e3fd3e08747b95ce32e7f8de714e82fc0f9597 (patch)
tree474095d9fd949d04af835550d3efebbc4a632916 /vnet/vnet/lisp-cp/control.c
parentf2c6ed1925efa46fc9f17d0b7cad738c71067eb4 (diff)
VPP-454 Fix LISP GID dictionary issue
GID dictionary IP prefix entries are rewritten with more narrow one which is not desirable. This patch does exact matching instead of longest prefix matching. Change-Id: I0191e23229a69ffe86f82ea4d71e4a5534dbb5b0 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Diffstat (limited to 'vnet/vnet/lisp-cp/control.c')
-rw-r--r--vnet/vnet/lisp-cp/control.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/vnet/vnet/lisp-cp/control.c b/vnet/vnet/lisp-cp/control.c
index 940d5893..4ca30f95 100644
--- a/vnet/vnet/lisp-cp/control.c
+++ b/vnet/vnet/lisp-cp/control.c
@@ -394,7 +394,10 @@ dp_add_fwd_entry (lisp_cp_main_t * lcm, u32 src_map_index, u32 dst_map_index)
if (feip)
dp_del_fwd_entry (lcm, src_map_index, dst_map_index);
- src_map = pool_elt_at_index (lcm->mapping_pool, src_map_index);
+ if (lcm->lisp_pitr)
+ src_map = pool_elt_at_index (lcm->mapping_pool, lcm->pitr_map_index);
+ else
+ src_map = pool_elt_at_index (lcm->mapping_pool, src_map_index);
dst_map = pool_elt_at_index (lcm->mapping_pool, dst_map_index);
/* insert data plane forwarding entry */