]> git.proxmox.com Git - mirror_frr.git/blobdiff - bgpd/bgp_evpn.h
Merge pull request #5703 from ton31337/feature/limit_outgoing_prefixes
[mirror_frr.git] / bgpd / bgp_evpn.h
index 22fb0939c9d4102b6817d75785cf9d48786a6480..b030f0a33ec811d0b053d5756249272f72afdcca 100644 (file)
 #define EVPN_ROUTE_STRLEN 200 /* Must be >> MAC + IPv6 strings. */
 #define EVPN_AUTORT_VXLAN 0x10000000
 
+#define EVPN_ENABLED(bgp)  (bgp)->advertise_all_vni
 static inline int is_evpn_enabled(void)
 {
        struct bgp *bgp = NULL;
 
-       bgp = bgp_get_default();
-       return bgp ? bgp->advertise_all_vni : 0;
+       bgp = bgp_get_evpn();
+       return bgp ? EVPN_ENABLED(bgp) : 0;
 }
 
 static inline void vni2label(vni_t vni, mpls_label_t *label)
@@ -173,13 +174,15 @@ extern int bgp_evpn_local_macip_add(struct bgp *bgp, vni_t vni,
                                    uint8_t flags, uint32_t seq);
 extern int bgp_evpn_local_l3vni_add(vni_t vni, vrf_id_t vrf_id,
                                    struct ethaddr *rmac,
+                                   struct ethaddr *vrr_rmac,
                                    struct in_addr originator_ip, int filter,
-                                   ifindex_t svi_ifindex);
+                                   ifindex_t svi_ifindex, bool is_anycast_mac);
 extern int bgp_evpn_local_l3vni_del(vni_t vni, vrf_id_t vrf_id);
 extern int bgp_evpn_local_vni_del(struct bgp *bgp, vni_t vni);
 extern int bgp_evpn_local_vni_add(struct bgp *bgp, vni_t vni,
                                  struct in_addr originator_ip,
-                                 vrf_id_t tenant_vrf_id);
+                                 vrf_id_t tenant_vrf_id,
+                                 struct in_addr mcast_grp);
 extern int bgp_evpn_local_es_add(struct bgp *bgp, esi_t *esi,
                                 struct ipaddr *originator_ip);
 extern int bgp_evpn_local_es_del(struct bgp *bgp, esi_t *esi,
@@ -188,5 +191,8 @@ extern void bgp_evpn_flood_control_change(struct bgp *bgp);
 extern void bgp_evpn_cleanup_on_disable(struct bgp *bgp);
 extern void bgp_evpn_cleanup(struct bgp *bgp);
 extern void bgp_evpn_init(struct bgp *bgp);
+extern int bgp_evpn_get_type5_prefixlen(struct prefix *pfx);
+extern bool bgp_evpn_is_prefix_nht_supported(struct prefix *pfx);
+extern void update_advertise_vrf_routes(struct bgp *bgp_vrf);
 
 #endif /* _QUAGGA_BGP_EVPN_H */