mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 15:33:56 +00:00
bgpd: evpn enabled should only be checked for default instance
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
This commit is contained in:
parent
80b140af22
commit
94c2f693a4
@ -22,9 +22,18 @@
|
|||||||
#define _QUAGGA_BGP_EVPN_H
|
#define _QUAGGA_BGP_EVPN_H
|
||||||
|
|
||||||
#include "vxlan.h"
|
#include "vxlan.h"
|
||||||
|
#include "bgpd.h"
|
||||||
|
|
||||||
#define EVPN_ROUTE_STRLEN 200 /* Must be >> MAC + IPv6 strings. */
|
#define EVPN_ROUTE_STRLEN 200 /* Must be >> MAC + IPv6 strings. */
|
||||||
|
|
||||||
|
static inline int is_evpn_enabled(void)
|
||||||
|
{
|
||||||
|
struct bgp *bgp = NULL;
|
||||||
|
|
||||||
|
bgp = bgp_get_default();
|
||||||
|
return bgp ? bgp->advertise_all_vni : 0;
|
||||||
|
}
|
||||||
|
|
||||||
extern void bgp_evpn_withdraw_type5_routes(struct bgp *bgp_vrf, afi_t afi);
|
extern void bgp_evpn_withdraw_type5_routes(struct bgp *bgp_vrf, afi_t afi);
|
||||||
extern void bgp_evpn_advertise_type5_routes(struct bgp *bgp_vrf, afi_t afi);
|
extern void bgp_evpn_advertise_type5_routes(struct bgp *bgp_vrf, afi_t afi);
|
||||||
extern void bgp_evpn_vrf_delete(struct bgp *);
|
extern void bgp_evpn_vrf_delete(struct bgp *);
|
||||||
|
@ -2578,7 +2578,7 @@ DEFUN(show_bgp_l2vpn_evpn_vni,
|
|||||||
? "Enabled"
|
? "Enabled"
|
||||||
: "Disabled");
|
: "Disabled");
|
||||||
json_object_string_add(json, "advertiseAllVnis",
|
json_object_string_add(json, "advertiseAllVnis",
|
||||||
bgp->advertise_all_vni
|
is_evpn_enabled()
|
||||||
? "Enabled"
|
? "Enabled"
|
||||||
: "Disabled");
|
: "Disabled");
|
||||||
} else {
|
} else {
|
||||||
@ -2588,8 +2588,7 @@ DEFUN(show_bgp_l2vpn_evpn_vni,
|
|||||||
|
|
||||||
/* Display all VNIs */
|
/* Display all VNIs */
|
||||||
vty_out(vty, "Advertise All VNI flag: %s\n",
|
vty_out(vty, "Advertise All VNI flag: %s\n",
|
||||||
bgp->advertise_all_vni ? "Enabled"
|
is_evpn_enabled() ? "Enabled" : "Disabled");
|
||||||
: "Disabled");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
evpn_show_all_vnis(vty, bgp, json);
|
evpn_show_all_vnis(vty, bgp, json);
|
||||||
|
@ -58,6 +58,7 @@
|
|||||||
#include "bgpd/bgp_updgrp.h"
|
#include "bgpd/bgp_updgrp.h"
|
||||||
#include "bgpd/bgp_bfd.h"
|
#include "bgpd/bgp_bfd.h"
|
||||||
#include "bgpd/bgp_io.h"
|
#include "bgpd/bgp_io.h"
|
||||||
|
#include "bgpd/bgp_evpn.h"
|
||||||
|
|
||||||
static struct peer_group *listen_range_exists(struct bgp *bgp,
|
static struct peer_group *listen_range_exists(struct bgp *bgp,
|
||||||
struct prefix *range, int exact);
|
struct prefix *range, int exact);
|
||||||
@ -7743,7 +7744,7 @@ static void bgp_show_peer_afi(struct vty *vty, struct peer *p, afi_t afi,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (afi == AFI_L2VPN && safi == SAFI_EVPN) {
|
if (afi == AFI_L2VPN && safi == SAFI_EVPN) {
|
||||||
if (p->bgp->advertise_all_vni)
|
if (is_evpn_enabled())
|
||||||
json_object_boolean_true_add(
|
json_object_boolean_true_add(
|
||||||
json_addr, "advertiseAllVnis");
|
json_addr, "advertiseAllVnis");
|
||||||
}
|
}
|
||||||
@ -8015,7 +8016,7 @@ static void bgp_show_peer_afi(struct vty *vty, struct peer *p, afi_t afi,
|
|||||||
|
|
||||||
/* advertise-vni-all */
|
/* advertise-vni-all */
|
||||||
if (afi == AFI_L2VPN && safi == SAFI_EVPN) {
|
if (afi == AFI_L2VPN && safi == SAFI_EVPN) {
|
||||||
if (p->bgp->advertise_all_vni)
|
if (is_evpn_enabled())
|
||||||
vty_out(vty, " advertise-all-vni\n");
|
vty_out(vty, " advertise-all-vni\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1573,7 +1573,7 @@ void bgp_zebra_instance_register(struct bgp *bgp)
|
|||||||
/* For default instance, register to learn about VNIs, if appropriate.
|
/* For default instance, register to learn about VNIs, if appropriate.
|
||||||
*/
|
*/
|
||||||
if (bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT
|
if (bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT
|
||||||
&& bgp->advertise_all_vni)
|
&& is_evpn_enabled())
|
||||||
bgp_zebra_advertise_all_vni(bgp, 1);
|
bgp_zebra_advertise_all_vni(bgp, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1592,7 +1592,7 @@ void bgp_zebra_instance_deregister(struct bgp *bgp)
|
|||||||
/* For default instance, unregister learning about VNIs, if appropriate.
|
/* For default instance, unregister learning about VNIs, if appropriate.
|
||||||
*/
|
*/
|
||||||
if (bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT
|
if (bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT
|
||||||
&& bgp->advertise_all_vni)
|
&& is_evpn_enabled())
|
||||||
bgp_zebra_advertise_all_vni(bgp, 0);
|
bgp_zebra_advertise_all_vni(bgp, 0);
|
||||||
|
|
||||||
/* Deregister for router-id, interfaces, redistributed routes. */
|
/* Deregister for router-id, interfaces, redistributed routes. */
|
||||||
|
@ -217,7 +217,7 @@ static int bgp_router_id_set(struct bgp *bgp, const struct in_addr *id)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* EVPN uses router id in RD, withdraw them */
|
/* EVPN uses router id in RD, withdraw them */
|
||||||
if (bgp->advertise_all_vni)
|
if (is_evpn_enabled())
|
||||||
bgp_evpn_handle_router_id_update(bgp, TRUE);
|
bgp_evpn_handle_router_id_update(bgp, TRUE);
|
||||||
|
|
||||||
IPV4_ADDR_COPY(&bgp->router_id, id);
|
IPV4_ADDR_COPY(&bgp->router_id, id);
|
||||||
@ -234,7 +234,7 @@ static int bgp_router_id_set(struct bgp *bgp, const struct in_addr *id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* EVPN uses router id in RD, update them */
|
/* EVPN uses router id in RD, update them */
|
||||||
if (bgp->advertise_all_vni)
|
if (is_evpn_enabled())
|
||||||
bgp_evpn_handle_router_id_update(bgp, FALSE);
|
bgp_evpn_handle_router_id_update(bgp, FALSE);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user