summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/vnet/lisp-cp/control.c1
-rw-r--r--src/vnet/lisp-cp/lisp_api.c4
-rw-r--r--src/vnet/lisp-cp/lisp_cli.c3
-rw-r--r--src/vnet/lisp-cp/lisp_types.h10
4 files changed, 15 insertions, 3 deletions
diff --git a/src/vnet/lisp-cp/control.c b/src/vnet/lisp-cp/control.c
index 66b560e4ab0..ac11d890618 100644
--- a/src/vnet/lisp-cp/control.c
+++ b/src/vnet/lisp-cp/control.c
@@ -1301,6 +1301,7 @@ vnet_lisp_pitr_set_locator_set (u8 * locator_set_name, u8 is_add)
pool_get (lcm->mapping_pool, m);
m->locator_set_index = locator_set_index;
m->local = 1;
+ m->pitr_set = 1;
lcm->pitr_map_index = m - lcm->mapping_pool;
/* enable pitr mode */
diff --git a/src/vnet/lisp-cp/lisp_api.c b/src/vnet/lisp-cp/lisp_api.c
index 78d32e17aa6..b2b31f09738 100644
--- a/src/vnet/lisp-cp/lisp_api.c
+++ b/src/vnet/lisp-cp/lisp_api.c
@@ -752,6 +752,10 @@ send_lisp_eid_table_details (mapping_t * mapit,
return;
}
+ /* don't send PITR generated mapping */
+ if (mapit->pitr_set)
+ return;
+
gid = &mapit->eid;
ip_prefix = &gid_address_ippref (gid);
mac = gid_address_mac (gid);
diff --git a/src/vnet/lisp-cp/lisp_cli.c b/src/vnet/lisp-cp/lisp_cli.c
index 15e6acbf6ee..a2088dd34af 100644
--- a/src/vnet/lisp-cp/lisp_cli.c
+++ b/src/vnet/lisp-cp/lisp_cli.c
@@ -799,6 +799,9 @@ lisp_show_eid_table_command_fn (vlib_main_t * vm,
/* *INDENT-OFF* */
pool_foreach (mapit, lcm->mapping_pool,
({
+ if (mapit->pitr_set)
+ continue;
+
locator_set_t * ls = pool_elt_at_index (lcm->locator_set_pool,
mapit->locator_set_index);
if (filter && !((1 == filter && ls->local) ||
diff --git a/src/vnet/lisp-cp/lisp_types.h b/src/vnet/lisp-cp/lisp_types.h
index e43f5ab030e..672835bd760 100644
--- a/src/vnet/lisp-cp/lisp_types.h
+++ b/src/vnet/lisp-cp/lisp_types.h
@@ -327,11 +327,15 @@ typedef struct
u32 ttl;
u8 action;
- u8 authoritative;
- u8 local;
+ u8 authoritative:1;
+ u8 local:1;
/* valid only for remote mappings */
- u8 is_static;
+ u8 is_static:1;
+ u8 pitr_set:1;
+ u8 rsvd:4;
+
+
u8 *key;
lisp_key_type_t key_id;
u8 timer_set;