From: Donald Sharp Date: Tue, 8 Nov 2016 13:00:02 +0000 (-0500) Subject: pimd: Add ability to know if ifchannel is (S,G,rpt) X-Git-Tag: frr-3.0-branchpoint~64^2~10^2~117 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=637a61fa2b556f38f861e2d3fd2ba4110ddaef99;p=mirror%2Ffrr.git pimd: Add ability to know if ifchannel is (S,G,rpt) Add ability to track (S,G,rpt) ifchannel prunes. Add ability to display this data in json. Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 8120d32132..fe8a113b4f 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -1142,6 +1142,8 @@ static void pim_show_join(struct vty *vty, u_char uj) json_object_string_add(json_row, "expire", expire); json_object_string_add(json_row, "prune", prune); json_object_string_add(json_row, "channelJoinName", pim_ifchannel_ifjoin_name(ch->ifjoin_state)); + if (PIM_IF_FLAG_TEST_S_G_RPT(ch->flags)) + json_object_int_add(json_row, "SGRpt", 1); json_object_object_add(json_iface, ch_src_str, json_row); } else { diff --git a/pimd/pim_ifchannel.h b/pimd/pim_ifchannel.h index 7791e6d950..908d27fd68 100644 --- a/pimd/pim_ifchannel.h +++ b/pimd/pim_ifchannel.h @@ -71,6 +71,14 @@ struct pim_assert_metric { #define PIM_IF_FLAG_SET_ASSERT_TRACKING_DESIRED(flags) ((flags) |= PIM_IF_FLAG_MASK_ASSERT_TRACKING_DESIRED) #define PIM_IF_FLAG_UNSET_ASSERT_TRACKING_DESIRED(flags) ((flags) &= ~PIM_IF_FLAG_MASK_ASSERT_TRACKING_DESIRED) +/* + * Flat to tell us if the ifchannel is (S,G,rpt) + */ +#define PIM_IF_FLAG_MASK_S_G_RPT (1 << 2) +#define PIM_IF_FLAG_TEST_S_G_RPT(flags) ((flags) & PIM_IF_FLAG_MASK_S_G_RPT) +#define PIM_IF_FLAG_SET_S_G_RPT(flags) ((flags) |= PIM_IF_FLAG_MASK_S_G_RPT) +#define PIM_IF_FLAG_UNSET_S_G_RPT(flags) ((flags) &= ~PIM_IF_FLAG_MASK_S_G_RPT) + /* Per-interface (S,G) state */