From 025725f70dc5a04f83e31248502582bd1cd42755 Mon Sep 17 00:00:00 2001 From: saravanank Date: Thu, 2 May 2019 01:35:35 -0700 Subject: [PATCH] pimd: Show RP source in show ip pim rp-info command Sw3# sh ip pim rp-info RP address group/prefix-list OIF I am RP Source 20.0.0.2 225.1.1.1/32 ens192 no BSR 9.9.9.9 226.1.1.1/32 (Unknown) no BSR 30.0.0.100 229.1.1.5/32 ens192 no Static Signed-off-by: Saravanan K --- pimd/pim_rp.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/pimd/pim_rp.c b/pimd/pim_rp.c index f01af07537..42e6805d23 100644 --- a/pimd/pim_rp.c +++ b/pimd/pim_rp.c @@ -1064,6 +1064,7 @@ void pim_rp_show_information(struct pim_instance *pim, struct vty *vty, bool uj) struct rp_info *rp_info; struct rp_info *prev_rp_info = NULL; struct listnode *node; + char source[7]; json_object *json = NULL; json_object *json_rp_rows = NULL; @@ -1073,12 +1074,17 @@ void pim_rp_show_information(struct pim_instance *pim, struct vty *vty, bool uj) json = json_object_new_object(); else vty_out(vty, - "RP address group/prefix-list OIF I am RP\n"); - + "RP address group/prefix-list OIF I am RP Source\n"); for (ALL_LIST_ELEMENTS_RO(pim->rp_list, node, rp_info)) { if (!pim_rpf_addr_is_inaddr_none(&rp_info->rp)) { char buf[48]; + if (rp_info->rp_src == RP_SRC_STATIC) + strcpy(source, "Static"); + else if (rp_info->rp_src == RP_SRC_BSR) + strcpy(source, "BSR"); + else + strcpy(source, "None"); if (uj) { /* * If we have moved on to a new RP then add the @@ -1121,6 +1127,9 @@ void pim_rp_show_information(struct pim_instance *pim, struct vty *vty, bool uj) json_row, "group", prefix2str(&rp_info->group, buf, 48)); + json_object_string_add(json_row, + "source", + source); json_object_array_add(json_rp_rows, json_row); } else { @@ -1145,9 +1154,10 @@ void pim_rp_show_information(struct pim_instance *pim, struct vty *vty, bool uj) if (rp_info->i_am_rp) vty_out(vty, "yes\n"); else - vty_out(vty, "no\n"); - } + vty_out(vty, "no"); + vty_out(vty, "%14s\n", source); + } prev_rp_info = rp_info; } } -- 2.39.5