From c5bb0d6667ca36affe9fb30e58c852e4f1b47f93 Mon Sep 17 00:00:00 2001 From: Filip Tehlar Date: Fri, 2 Sep 2016 12:14:31 +0200 Subject: VPP-376: Refactor LISP dump API + VAT - refactor VAT so it won't cache data - remove unused filter flag from locator dump API call - json structure changed for locator and EID table dump calls - remote mapping VAT cli now accepts string for negative mapping action Change-Id: I776fb50659aaa7e98ad93715d282a83f78287344 Signed-off-by: Filip Tehlar --- vnet/vnet/lisp-cp/control.c | 14 ++++++++++---- vnet/vnet/lisp-cp/lisp_types.c | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'vnet') diff --git a/vnet/vnet/lisp-cp/control.c b/vnet/vnet/lisp-cp/control.c index 0236e6ef6ef..16d7bfa0e1f 100644 --- a/vnet/vnet/lisp-cp/control.c +++ b/vnet/vnet/lisp-cp/control.c @@ -1049,6 +1049,12 @@ lisp_add_del_remote_mapping_command_fn (vlib_main_t * vm, else if (unformat (line_input, "rloc %U", unformat_ip_address, &gid_address_ip (&rloc.address))) { + /* since rloc is stored in ip prefix we need to set prefix length */ + ip_prefix_t *pref = &gid_address_ippref (&rloc.address); + + u8 version = gid_address_ip_version (&rloc.address); + ip_prefix_len (pref) = ip_address_max_len (version); + vec_add1 (rlocs, rloc); curr_rloc = &rlocs[vec_len (rlocs) - 1]; } @@ -1710,7 +1716,7 @@ vnet_lisp_add_del_locator (vnet_lisp_add_del_locator_set_args_t * a, vec_validate (lcm->locator_to_locator_sets, loc_index); ls_indexes = vec_elt_at_index (lcm->locator_to_locator_sets, loc_index); - vec_add1 (ls_indexes[0], ls_index); + vec_add1 (ls_indexes[0], p[0]); } } else @@ -2213,7 +2219,7 @@ lisp_cp_show_locator_sets_command_fn (vlib_main_t * vm, u32 *locit; lisp_cp_main_t *lcm = vnet_lisp_cp_get_main (); - vlib_cli_output (vm, "%=20s%=16s%=16s%=16s", "Locator-set", "Locator", + vlib_cli_output (vm, "%s%=16s%=16s%=16s", "Locator-set", "Locator", "Priority", "Weight"); /* *INDENT-OFF* */ @@ -2223,11 +2229,11 @@ lisp_cp_show_locator_sets_command_fn (vlib_main_t * vm, int next_line = 0; if (lsit->local) { - msg = format (msg, "%=16v", lsit->name); + msg = format (msg, "%v", lsit->name); } else { - msg = format (msg, "%=16s", "remote"); + msg = format (msg, "<%s-%d>", "remote", lsit - lcm->locator_set_pool); } vec_foreach (locit, lsit->locator_indices) { diff --git a/vnet/vnet/lisp-cp/lisp_types.c b/vnet/vnet/lisp-cp/lisp_types.c index 203698ad89a..b4fb1d91bfc 100644 --- a/vnet/vnet/lisp-cp/lisp_types.c +++ b/vnet/vnet/lisp-cp/lisp_types.c @@ -1253,6 +1253,7 @@ gid_address_parse (u8 * offset, gid_address_t * a) void gid_address_ip_set (gid_address_t * dst, void *src, u8 version) { + gid_address_ippref_len (dst) = ip_address_max_len (version); ip_address_set (&gid_address_ip (dst), src, version); } -- cgit 1.2.3-korg