diff options
Diffstat (limited to 'pimd/pim6_cmd.c')
| -rw-r--r-- | pimd/pim6_cmd.c | 79 |
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); |
