summaryrefslogtreecommitdiffstats
path: root/zebra
diff options
context:
space:
mode:
authorvivek <vivek@cumulusnetworks.com>2019-02-27 13:25:53 +0100
committervivek <vivek@cumulusnetworks.com>2019-02-27 13:25:53 +0100
commite1e71450a046b9661d1e7e58d5e3c9f43fefa5ff (patch)
treef2d5bc4ffc03dc88f0b3a0bb6e344fa2cfa8bfa5 /zebra
parentzebra, bgpd: Exchange L3 interface for VRF's VNI (diff)
downloadfrr-e1e71450a046b9661d1e7e58d5e3c9f43fefa5ff.tar.xz
frr-e1e71450a046b9661d1e7e58d5e3c9f43fefa5ff.zip
zebra, bgpd: Use L3 interface for VRF's VNI in route install
In the case of EVPN symmetric routing, the tenant VRF is associated with a VNI that is used for routing and commonly referred to as the L3 VNI or VRF VNI. Corresponding to this VNI is a VLAN and its associated L3 (IP) interface (SVI). Overlay next hops (i.e., next hops for routes in the tenant VRF) are reachable over this interface. https://tools.ietf.org/html/draft-ietf-bess-evpn-prefix-advertisement section 4.4 provides additional description of the above constructs. Use the L3 interface exchanged between zebra and bgp in route install. This patch in conjunction with the earlier one helps to eliminate some special code in zebra to derive the next hop's interface. Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com> Reviewed-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com> Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'zebra')
-rw-r--r--zebra/zapi_msg.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index 9b91289de..8b3382dba 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -1432,12 +1432,7 @@ static void zread_route_add(ZAPI_HANDLER_ARGS)
case NEXTHOP_TYPE_IPV4_IFINDEX:
memset(&vtep_ip, 0, sizeof(struct ipaddr));
- if (CHECK_FLAG(api.flags, ZEBRA_FLAG_EVPN_ROUTE)) {
- ifindex = get_l3vni_svi_ifindex(vrf_id);
- } else {
- ifindex = api_nh->ifindex;
- }
-
+ ifindex = api_nh->ifindex;
if (IS_ZEBRA_DEBUG_RECV) {
char nhbuf[INET6_ADDRSTRLEN] = {0};
@@ -1473,12 +1468,7 @@ static void zread_route_add(ZAPI_HANDLER_ARGS)
break;
case NEXTHOP_TYPE_IPV6_IFINDEX:
memset(&vtep_ip, 0, sizeof(struct ipaddr));
- if (CHECK_FLAG(api.flags, ZEBRA_FLAG_EVPN_ROUTE)) {
- ifindex = get_l3vni_svi_ifindex(vrf_id);
- } else {
- ifindex = api_nh->ifindex;
- }
-
+ ifindex = api_nh->ifindex;
nexthop = route_entry_nexthop_ipv6_ifindex_add(
re, &api_nh->gate.ipv6, ifindex,
api_nh->vrf_id);