]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Add ability to know if ifchannel is (S,G,rpt)
authorDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 8 Nov 2016 13:00:02 +0000 (08:00 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:14 +0000 (20:26 -0500)
Add ability to track (S,G,rpt) ifchannel prunes.
Add ability to display this data in json.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_cmd.c
pimd/pim_ifchannel.h

index 8120d32132e817151bac9b85f88f67cede70b9fb..fe8a113b4f08adcd1ad03adb4bc478be1f3c3253 100644 (file)
@@ -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 {
index 7791e6d950275321e3604e43ea7e595c6738fad8..908d27fd68e8be106ea0c92c1f813a6500825bd9 100644 (file)
@@ -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
 */