mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 13:27:53 +00:00
bgpd: Turn off default-originate timer
If the neighbor is not configured with `neighbor X default-originate route-map ...`, then this timer is useless. Change the logic to be it disabled by default, but enabled automatically once the route-map is configured for default-originate command. Automatically assigned timer value is as before, 5 seconds. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
parent
d12306d3e0
commit
5b24d3b223
@ -8425,8 +8425,7 @@ DEFPY (bgp_def_originate_eval,
|
||||
{
|
||||
VTY_DECLVAR_CONTEXT(bgp, bgp);
|
||||
|
||||
bgp->rmap_def_originate_eval_timer =
|
||||
no ? RMAP_DEFAULT_ORIGINATE_EVAL_TIMER : timer;
|
||||
bgp->rmap_def_originate_eval_timer = no ? 0 : timer;
|
||||
|
||||
if (bgp->t_rmap_def_originate_eval)
|
||||
EVENT_OFF(bgp->t_rmap_def_originate_eval);
|
||||
@ -19778,8 +19777,9 @@ int bgp_config_write(struct vty *vty)
|
||||
bgp->condition_check_period);
|
||||
|
||||
/* default-originate timer configuration */
|
||||
if (bgp->rmap_def_originate_eval_timer !=
|
||||
RMAP_DEFAULT_ORIGINATE_EVAL_TIMER)
|
||||
if (bgp->rmap_def_originate_eval_timer &&
|
||||
bgp->rmap_def_originate_eval_timer !=
|
||||
RMAP_DEFAULT_ORIGINATE_EVAL_TIMER)
|
||||
vty_out(vty, " bgp default-originate timer %u\n",
|
||||
bgp->rmap_def_originate_eval_timer);
|
||||
|
||||
|
10
bgpd/bgpd.c
10
bgpd/bgpd.c
@ -3520,7 +3520,7 @@ static struct bgp *bgp_create(as_t *as, const char *name,
|
||||
bgp_addpath_init_bgp_data(&bgp->tx_addpath);
|
||||
bgp->fast_convergence = false;
|
||||
bgp->llgr_stale_time = BGP_DEFAULT_LLGR_STALE_TIME;
|
||||
bgp->rmap_def_originate_eval_timer = RMAP_DEFAULT_ORIGINATE_EVAL_TIMER;
|
||||
bgp->rmap_def_originate_eval_timer = 0;
|
||||
|
||||
#ifdef ENABLE_BGP_VNC
|
||||
if (inst_type != BGP_INSTANCE_TYPE_VRF) {
|
||||
@ -5783,6 +5783,10 @@ int peer_default_originate_set(struct peer *peer, afi_t afi, safi_t safi,
|
||||
subgrp = peer_subgroup(peer, afi, safi);
|
||||
|
||||
if (rmap) {
|
||||
if (!peer->bgp->rmap_def_originate_eval_timer)
|
||||
peer->bgp->rmap_def_originate_eval_timer =
|
||||
RMAP_DEFAULT_ORIGINATE_EVAL_TIMER;
|
||||
|
||||
if (!peer->default_rmap[afi][safi].name
|
||||
|| strcmp(rmap, peer->default_rmap[afi][safi].name) != 0) {
|
||||
struct route_map *map = NULL;
|
||||
@ -5865,6 +5869,10 @@ int peer_default_originate_set(struct peer *peer, afi_t afi, safi_t safi,
|
||||
if (rmap) {
|
||||
struct route_map *map = NULL;
|
||||
|
||||
if (!member->bgp->rmap_def_originate_eval_timer)
|
||||
member->bgp->rmap_def_originate_eval_timer =
|
||||
RMAP_DEFAULT_ORIGINATE_EVAL_TIMER;
|
||||
|
||||
if (member->default_rmap[afi][safi].name) {
|
||||
map = route_map_lookup_by_name(
|
||||
member->default_rmap[afi][safi].name);
|
||||
|
Loading…
Reference in New Issue
Block a user