aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/lisp-cp/lisp_api.c
diff options
context:
space:
mode:
authorFilip Tehlar <ftehlar@cisco.com>2017-08-14 19:15:36 +0200
committerFilip Tehlar <ftehlar@cisco.com>2017-09-04 12:13:55 +0200
commit809bc74b5b73634678e6f1444344fd1c0a89e877 (patch)
treeb21cbb276341223fbbd9b00d23488309bd47840e /src/vnet/lisp-cp/lisp_api.c
parentdbfa574a1d5ebb68a81fed20dcd4bb2f47c47066 (diff)
LISP: re-fetch mapping before it expires
Change-Id: I0581a1bddad55d8d573c546ec84b0b2760abab3d Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Diffstat (limited to 'src/vnet/lisp-cp/lisp_api.c')
-rw-r--r--src/vnet/lisp-cp/lisp_api.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/vnet/lisp-cp/lisp_api.c b/src/vnet/lisp-cp/lisp_api.c
index 6c82d4cf049..f7c41971061 100644
--- a/src/vnet/lisp-cp/lisp_api.c
+++ b/src/vnet/lisp-cp/lisp_api.c
@@ -521,8 +521,19 @@ static void
/* NOTE: for now this works as a static remote mapping, i.e.,
* not authoritative and ttl infinite. */
- rv = vnet_lisp_add_del_mapping (eid, rlocs, mp->action, 0, ~0,
- mp->is_add, 1 /* is_static */ , 0);
+ if (mp->is_add)
+ {
+ vnet_lisp_add_del_mapping_args_t _m_args, *m_args = &_m_args;
+ memset (m_args, 0, sizeof (m_args[0]));
+ gid_address_copy (&m_args->eid, eid);
+ m_args->action = mp->action;
+ m_args->is_static = 1;
+ m_args->ttl = ~0;
+ m_args->authoritative = 0;
+ rv = vnet_lisp_add_mapping (m_args, rlocs, NULL, NULL);
+ }
+ else
+ rv = vnet_lisp_del_mapping (eid, NULL);
if (mp->del_all)
vnet_lisp_clear_all_remote_adjacencies ();