bgpd: resolve ipv6 ecmp issue with vrfs and ll nexthop

Problem reported that ecmp wasn't working correctly in a vrf with
ipv6.  Issue was that originator of the routes were sending the updates
with a link-local nexthop and nhlen of 16.  In this particular case,
bgp_zebra_announce was using the wrong call to get the ifindex and
was not supplying the vrf.   This caused ecmp to work only in the case
of the default vrf.

Ticket: CM-15545
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by: CCR-6017
This commit is contained in:
Don Slice 2017-04-05 07:13:45 -07:00
parent 2e37f307ee
commit fa14eb2c0b

View File

@ -1469,7 +1469,8 @@ bgp_zebra_announce (struct prefix *p, struct bgp_info *info, struct bgp *bgp,
if (!ifindex)
{
if (info->peer->conf_if || info->peer->ifname)
ifindex = if_nametoindex (info->peer->conf_if ? info->peer->conf_if : info->peer->ifname);
ifindex = ifname2ifindex_vrf (info->peer->conf_if ? info->peer->conf_if :
info->peer->ifname, bgp->vrf_id);
else if (info->peer->nexthop.ifp)
ifindex = info->peer->nexthop.ifp->ifindex;
}