]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: Set NEXT_HOP attribute for EVPN imported routes
authorvivek <vivek@cumulusnetworks.com>
Mon, 7 May 2018 19:04:26 +0000 (12:04 -0700)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 11 May 2018 12:02:42 +0000 (08:02 -0400)
Ensure that when EVPN routes are imported into a VRF as IPv4 routes,
the NEXT_HOP attribute is set. In the absence of this, this attribute
is currently not generated when advertising the route to peers in the
VRF. It is to be noted that the source route (the EVPN route) will only
have the MP_REACH_NLRI attribute that contains the next hop in it.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
Reviewed-by: Don Slice <dslice@cumulusnetworks.com>
bgpd/bgp_evpn.c

index 02dd64f1a38e67923ab004e603275291120ac4e2..a0cd9edb0ee01e91cc37d247aee947398870bdce 100644 (file)
@@ -1819,12 +1819,15 @@ static int install_evpn_route_entry_in_vrf(struct bgp *bgp_vrf,
 
        /* EVPN routes currently only support a IPv4 next hop which corresponds
         * to the remote VTEP. When importing into a VRF, if it is IPv6 host
-        * route, we have to convert the next hop to an IPv4-mapped address
-        * for the rest of the code to flow through.
+        * or prefix route, we have to convert the next hop to an IPv4-mapped
+        * address for the rest of the code to flow through. In the case of IPv4,
+        * make sure to set the flag for next hop attribute.
         */
        bgp_attr_dup(&attr, parent_ri->attr);
        if (afi == AFI_IP6)
                evpn_convert_nexthop_to_ipv6(&attr);
+       else
+               attr.flag |= ATTR_FLAG_BIT(BGP_ATTR_NEXT_HOP);
 
        /* Check if route entry is already present. */
        for (ri = rn->info; ri; ri = ri->next)