summaryrefslogtreecommitdiffstats
path: root/pimd
diff options
context:
space:
mode:
authorMobashshera Rasool <mrasool@vmware.com>2022-05-27 07:11:12 +0200
committerMobashshera Rasool <mrasool@vmware.com>2022-06-13 06:17:54 +0200
commit36cec27cd93378347255f31de92da711618f0c42 (patch)
treec5f943e2985237bc0c4135cd44ecce2af8fcc53e /pimd
parentMerge pull request #11385 from AbhishekNR/show_cli (diff)
downloadfrr-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.c178
-rw-r--r--pimd/pim_cmd_common.c179
-rw-r--r--pimd/pim_cmd_common.h5
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;
*/