struct static_route *s_route;
time_t now;
- vty_out(vty, "Proto: I=IGMP P=PIM S=STATIC%s%s", VTY_NEWLINE, VTY_NEWLINE);
+ vty_out(vty, "Proto: I=IGMP P=PIM S=STATIC O=SOURCE%s%s", VTY_NEWLINE, VTY_NEWLINE);
vty_out(vty, "Source Group Proto Input iVifI Output oVifI TTL Uptime %s",
VTY_NEWLINE);
if (c_oil->oif_flags[oif_vif_index] & PIM_OIF_FLAG_PROTO_IGMP) {
strcat(proto, "I");
}
+ if (c_oil->oif_flags[oif_vif_index] & PIM_OIF_FLAG_PROTO_SOURCE) {
+ strcat(proto, "O");
+ }
vty_out(vty, "%-15s %-15s %-5s %-5s %5d %-6s %5d %3d %8s %s",
source_str,
#include "pim_mroute.h"
-#define PIM_OIF_FLAG_PROTO_IGMP (1 << 0) /* bitmask 1 */
-#define PIM_OIF_FLAG_PROTO_PIM (1 << 1) /* bitmask 2 */
-#define PIM_OIF_FLAG_PROTO_ANY (3) /* bitmask (1 | 2) */
+/*
+ * Where did we get this (S,G) from?
+ *
+ * IGMP - Learned from IGMP
+ * PIM - Learned from PIM
+ * SOURCE - Learned from Source multicast packet received
+ */
+#define PIM_OIF_FLAG_PROTO_IGMP (1 << 0)
+#define PIM_OIF_FLAG_PROTO_PIM (1 << 1)
+#define PIM_OIF_FLAG_PROTO_SOURCE (2 << 1)
+#define PIM_OIF_FLAG_PROTO_ANY (PIM_OIF_FLAG_PROTO_IGMP | \
+ PIM_OIF_FLAG_PROTO_PIM | \
+ PIM_OIF_FLAG_PROTO_SOURCE)
/*
qpim_channel_oil_list holds a list of struct channel_oil.