diff options
| author | saravanank <saravanank@vmware.com> | 2020-03-31 22:13:13 -0700 |
|---|---|---|
| committer | saravanank <saravanank@vmware.com> | 2020-04-08 21:39:21 -0700 |
| commit | 4d360968887657eba49b3a494356433dabeb8bb0 (patch) | |
| tree | 80895b59c97ccd0252bfce083948a952f9459db4 /pimd/pim_cmd.c | |
| parent | 339f76953034064934df5ff02702138f2d039803 (diff) | |
pimd: show ip igmp groups json output - Make group array for each interface
JSON output for igmp group display is modified as follows for better python handling.
1. Under each interface make array of group as an object
2. Include source and group inside each group object
These improvements are required for the set of topotest cases which will be upstreamed shortly.
Signed-off-by: Saravanan K <saravanank@vmware.com>
Diffstat (limited to 'pimd/pim_cmd.c')
| -rw-r--r-- | pimd/pim_cmd.c | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 2958f720e7..871606414e 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -3415,7 +3415,8 @@ static void igmp_show_groups(struct pim_instance *pim, struct vty *vty, bool uj) time_t now; json_object *json = NULL; json_object *json_iface = NULL; - json_object *json_row = NULL; + json_object *json_group = NULL; + json_object *json_groups = NULL; now = pim_time_monotonic_sec(); @@ -3478,37 +3479,44 @@ static void igmp_show_groups(struct pim_instance *pim, struct vty *vty, bool uj) json_object_object_add( json, ifp->name, json_iface); + json_groups = + json_object_new_array(); + json_object_object_add( + json_iface, + "groups", + json_groups); } - json_row = json_object_new_object(); - json_object_string_add( - json_row, "source", ifaddr_str); - json_object_string_add( - json_row, "group", group_str); + json_group = json_object_new_object(); + json_object_string_add(json_group, + "source", + ifaddr_str); + json_object_string_add(json_group, + "group", + group_str); if (grp->igmp_version == 3) json_object_string_add( - json_row, "mode", + json_group, "mode", grp->group_filtermode_isexcl ? "EXCLUDE" : "INCLUDE"); - json_object_string_add(json_row, + json_object_string_add(json_group, "timer", hhmmss); json_object_int_add( - json_row, "sourcesCount", + json_group, "sourcesCount", grp->group_source_list ? listcount( grp->group_source_list) : 0); - json_object_int_add(json_row, "version", - grp->igmp_version); + json_object_int_add( + json_group, "version", + grp->igmp_version); json_object_string_add( - json_row, "uptime", uptime); - json_object_object_add(json_iface, - group_str, - json_row); - + json_group, "uptime", uptime); + json_object_array_add(json_groups, + json_group); } else { vty_out(vty, "%-16s %-15s %-15s %4s %8s %4d %d %8s\n", |
