summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2023-08-26 19:44:23 -0400
committerDonald Sharp <sharpd@nvidia.com>2023-09-09 16:28:05 -0400
commite79443fcd8f41b19e5c90732ae284ec82a5e97fe (patch)
treec31c3857bf57d7b5663ee6cf63e930105cf17e8f
parent6b7e50aacc0e5a59d373e09c09dd2bab940b4439 (diff)
bgpd: move t_routeadv to peer_connection
The t_routeadv belongs to the peer_connection data structure Signed-off-by: Donald Sharp <sharpd@nvidia.com>
-rw-r--r--bgpd/bgp_fsm.c44
-rw-r--r--bgpd/bgp_packet.c2
-rw-r--r--bgpd/bgp_updgrp_adv.c5
-rw-r--r--bgpd/bgp_vty.c15
-rw-r--r--bgpd/bgpd.h2
5 files changed, 37 insertions, 31 deletions
diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
index 1978d26cfe..f1de97e179 100644
--- a/bgpd/bgp_fsm.c
+++ b/bgpd/bgp_fsm.c
@@ -159,12 +159,12 @@ static struct peer *peer_xfer_conn(struct peer *from_peer)
*/
bgp_keepalives_off(from_peer);
- EVENT_OFF(peer->t_routeadv);
+ EVENT_OFF(peer->connection->t_routeadv);
EVENT_OFF(peer->connection->t_connect);
EVENT_OFF(peer->connection->t_delayopen);
EVENT_OFF(peer->connection->t_connect_check_r);
EVENT_OFF(peer->connection->t_connect_check_w);
- EVENT_OFF(from_peer->t_routeadv);
+ EVENT_OFF(from_peer->connection->t_routeadv);
EVENT_OFF(from_peer->connection->t_connect);
EVENT_OFF(from_peer->connection->t_delayopen);
EVENT_OFF(from_peer->connection->t_connect_check_r);
@@ -366,7 +366,7 @@ void bgp_timer_set(struct peer *peer)
EVENT_OFF(peer->connection->t_connect);
EVENT_OFF(peer->connection->t_holdtime);
bgp_keepalives_off(peer);
- EVENT_OFF(peer->t_routeadv);
+ EVENT_OFF(peer->connection->t_routeadv);
EVENT_OFF(peer->connection->t_delayopen);
break;
@@ -385,7 +385,7 @@ void bgp_timer_set(struct peer *peer)
EVENT_OFF(peer->connection->t_holdtime);
bgp_keepalives_off(peer);
- EVENT_OFF(peer->t_routeadv);
+ EVENT_OFF(peer->connection->t_routeadv);
break;
case Active:
@@ -408,7 +408,7 @@ void bgp_timer_set(struct peer *peer)
}
EVENT_OFF(peer->connection->t_holdtime);
bgp_keepalives_off(peer);
- EVENT_OFF(peer->t_routeadv);
+ EVENT_OFF(peer->connection->t_routeadv);
break;
case OpenSent:
@@ -422,7 +422,7 @@ void bgp_timer_set(struct peer *peer)
EVENT_OFF(peer->connection->t_holdtime);
}
bgp_keepalives_off(peer);
- EVENT_OFF(peer->t_routeadv);
+ EVENT_OFF(peer->connection->t_routeadv);
EVENT_OFF(peer->connection->t_delayopen);
break;
@@ -445,7 +445,7 @@ void bgp_timer_set(struct peer *peer)
bgp_holdtime_timer, peer->v_holdtime);
bgp_keepalives_on(peer);
}
- EVENT_OFF(peer->t_routeadv);
+ EVENT_OFF(peer->connection->t_routeadv);
EVENT_OFF(peer->connection->t_delayopen);
break;
@@ -486,7 +486,7 @@ void bgp_timer_set(struct peer *peer)
EVENT_OFF(peer->connection->t_connect);
EVENT_OFF(peer->connection->t_holdtime);
bgp_keepalives_off(peer);
- EVENT_OFF(peer->t_routeadv);
+ EVENT_OFF(peer->connection->t_routeadv);
EVENT_OFF(peer->connection->t_delayopen);
break;
case BGP_STATUS_MAX:
@@ -968,8 +968,9 @@ void bgp_start_routeadv(struct bgp *bgp)
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
if (!peer_established(peer))
continue;
- EVENT_OFF(peer->t_routeadv);
- BGP_TIMER_ON(peer->t_routeadv, bgp_routeadv_timer, 0);
+ EVENT_OFF(peer->connection->t_routeadv);
+ BGP_TIMER_ON(peer->connection->t_routeadv, bgp_routeadv_timer,
+ 0);
}
}
@@ -988,7 +989,7 @@ void bgp_adjust_routeadv(struct peer *peer)
* different
* duration and schedule write thread immediately.
*/
- EVENT_OFF(peer->t_routeadv);
+ EVENT_OFF(peer->connection->t_routeadv);
peer->synctime = monotime(NULL);
/* If suppress fib pending is enabled, route is advertised to
@@ -1020,8 +1021,9 @@ void bgp_adjust_routeadv(struct peer *peer)
*/
diff = difftime(nowtime, peer->last_update);
if (diff > (double)peer->v_routeadv) {
- EVENT_OFF(peer->t_routeadv);
- BGP_TIMER_ON(peer->t_routeadv, bgp_routeadv_timer, 0);
+ EVENT_OFF(peer->connection->t_routeadv);
+ BGP_TIMER_ON(peer->connection->t_routeadv, bgp_routeadv_timer,
+ 0);
return;
}
@@ -1041,14 +1043,15 @@ void bgp_adjust_routeadv(struct peer *peer)
*
* (MRAI - m) < r
*/
- if (peer->t_routeadv)
- remain = event_timer_remain_second(peer->t_routeadv);
+ if (peer->connection->t_routeadv)
+ remain = event_timer_remain_second(peer->connection->t_routeadv);
else
remain = peer->v_routeadv;
diff = peer->v_routeadv - diff;
if (diff <= (double)remain) {
- EVENT_OFF(peer->t_routeadv);
- BGP_TIMER_ON(peer->t_routeadv, bgp_routeadv_timer, diff);
+ EVENT_OFF(peer->connection->t_routeadv);
+ BGP_TIMER_ON(peer->connection->t_routeadv, bgp_routeadv_timer,
+ diff);
}
}
@@ -1516,7 +1519,7 @@ enum bgp_fsm_state_progress bgp_stop(struct peer_connection *connection)
EVENT_OFF(connection->t_start);
EVENT_OFF(connection->t_connect);
EVENT_OFF(connection->t_holdtime);
- EVENT_OFF(peer->t_routeadv);
+ EVENT_OFF(connection->t_routeadv);
EVENT_OFF(peer->connection->t_delayopen);
/* Clear input and output buffer. */
@@ -2331,8 +2334,9 @@ bgp_establish(struct peer_connection *connection)
* of read-only mode.
*/
if (!bgp_update_delay_active(peer->bgp)) {
- EVENT_OFF(peer->t_routeadv);
- BGP_TIMER_ON(peer->t_routeadv, bgp_routeadv_timer, 0);
+ EVENT_OFF(peer->connection->t_routeadv);
+ BGP_TIMER_ON(peer->connection->t_routeadv, bgp_routeadv_timer,
+ 0);
}
if (peer->doppelganger &&
diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c
index 0b9cfc8d0f..b29c630d9c 100644
--- a/bgpd/bgp_packet.c
+++ b/bgpd/bgp_packet.c
@@ -469,7 +469,7 @@ void bgp_generate_updgrp_packets(struct event *thread)
|| bgp_update_delay_active(peer->bgp))
return;
- if (peer->t_routeadv)
+ if (peer->connection->t_routeadv)
return;
/*
diff --git a/bgpd/bgp_updgrp_adv.c b/bgpd/bgp_updgrp_adv.c
index 68fd11a042..ba81f20dcf 100644
--- a/bgpd/bgp_updgrp_adv.c
+++ b/bgpd/bgp_updgrp_adv.c
@@ -384,8 +384,9 @@ static void subgroup_coalesce_timer(struct event *thread)
SUBGRP_FOREACH_PEER (subgrp, paf) {
peer = PAF_PEER(paf);
- EVENT_OFF(peer->t_routeadv);
- BGP_TIMER_ON(peer->t_routeadv, bgp_routeadv_timer, 0);
+ EVENT_OFF(peer->connection->t_routeadv);
+ BGP_TIMER_ON(peer->connection->t_routeadv,
+ bgp_routeadv_timer, 0);
}
}
}
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index 534bdc83ed..5268c8fc4b 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -15140,13 +15140,13 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, bool use_json,
event_timer_remain_second(
p->connection->t_connect) *
1000);
- if (p->t_routeadv) {
+ if (p->connection->t_routeadv) {
json_object_int_add(json_neigh, "mraiInterval",
p->v_routeadv);
- json_object_int_add(
- json_neigh, "mraiTimerExpireInMsecs",
- event_timer_remain_second(p->t_routeadv) *
- 1000);
+ json_object_int_add(json_neigh, "mraiTimerExpireInMsecs",
+ event_timer_remain_second(
+ p->connection->t_routeadv) *
+ 1000);
}
if (p->password)
json_object_int_add(json_neigh, "authenticationEnabled",
@@ -15182,11 +15182,12 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, bool use_json,
vty_out(vty, "Next connect timer due in %ld seconds\n",
event_timer_remain_second(
p->connection->t_connect));
- if (p->t_routeadv)
+ if (p->connection->t_routeadv)
vty_out(vty,
"MRAI (interval %u) timer expires in %ld seconds\n",
p->v_routeadv,
- event_timer_remain_second(p->t_routeadv));
+ event_timer_remain_second(
+ p->connection->t_routeadv));
if (p->password)
vty_out(vty, "Peer Authentication Enabled\n");
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index 4b1029778b..39266a499f 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -1146,6 +1146,7 @@ struct peer_connection {
struct event *t_connect_check_r;
struct event *t_connect_check_w;
+ struct event *t_routeadv;
struct event *t_process_packet;
struct event *t_process_packet_error;
@@ -1555,7 +1556,6 @@ struct peer {
_Atomic uint32_t v_gr_restart;
/* Threads. */
- struct event *t_routeadv;
struct event *t_pmax_restart;
struct event *t_gr_restart;
struct event *t_gr_stale;