mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-03 20:55:25 +00:00
pimd: add new OIF type in prep for vxlan support
In an anycast VTEP setup the peerlink-rif (ISL) is added as a OIF to the tunnel origination mroute. A new OIF protocol, VxLAN, has been added to allow that functionalty. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
This commit is contained in:
parent
b07d897ec1
commit
ee31c9fd1a
@ -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");
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user