mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-03 04:01:59 +00:00
Merge pull request #5216 from ton31337/fix/override_peers_ttl_if_peer_group_configured
bgpd: Override peer's TTL only if peer-group is configured with TTL
This commit is contained in:
commit
2d50e11896
15
bgpd/bgpd.c
15
bgpd/bgpd.c
@ -1593,7 +1593,7 @@ struct peer *peer_create(union sockunion *su, const char *conf_if,
|
||||
peer->readtime = peer->resettime = bgp_clock();
|
||||
|
||||
/* Default TTL set. */
|
||||
peer->ttl = (peer->sort == BGP_PEER_IBGP) ? MAXTTL : 1;
|
||||
peer->ttl = (peer->sort == BGP_PEER_IBGP) ? MAXTTL : BGP_DEFAULT_TTL;
|
||||
|
||||
SET_FLAG(peer->flags, PEER_FLAG_CONFIG_NODE);
|
||||
|
||||
@ -1680,7 +1680,7 @@ void peer_as_change(struct peer *peer, as_t as, int as_specified)
|
||||
if (peer_sort(peer) == BGP_PEER_IBGP)
|
||||
peer->ttl = MAXTTL;
|
||||
else if (type == BGP_PEER_IBGP)
|
||||
peer->ttl = 1;
|
||||
peer->ttl = BGP_DEFAULT_TTL;
|
||||
|
||||
/* reflector-client reset */
|
||||
if (peer_sort(peer) != BGP_PEER_IBGP) {
|
||||
@ -2444,7 +2444,7 @@ struct peer_group *peer_group_get(struct bgp *bgp, const char *name)
|
||||
group->conf->host = XSTRDUP(MTYPE_BGP_PEER_HOST, name);
|
||||
group->conf->group = group;
|
||||
group->conf->as = 0;
|
||||
group->conf->ttl = 1;
|
||||
group->conf->ttl = BGP_DEFAULT_TTL;
|
||||
group->conf->gtsm_hops = 0;
|
||||
group->conf->v_routeadv = BGP_DEFAULT_EBGP_ROUTEADV;
|
||||
SET_FLAG(group->conf->sflags, PEER_STATUS_GROUP);
|
||||
@ -2469,8 +2469,9 @@ static void peer_group2peer_config_copy(struct peer_group *group,
|
||||
if (!CHECK_FLAG(peer->flags_override, PEER_FLAG_LOCAL_AS))
|
||||
peer->change_local_as = conf->change_local_as;
|
||||
|
||||
/* TTL */
|
||||
peer->ttl = conf->ttl;
|
||||
/* If peer-group has configured TTL then override it */
|
||||
if (conf->ttl != BGP_DEFAULT_TTL)
|
||||
peer->ttl = conf->ttl;
|
||||
|
||||
/* GTSM hops */
|
||||
peer->gtsm_hops = conf->gtsm_hops;
|
||||
@ -4379,7 +4380,7 @@ int peer_ebgp_multihop_unset(struct peer *peer)
|
||||
if (peer_group_active(peer))
|
||||
peer->ttl = peer->group->conf->ttl;
|
||||
else
|
||||
peer->ttl = 1;
|
||||
peer->ttl = BGP_DEFAULT_TTL;
|
||||
|
||||
if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
|
||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->status))
|
||||
@ -4393,7 +4394,7 @@ int peer_ebgp_multihop_unset(struct peer *peer)
|
||||
if (peer->sort == BGP_PEER_IBGP)
|
||||
continue;
|
||||
|
||||
peer->ttl = 1;
|
||||
peer->ttl = BGP_DEFAULT_TTL;
|
||||
|
||||
if (peer->fd >= 0) {
|
||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->status))
|
||||
|
@ -635,6 +635,8 @@ struct bgp_nexthop {
|
||||
#define RMAP_OUT 1
|
||||
#define RMAP_MAX 2
|
||||
|
||||
#define BGP_DEFAULT_TTL 1
|
||||
|
||||
#include "filter.h"
|
||||
|
||||
/* BGP filter structure. */
|
||||
|
Loading…
Reference in New Issue
Block a user