diff options
author | Mobashshera Rasool <mrasool@vmware.com> | 2022-05-27 07:11:12 +0200 |
---|---|---|
committer | Mobashshera Rasool <mrasool@vmware.com> | 2022-06-13 06:17:54 +0200 |
commit | 36cec27cd93378347255f31de92da711618f0c42 (patch) | |
tree | c5f943e2985237bc0c4135cd44ecce2af8fcc53e /pimd | |
parent | Merge pull request #11385 from AbhishekNR/show_cli (diff) | |
download | frr-36cec27cd93378347255f31de92da711618f0c42.tar.xz frr-36cec27cd93378347255f31de92da711618f0c42.zip |
pim6d: Moving show apis to common file
Moving pim_show_interface_traffic and pim_show_interface_traffic_single
to pim_cmd_common.c from pim_cmd.c to make it common to
pimd and pim6d.
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
Diffstat (limited to 'pimd')
-rw-r--r-- | pimd/pim_cmd.c | 178 | ||||
-rw-r--r-- | pimd/pim_cmd_common.c | 179 | ||||
-rw-r--r-- | pimd/pim_cmd_common.h | 5 |
3 files changed, 184 insertions, 178 deletions
diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index b387783e8..2e4c98f75 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -837,184 +837,6 @@ static void igmp_show_statistics(struct pim_instance *pim, struct vty *vty, } } -static void pim_show_interface_traffic(struct pim_instance *pim, - struct vty *vty, bool uj) -{ - struct interface *ifp = NULL; - struct pim_interface *pim_ifp = NULL; - json_object *json = NULL; - json_object *json_row = NULL; - - if (uj) - json = json_object_new_object(); - else { - vty_out(vty, "\n"); - vty_out(vty, "%-16s%-17s%-17s%-17s%-17s%-17s%-17s%-17s\n", - "Interface", " HELLO", " JOIN", - " PRUNE", " REGISTER", "REGISTER-STOP", - " ASSERT", " BSM"); - vty_out(vty, "%-16s%-17s%-17s%-17s%-17s%-17s%-17s%-17s\n", "", - " Rx/Tx", " Rx/Tx", " Rx/Tx", - " Rx/Tx", " Rx/Tx", " Rx/Tx", - " Rx/Tx"); - vty_out(vty, - "---------------------------------------------------------------------------------------------------------------\n"); - } - - FOR_ALL_INTERFACES (pim->vrf, ifp) { - pim_ifp = ifp->info; - - if (!pim_ifp) - continue; - - if (uj) { - json_row = json_object_new_object(); - json_object_pim_ifp_add(json_row, ifp); - json_object_int_add(json_row, "helloRx", - pim_ifp->pim_ifstat_hello_recv); - json_object_int_add(json_row, "helloTx", - pim_ifp->pim_ifstat_hello_sent); - json_object_int_add(json_row, "joinRx", - pim_ifp->pim_ifstat_join_recv); - json_object_int_add(json_row, "joinTx", - pim_ifp->pim_ifstat_join_send); - json_object_int_add(json_row, "pruneTx", - pim_ifp->pim_ifstat_prune_send); - json_object_int_add(json_row, "pruneRx", - pim_ifp->pim_ifstat_prune_recv); - json_object_int_add(json_row, "registerRx", - pim_ifp->pim_ifstat_reg_recv); - json_object_int_add(json_row, "registerTx", - pim_ifp->pim_ifstat_reg_send); - json_object_int_add(json_row, "registerStopRx", - pim_ifp->pim_ifstat_reg_stop_recv); - json_object_int_add(json_row, "registerStopTx", - pim_ifp->pim_ifstat_reg_stop_send); - json_object_int_add(json_row, "assertRx", - pim_ifp->pim_ifstat_assert_recv); - json_object_int_add(json_row, "assertTx", - pim_ifp->pim_ifstat_assert_send); - json_object_int_add(json_row, "bsmRx", - pim_ifp->pim_ifstat_bsm_rx); - json_object_int_add(json_row, "bsmTx", - pim_ifp->pim_ifstat_bsm_tx); - json_object_object_add(json, ifp->name, json_row); - } else { - vty_out(vty, - "%-16s %8u/%-8u %7u/%-7u %7u/%-7u %7u/%-7u %7u/%-7u %7u/%-7u %7" PRIu64 "/%-7" PRIu64 "\n", - ifp->name, pim_ifp->pim_ifstat_hello_recv, - pim_ifp->pim_ifstat_hello_sent, - pim_ifp->pim_ifstat_join_recv, - pim_ifp->pim_ifstat_join_send, - pim_ifp->pim_ifstat_prune_recv, - pim_ifp->pim_ifstat_prune_send, - pim_ifp->pim_ifstat_reg_recv, - pim_ifp->pim_ifstat_reg_send, - pim_ifp->pim_ifstat_reg_stop_recv, - pim_ifp->pim_ifstat_reg_stop_send, - pim_ifp->pim_ifstat_assert_recv, - pim_ifp->pim_ifstat_assert_send, - pim_ifp->pim_ifstat_bsm_rx, - pim_ifp->pim_ifstat_bsm_tx); - } - } - if (uj) - vty_json(vty, json); -} - -static void pim_show_interface_traffic_single(struct pim_instance *pim, - struct vty *vty, - const char *ifname, bool uj) -{ - struct interface *ifp = NULL; - struct pim_interface *pim_ifp = NULL; - json_object *json = NULL; - json_object *json_row = NULL; - uint8_t found_ifname = 0; - - if (uj) - json = json_object_new_object(); - else { - vty_out(vty, "\n"); - vty_out(vty, "%-16s%-17s%-17s%-17s%-17s%-17s%-17s%-17s\n", - "Interface", " HELLO", " JOIN", " PRUNE", - " REGISTER", " REGISTER-STOP", " ASSERT", - " BSM"); - vty_out(vty, "%-14s%-18s%-17s%-17s%-17s%-17s%-17s%-17s\n", "", - " Rx/Tx", " Rx/Tx", " Rx/Tx", " Rx/Tx", - " Rx/Tx", " Rx/Tx", " Rx/Tx"); - vty_out(vty, - "-------------------------------------------------------------------------------------------------------------------------------\n"); - } - - FOR_ALL_INTERFACES (pim->vrf, ifp) { - if (strcmp(ifname, ifp->name)) - continue; - - pim_ifp = ifp->info; - - if (!pim_ifp) - continue; - - found_ifname = 1; - if (uj) { - json_row = json_object_new_object(); - json_object_pim_ifp_add(json_row, ifp); - json_object_int_add(json_row, "helloRx", - pim_ifp->pim_ifstat_hello_recv); - json_object_int_add(json_row, "helloTx", - pim_ifp->pim_ifstat_hello_sent); - json_object_int_add(json_row, "joinRx", - pim_ifp->pim_ifstat_join_recv); - json_object_int_add(json_row, "joinTx", - pim_ifp->pim_ifstat_join_send); - json_object_int_add(json_row, "pruneRx", - pim_ifp->pim_ifstat_prune_recv); - json_object_int_add(json_row, "pruneTx", - pim_ifp->pim_ifstat_prune_send); - json_object_int_add(json_row, "registerRx", - pim_ifp->pim_ifstat_reg_recv); - json_object_int_add(json_row, "registerTx", - pim_ifp->pim_ifstat_reg_send); - json_object_int_add(json_row, "registerStopRx", - pim_ifp->pim_ifstat_reg_stop_recv); - json_object_int_add(json_row, "registerStopTx", - pim_ifp->pim_ifstat_reg_stop_send); - json_object_int_add(json_row, "assertRx", - pim_ifp->pim_ifstat_assert_recv); - json_object_int_add(json_row, "assertTx", - pim_ifp->pim_ifstat_assert_send); - json_object_int_add(json_row, "bsmRx", - pim_ifp->pim_ifstat_bsm_rx); - json_object_int_add(json_row, "bsmTx", - pim_ifp->pim_ifstat_bsm_tx); - - json_object_object_add(json, ifp->name, json_row); - } else { - vty_out(vty, - "%-16s %8u/%-8u %7u/%-7u %7u/%-7u %7u/%-7u %7u/%-7u %7u/%-7u %7" PRIu64 "/%-7" PRIu64 "\n", - ifp->name, pim_ifp->pim_ifstat_hello_recv, - pim_ifp->pim_ifstat_hello_sent, - pim_ifp->pim_ifstat_join_recv, - pim_ifp->pim_ifstat_join_send, - pim_ifp->pim_ifstat_prune_recv, - pim_ifp->pim_ifstat_prune_send, - pim_ifp->pim_ifstat_reg_recv, - pim_ifp->pim_ifstat_reg_send, - pim_ifp->pim_ifstat_reg_stop_recv, - pim_ifp->pim_ifstat_reg_stop_send, - pim_ifp->pim_ifstat_assert_recv, - pim_ifp->pim_ifstat_assert_send, - pim_ifp->pim_ifstat_bsm_rx, - pim_ifp->pim_ifstat_bsm_tx); - } - } - if (uj) - vty_json(vty, json); - else if (!found_ifname) - vty_out(vty, "%% No such interface\n"); -} - /* Display the bsm database details */ static void pim_show_bsm_db(struct pim_instance *pim, struct vty *vty, bool uj) { diff --git a/pimd/pim_cmd_common.c b/pimd/pim_cmd_common.c index 559aa7ec0..bfa0ddec6 100644 --- a/pimd/pim_cmd_common.c +++ b/pimd/pim_cmd_common.c @@ -4646,3 +4646,182 @@ int pim_show_mroute_summary_vrf_all_helper(struct vty *vty, bool json) return CMD_SUCCESS; } + +void pim_show_interface_traffic(struct pim_instance *pim, struct vty *vty, + bool uj) +{ + struct interface *ifp = NULL; + struct pim_interface *pim_ifp = NULL; + json_object *json = NULL; + json_object *json_row = NULL; + + if (uj) + json = json_object_new_object(); + else { + vty_out(vty, "\n"); + vty_out(vty, "%-16s%-17s%-17s%-17s%-17s%-17s%-17s%-17s\n", + "Interface", " HELLO", " JOIN", + " PRUNE", " REGISTER", "REGISTER-STOP", + " ASSERT", " BSM"); + vty_out(vty, "%-16s%-17s%-17s%-17s%-17s%-17s%-17s%-17s\n", "", + " Rx/Tx", " Rx/Tx", " Rx/Tx", + " Rx/Tx", " Rx/Tx", " Rx/Tx", " Rx/Tx"); + vty_out(vty, + "---------------------------------------------------------------------------------------------------------------\n"); + } + + FOR_ALL_INTERFACES (pim->vrf, ifp) { + pim_ifp = ifp->info; + + if (!pim_ifp) + continue; + + if (uj) { + json_row = json_object_new_object(); + json_object_pim_ifp_add(json_row, ifp); + json_object_int_add(json_row, "helloRx", + pim_ifp->pim_ifstat_hello_recv); + json_object_int_add(json_row, "helloTx", + pim_ifp->pim_ifstat_hello_sent); + json_object_int_add(json_row, "joinRx", + pim_ifp->pim_ifstat_join_recv); + json_object_int_add(json_row, "joinTx", + pim_ifp->pim_ifstat_join_send); + json_object_int_add(json_row, "pruneTx", + pim_ifp->pim_ifstat_prune_send); + json_object_int_add(json_row, "pruneRx", + pim_ifp->pim_ifstat_prune_recv); + json_object_int_add(json_row, "registerRx", + pim_ifp->pim_ifstat_reg_recv); + json_object_int_add(json_row, "registerTx", + pim_ifp->pim_ifstat_reg_send); + json_object_int_add(json_row, "registerStopRx", + pim_ifp->pim_ifstat_reg_stop_recv); + json_object_int_add(json_row, "registerStopTx", + pim_ifp->pim_ifstat_reg_stop_send); + json_object_int_add(json_row, "assertRx", + pim_ifp->pim_ifstat_assert_recv); + json_object_int_add(json_row, "assertTx", + pim_ifp->pim_ifstat_assert_send); + json_object_int_add(json_row, "bsmRx", + pim_ifp->pim_ifstat_bsm_rx); + json_object_int_add(json_row, "bsmTx", + pim_ifp->pim_ifstat_bsm_tx); + json_object_object_add(json, ifp->name, json_row); + } else { + vty_out(vty, + "%-16s %8u/%-8u %7u/%-7u %7u/%-7u %7u/%-7u %7u/%-7u %7u/%-7u %7" PRIu64 + "/%-7" PRIu64 "\n", + ifp->name, pim_ifp->pim_ifstat_hello_recv, + pim_ifp->pim_ifstat_hello_sent, + pim_ifp->pim_ifstat_join_recv, + pim_ifp->pim_ifstat_join_send, + pim_ifp->pim_ifstat_prune_recv, + pim_ifp->pim_ifstat_prune_send, + pim_ifp->pim_ifstat_reg_recv, + pim_ifp->pim_ifstat_reg_send, + pim_ifp->pim_ifstat_reg_stop_recv, + pim_ifp->pim_ifstat_reg_stop_send, + pim_ifp->pim_ifstat_assert_recv, + pim_ifp->pim_ifstat_assert_send, + pim_ifp->pim_ifstat_bsm_rx, + pim_ifp->pim_ifstat_bsm_tx); + } + } + if (uj) + vty_json(vty, json); +} + +void pim_show_interface_traffic_single(struct pim_instance *pim, + struct vty *vty, const char *ifname, + bool uj) +{ + struct interface *ifp = NULL; + struct pim_interface *pim_ifp = NULL; + json_object *json = NULL; + json_object *json_row = NULL; + uint8_t found_ifname = 0; + + if (uj) + json = json_object_new_object(); + else { + vty_out(vty, "\n"); + vty_out(vty, "%-16s%-17s%-17s%-17s%-17s%-17s%-17s%-17s\n", + "Interface", " HELLO", " JOIN", " PRUNE", + " REGISTER", " REGISTER-STOP", " ASSERT", + " BSM"); + vty_out(vty, "%-14s%-18s%-17s%-17s%-17s%-17s%-17s%-17s\n", "", + " Rx/Tx", " Rx/Tx", " Rx/Tx", " Rx/Tx", + " Rx/Tx", " Rx/Tx", " Rx/Tx"); + vty_out(vty, + "-------------------------------------------------------------------------------------------------------------------------------\n"); + } + + FOR_ALL_INTERFACES (pim->vrf, ifp) { + if (strcmp(ifname, ifp->name)) + continue; + + pim_ifp = ifp->info; + + if (!pim_ifp) + continue; + + found_ifname = 1; + if (uj) { + json_row = json_object_new_object(); + json_object_pim_ifp_add(json_row, ifp); + json_object_int_add(json_row, "helloRx", + pim_ifp->pim_ifstat_hello_recv); + json_object_int_add(json_row, "helloTx", + pim_ifp->pim_ifstat_hello_sent); + json_object_int_add(json_row, "joinRx", + pim_ifp->pim_ifstat_join_recv); + json_object_int_add(json_row, "joinTx", + pim_ifp->pim_ifstat_join_send); + json_object_int_add(json_row, "pruneRx", + pim_ifp->pim_ifstat_prune_recv); + json_object_int_add(json_row, "pruneTx", + pim_ifp->pim_ifstat_prune_send); + json_object_int_add(json_row, "registerRx", + pim_ifp->pim_ifstat_reg_recv); + json_object_int_add(json_row, "registerTx", + pim_ifp->pim_ifstat_reg_send); + json_object_int_add(json_row, "registerStopRx", + pim_ifp->pim_ifstat_reg_stop_recv); + json_object_int_add(json_row, "registerStopTx", + pim_ifp->pim_ifstat_reg_stop_send); + json_object_int_add(json_row, "assertRx", + pim_ifp->pim_ifstat_assert_recv); + json_object_int_add(json_row, "assertTx", + pim_ifp->pim_ifstat_assert_send); + json_object_int_add(json_row, "bsmRx", + pim_ifp->pim_ifstat_bsm_rx); + json_object_int_add(json_row, "bsmTx", + pim_ifp->pim_ifstat_bsm_tx); + + json_object_object_add(json, ifp->name, json_row); + } else { + vty_out(vty, + "%-16s %8u/%-8u %7u/%-7u %7u/%-7u %7u/%-7u %7u/%-7u %7u/%-7u %7" PRIu64 + "/%-7" PRIu64 "\n", + ifp->name, pim_ifp->pim_ifstat_hello_recv, + pim_ifp->pim_ifstat_hello_sent, + pim_ifp->pim_ifstat_join_recv, + pim_ifp->pim_ifstat_join_send, + pim_ifp->pim_ifstat_prune_recv, + pim_ifp->pim_ifstat_prune_send, + pim_ifp->pim_ifstat_reg_recv, + pim_ifp->pim_ifstat_reg_send, + pim_ifp->pim_ifstat_reg_stop_recv, + pim_ifp->pim_ifstat_reg_stop_send, + pim_ifp->pim_ifstat_assert_recv, + pim_ifp->pim_ifstat_assert_send, + pim_ifp->pim_ifstat_bsm_rx, + pim_ifp->pim_ifstat_bsm_tx); + } + } + if (uj) + vty_json(vty, json); + else if (!found_ifname) + vty_out(vty, "%% No such interface\n"); +} diff --git a/pimd/pim_cmd_common.h b/pimd/pim_cmd_common.h index e1e48dd24..ead6c9b48 100644 --- a/pimd/pim_cmd_common.h +++ b/pimd/pim_cmd_common.h @@ -180,6 +180,11 @@ int pim_show_mroute_count_vrf_all_helper(struct vty *vty, bool json); int pim_show_mroute_summary_helper(const char *vrf, struct vty *vty, bool json); int pim_show_mroute_summary_vrf_all_helper(struct vty *vty, bool json); +void pim_show_interface_traffic_single(struct pim_instance *pim, + struct vty *vty, const char *ifname, + bool uj); +void pim_show_interface_traffic(struct pim_instance *pim, struct vty *vty, + bool uj); /* * Special Macro to allow us to get the correct pim_instance; */ |