pimd: Use the ifindex to create vif device

It is possible to create multiple interfaces
with the same ip address.  Looking up the
dev to use based upon the ip address will
eventually fail when you keep getting
the same dev device.

Future-Work: I'll need to add a translation
to vif index to actual device to use because
ifindex's are not guaranteed to be under 256.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2016-06-17 09:19:38 -04:00
parent 69ae646b8d
commit 3479bad639

View File

@ -462,10 +462,10 @@ int pim_mroute_add_vif(int vif_index, struct in_addr ifaddr, unsigned char flags
memset(&vc, 0, sizeof(vc));
vc.vifc_vifi = vif_index;
vc.vifc_lcl_ifindex = vif_index;
vc.vifc_flags = flags;
vc.vifc_threshold = PIM_MROUTE_MIN_TTL;
vc.vifc_rate_limit = 0;
memcpy(&vc.vifc_lcl_addr, &ifaddr, sizeof(vc.vifc_lcl_addr));
#ifdef PIM_DVMRP_TUNNEL
if (vc.vifc_flags & VIFF_TUNNEL) {