]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: fix evpn route-map vni filter at origin 7726/head
authorChirag Shah <chirag@nvidia.com>
Thu, 10 Dec 2020 21:59:56 +0000 (13:59 -0800)
committerChirag Shah <chirag@nvidia.com>
Sat, 12 Dec 2020 22:08:16 +0000 (14:08 -0800)
evpn route-map match (filter) on vni is not working
at the origin of the routes.

evpn match vni route checks for encap type as vxlan.
the source route attribute is not set with vxlan encap
thus the match filter wouldn't work.

Ticket:CM-32554
Reviewed By:CCR-11056
Testing Done:

At source have match vni plus set statement in route-map.
Validate the origin of the route's outbound correctly sets
the 'set' statment based on match vni filter.

At origin:
route-map RM-EVPN-TE-Matches permit 10
 match evpn vni 4001
  set large-community 10:10:119

Receiving end:

Route [5]:[0]:[24]:[78.41.1.0] VNI 4001
5550
  27.0.0.15 from TORS1(downlink-5) (27.0.0.15)
    Origin incomplete, metric 0, valid, external, bestpath-from-AS 5550, best (First path received)
    Extended Community: RT:5550:4001 ET:8 Rmac:00:02:00:00:00:4d
    Large Community: 10:10:119    <--- Large community stamped
    Last update: Thu Dec 10 22:19:26 2020

Signed-off-by: Chirag Shah <chirag@nvidia.com>
bgpd/bgp_evpn.c

index 15d647f4df24ef86db9d721997eed0ab8641b745..b85a5c36369c53f35380449be85cb2d2c1d739a5 100644 (file)
@@ -743,6 +743,7 @@ static void build_evpn_type5_route_extcomm(struct bgp *bgp_vrf,
        } else
                ecom = ecommunity_dup(&ecom_encap);
        attr->ecommunity = ecom;
+       attr->encap_tunneltype = tnl_type;
 
        /* Add the export RTs for L3VNI/VRF */
        vrf_export_rtl = bgp_vrf->vrf_export_rtl;
@@ -799,6 +800,7 @@ static void build_evpn_route_extcomm(struct bgpevpn *vpn, struct attr *attr,
 
        /* Add Encap */
        attr->ecommunity = ecommunity_dup(&ecom_encap);
+       attr->encap_tunneltype = tnl_type;
 
        /* Add the export RTs for L2VNI */
        for (ALL_LIST_ELEMENTS(vpn->export_rtl, node, nnode, ecom))