Skip to content

Commit

Permalink
Merge pull request #8647 from sworleys/DVNI-Config-Changes
Browse files Browse the repository at this point in the history
bgpd: EVPN D-VNI L3 RT Config Enhancements
  • Loading branch information
ton31337 authored Oct 18, 2022
2 parents a654221 + a5d7012 commit 272c6d5
Show file tree
Hide file tree
Showing 9 changed files with 807 additions and 284 deletions.
529 changes: 351 additions & 178 deletions bgpd/bgp_evpn.c

Large diffs are not rendered by default.

22 changes: 20 additions & 2 deletions bgpd/bgp_evpn_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,18 @@ struct evpn_remote_ip {
struct list *macip_path_list;
};

/*
* Wrapper struct for l3 RT's
*/
struct vrf_route_target {
/* flags based on config to determine how RTs are handled */
uint8_t flags;
#define BGP_VRF_RT_AUTO (1 << 0)
#define BGP_VRF_RT_WILD (1 << 1)

struct ecommunity *ecom;
};

static inline int is_vrf_rd_configured(struct bgp *bgp_vrf)
{
return (CHECK_FLAG(bgp_vrf->vrf_flags, BGP_VRF_RD_CFGD));
Expand Down Expand Up @@ -590,15 +602,21 @@ extern struct zclient *zclient;
extern void bgp_evpn_install_uninstall_default_route(struct bgp *bgp_vrf,
afi_t afi, safi_t safi,
bool add);
extern void evpn_rt_delete_auto(struct bgp *, vni_t, struct list *);
extern void evpn_rt_delete_auto(struct bgp *bgp, vni_t vni, struct list *rtl,
bool is_l3);
extern void bgp_evpn_configure_export_rt_for_vrf(struct bgp *bgp_vrf,
struct ecommunity *ecomadd);
extern void bgp_evpn_configure_export_auto_rt_for_vrf(struct bgp *bgp_vrf);
extern void bgp_evpn_unconfigure_export_rt_for_vrf(struct bgp *bgp_vrf,
struct ecommunity *ecomdel);
extern void bgp_evpn_unconfigure_export_auto_rt_for_vrf(struct bgp *bgp_vrf);
extern void bgp_evpn_configure_import_rt_for_vrf(struct bgp *bgp_vrf,
struct ecommunity *ecomadd);
struct ecommunity *ecomadd,
bool is_wildcard);
extern void bgp_evpn_configure_import_auto_rt_for_vrf(struct bgp *bgp_vrf);
extern void bgp_evpn_unconfigure_import_rt_for_vrf(struct bgp *bgp_vrf,
struct ecommunity *ecomdel);
extern void bgp_evpn_unconfigure_import_auto_rt_for_vrf(struct bgp *bgp_vrf);
extern int bgp_evpn_handle_export_rt_change(struct bgp *bgp,
struct bgpevpn *vpn);
extern void bgp_evpn_handle_autort_change(struct bgp *bgp);
Expand Down
Loading

0 comments on commit 272c6d5

Please sign in to comment.