diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 2d5acb87a9..5f944e10c8 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -1956,7 +1956,7 @@ static void pim_show_state(struct pim_instance *pim, struct vty *vty, json = json_object_new_object(); } else { vty_out(vty, - "Codes: J -> Pim Join, I -> IGMP Report, S -> Source, * -> Inherited from (*,G)"); + "Codes: J -> Pim Join, I -> IGMP Report, S -> Source, * -> Inherited from (*,G), V -> VxLAN"); vty_out(vty, "\nInstalled Source Group IIF OIL\n"); } @@ -2085,7 +2085,7 @@ static void pim_show_state(struct pim_instance *pim, struct vty *vty, } else { if (first_oif) { first_oif = 0; - vty_out(vty, "%s(%c%c%c%c)", out_ifname, + vty_out(vty, "%s(%c%c%c%c%c)", out_ifname, (c_oil->oif_flags[oif_vif_index] & PIM_OIF_FLAG_PROTO_IGMP) ? 'I' @@ -2094,6 +2094,10 @@ static void pim_show_state(struct pim_instance *pim, struct vty *vty, & PIM_OIF_FLAG_PROTO_PIM) ? 'J' : ' ', + (c_oil->oif_flags[oif_vif_index] + & PIM_OIF_FLAG_PROTO_VXLAN) + ? 'V' + : ' ', (c_oil->oif_flags[oif_vif_index] & PIM_OIF_FLAG_PROTO_SOURCE) ? 'S' @@ -2103,7 +2107,7 @@ static void pim_show_state(struct pim_instance *pim, struct vty *vty, ? '*' : ' '); } else - vty_out(vty, ", %s(%c%c%c%c)", + vty_out(vty, ", %s(%c%c%c%c%c)", out_ifname, (c_oil->oif_flags[oif_vif_index] & PIM_OIF_FLAG_PROTO_IGMP) @@ -2113,6 +2117,10 @@ static void pim_show_state(struct pim_instance *pim, struct vty *vty, & PIM_OIF_FLAG_PROTO_PIM) ? 'J' : ' ', + (c_oil->oif_flags[oif_vif_index] + & PIM_OIF_FLAG_PROTO_VXLAN) + ? 'V' + : ' ', (c_oil->oif_flags[oif_vif_index] & PIM_OIF_FLAG_PROTO_SOURCE) ? 'S' @@ -4616,6 +4624,11 @@ static void show_mroute(struct pim_instance *pim, struct vty *vty, bool fill, json_object_boolean_true_add( json_ifp_out, "protocolIgmp"); + if (c_oil->oif_flags[oif_vif_index] + & PIM_OIF_FLAG_PROTO_VXLAN) + json_object_boolean_true_add( + json_ifp_out, "protocolVxlan"); + if (c_oil->oif_flags[oif_vif_index] & PIM_OIF_FLAG_PROTO_SOURCE) json_object_boolean_true_add( @@ -4658,6 +4671,11 @@ static void show_mroute(struct pim_instance *pim, struct vty *vty, bool fill, strcpy(proto, "IGMP"); } + if (c_oil->oif_flags[oif_vif_index] + & PIM_OIF_FLAG_PROTO_VXLAN) { + strcpy(proto, "VxLAN"); + } + if (c_oil->oif_flags[oif_vif_index] & PIM_OIF_FLAG_PROTO_SOURCE) { strcpy(proto, "SRC"); diff --git a/pimd/pim_oil.h b/pimd/pim_oil.h index 8b95324142..55c801033b 100644 --- a/pimd/pim_oil.h +++ b/pimd/pim_oil.h @@ -34,9 +34,11 @@ #define PIM_OIF_FLAG_PROTO_PIM (1 << 1) #define PIM_OIF_FLAG_PROTO_SOURCE (1 << 2) #define PIM_OIF_FLAG_PROTO_STAR (1 << 3) +#define PIM_OIF_FLAG_PROTO_VXLAN (1 << 4) #define PIM_OIF_FLAG_PROTO_ANY \ (PIM_OIF_FLAG_PROTO_IGMP | PIM_OIF_FLAG_PROTO_PIM \ - | PIM_OIF_FLAG_PROTO_SOURCE | PIM_OIF_FLAG_PROTO_STAR) + | PIM_OIF_FLAG_PROTO_SOURCE | PIM_OIF_FLAG_PROTO_STAR\ + | PIM_OIF_FLAG_PROTO_VXLAN) /* * We need a pimreg vif id from the kernel.