summaryrefslogtreecommitdiff
path: root/pimd/pim6_cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim6_cmd.c')
-rw-r--r--pimd/pim6_cmd.c79
1 files changed, 32 insertions, 47 deletions
diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c
index 4d1cf88a83..f1ebdb554c 100644
--- a/pimd/pim6_cmd.c
+++ b/pimd/pim6_cmd.c
@@ -1775,69 +1775,53 @@ DEFPY (show_ipv6_pim_secondary,
return pim_show_secondary_helper(vrf, vty);
}
-DEFPY (show_ipv6_pim_cand_rp,
- show_ipv6_pim_cand_rp_cmd,
- "show ipv6 pim candidate-rp [vrf VRF_NAME] [json$uj]",
+DEFPY (show_ipv6_pim_bsr_cand_bsr,
+ show_ipv6_pim_bsr_cand_bsr_cmd,
+ "show ipv6 pim bsr candidate-bsr [vrf NAME$vrfname] [json$json]",
SHOW_STR
IPV6_STR
PIM_STR
- "PIM Candidate RP state\n"
+ BSR_STR
+ "Current PIM router candidate BSR state\n"
VRF_CMD_HELP_STR
JSON_STR)
{
- struct vrf *vrf = pim_cmd_lookup(vty, vrf_name);
- struct pim_instance *pim;
- struct bsm_scope *scope;
- json_object *json = NULL;
+ int idx = 2;
+ struct vrf *vrf = pim_cmd_lookup_vrf(vty, argv, argc, &idx, !!json);
if (!vrf || !vrf->info)
return CMD_WARNING;
- pim = (struct pim_instance *)vrf->info;
- scope = &pim->global_scope;
-
- if (!scope->cand_rp_addrsel.run) {
- if (uj)
- vty_out(vty, "{}\n");
- else
- vty_out(vty,
- "This router is not currently operating as Candidate RP\n");
- return CMD_SUCCESS;
- }
-
- if (uj) {
- json = json_object_new_object();
- json_object_string_addf(json, "address", "%pPA",
- &scope->cand_rp_addrsel.run_addr);
- json_object_int_add(json, "priority", scope->cand_rp_prio);
- json_object_int_add(json, "nextAdvertisementMsec",
- event_timer_remain_msec(
- scope->cand_rp_adv_timer));
-
- vty_out(vty, "%s\n",
- json_object_to_json_string_ext(json,
- JSON_C_TO_STRING_PRETTY));
- json_object_free(json);
- return CMD_SUCCESS;
- }
+ return pim_show_bsr_cand_bsr(vrf, vty, !!json);
+}
- vty_out(vty, "Candidate-RP\nAddress: %pPA\nPriority: %u\n\n",
- &scope->cand_rp_addrsel.run_addr, scope->cand_rp_prio);
- vty_out(vty, "Next adv.: %lu msec\n",
- event_timer_remain_msec(scope->cand_rp_adv_timer));
+DEFPY (show_ipv6_pim_bsr_cand_rp,
+ show_ipv6_pim_bsr_cand_rp_cmd,
+ "show ipv6 pim bsr candidate-rp [vrf VRF_NAME] [json$json]",
+ SHOW_STR
+ IPV6_STR
+ PIM_STR
+ BSR_STR
+ "Current PIM router candidate RP state\n"
+ VRF_CMD_HELP_STR
+ JSON_STR)
+{
+ struct vrf *vrf = pim_cmd_lookup(vty, vrf_name);
+ if (!vrf || !vrf->info)
+ return CMD_WARNING;
- return CMD_SUCCESS;
+ return pim_show_bsr_cand_rp(vrf, vty, !!json);
}
DEFPY (show_ipv6_pim_bsr_rpdb,
show_ipv6_pim_bsr_rpdb_cmd,
- "show ipv6 pim bsr candidate-rps [vrf VRF_NAME] [json$uj]",
+ "show ipv6 pim bsr candidate-rp-database [vrf VRF_NAME] [json$json]",
SHOW_STR
IPV6_STR
PIM_STR
- "boot-strap router information\n"
- "Candidate RPs\n"
+ BSR_STR
+ "Candidate RPs database on this router (if it is the BSR)\n"
VRF_CMD_HELP_STR
JSON_STR)
{
@@ -1849,12 +1833,12 @@ DEFPY (show_ipv6_pim_bsr_rpdb,
struct pim_instance *pim = vrf->info;
struct bsm_scope *scope = &pim->global_scope;
- return pim_crp_db_show(vty, scope);
+ return pim_crp_db_show(vty, scope, !!json);
}
DEFPY (show_ipv6_pim_bsr_groups,
show_ipv6_pim_bsr_groups_cmd,
- "show ipv6 pim bsr groups [vrf VRF_NAME] [json$uj]",
+ "show ipv6 pim bsr groups [vrf VRF_NAME] [json$json]",
SHOW_STR
IPV6_STR
PIM_STR
@@ -1871,7 +1855,7 @@ DEFPY (show_ipv6_pim_bsr_groups,
struct pim_instance *pim = vrf->info;
struct bsm_scope *scope = &pim->global_scope;
- return pim_crp_groups_show(vty, scope);
+ return pim_crp_groups_show(vty, scope, !!json);
}
@@ -2864,7 +2848,8 @@ void pim_cmd_init(void)
install_element(VIEW_NODE, &show_ipv6_pim_rpf_cmd);
install_element(VIEW_NODE, &show_ipv6_pim_rpf_vrf_all_cmd);
install_element(VIEW_NODE, &show_ipv6_pim_secondary_cmd);
- install_element(VIEW_NODE, &show_ipv6_pim_cand_rp_cmd);
+ install_element(VIEW_NODE, &show_ipv6_pim_bsr_cand_bsr_cmd);
+ install_element(VIEW_NODE, &show_ipv6_pim_bsr_cand_rp_cmd);
install_element(VIEW_NODE, &show_ipv6_pim_bsr_rpdb_cmd);
install_element(VIEW_NODE, &show_ipv6_pim_bsr_groups_cmd);
install_element(VIEW_NODE, &show_ipv6_pim_statistics_cmd);