diff options
| author | Donald Sharp <donaldsharp72@gmail.com> | 2022-08-04 16:40:14 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-04 16:40:14 -0400 |
| commit | 01b7de725638b83ea8ce8c4acafb6530eccc8599 (patch) | |
| tree | 4f680fdebe428f9b220cd37184f38cb6df09baf2 /pimd/pim_cmd_common.c | |
| parent | 8bb6d4a00cec9f1c808d3ba84a4629375428b82a (diff) | |
| parent | 7d1b675857c05c92eb3c24a1714641053065b083 (diff) | |
Merge pull request #11730 from SaiGomathiN/ttable
pimd, pim6d: Using ttable for displaying purpose
Diffstat (limited to 'pimd/pim_cmd_common.c')
| -rw-r--r-- | pimd/pim_cmd_common.c | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/pimd/pim_cmd_common.c b/pimd/pim_cmd_common.c index b7bd7375c5..452b49a8a0 100644 --- a/pimd/pim_cmd_common.c +++ b/pimd/pim_cmd_common.c @@ -32,6 +32,7 @@ #include "ferr.h" #include "lib/srcdest_table.h" #include "lib/linklist.h" +#include "termtable.h" #include "pimd.h" #include "pim_instance.h" @@ -2124,6 +2125,8 @@ void pim_show_interfaces(struct pim_instance *pim, struct vty *vty, bool mlag, int pim_nbrs = 0; int pim_ifchannels = 0; bool uj = true; + struct ttable *tt = NULL; + char *table = NULL; json_object *json_row = NULL; json_object *json_tmp; @@ -2167,43 +2170,60 @@ void pim_show_interfaces(struct pim_instance *pim, struct vty *vty, bool mlag, } if (!uj) { - vty_out(vty, - "Interface State Address PIM Nbrs PIM DR FHR IfChannels\n"); + + /* Prepare table. */ + tt = ttable_new(&ttable_styles[TTSTYLE_BLANK]); + ttable_add_row( + tt, + "Interface|State|Address|PIM Nbrs|PIM DR|FHR|IfChannels"); + tt->style.cell.rpad = 2; + tt->style.corner = '+'; + ttable_restyle(tt); json_object_object_foreach(json, key, val) { - vty_out(vty, "%-16s ", key); + const char *state, *address, *pimdr; + int neighbors, firsthpr, pimifchnl; json_object_object_get_ex(val, "state", &json_tmp); - vty_out(vty, "%5s ", json_object_get_string(json_tmp)); + state = json_object_get_string(json_tmp); json_object_object_get_ex(val, "address", &json_tmp); - vty_out(vty, "%15s ", - json_object_get_string(json_tmp)); + address = json_object_get_string(json_tmp); json_object_object_get_ex(val, "pimNeighbors", &json_tmp); - vty_out(vty, "%8d ", json_object_get_int(json_tmp)); + neighbors = json_object_get_int(json_tmp); if (json_object_object_get_ex( val, "pimDesignatedRouterLocal", &json_tmp)) { - vty_out(vty, "%15s ", "local"); + pimdr = "local"; } else { json_object_object_get_ex( val, "pimDesignatedRouter", &json_tmp); - vty_out(vty, "%15s ", - json_object_get_string(json_tmp)); + pimdr = json_object_get_string(json_tmp); } json_object_object_get_ex(val, "firstHopRouter", &json_tmp); - vty_out(vty, "%3d ", json_object_get_int(json_tmp)); + firsthpr = json_object_get_int(json_tmp); json_object_object_get_ex(val, "pimIfChannels", &json_tmp); - vty_out(vty, "%9d\n", json_object_get_int(json_tmp)); + pimifchnl = json_object_get_int(json_tmp); + + ttable_add_row(tt, "%s|%s|%s|%d|%s|%d|%d", key, state, + address, neighbors, pimdr, firsthpr, + pimifchnl); } + + /* Dump the generated table. */ + table = ttable_dump(tt, "\n"); + vty_out(vty, "%s\n", table); + XFREE(MTYPE_TMP, table); + + ttable_del(tt); } } |
