mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 16:20:08 +00:00
commit
6018f0424e
@ -203,9 +203,8 @@ void eigrp_distribute_update(struct distribute_ctx *ctx,
|
||||
/* Cancel GR scheduled */
|
||||
thread_cancel(&(ei->t_distribute));
|
||||
/* schedule Graceful restart for interface in 10sec */
|
||||
e->t_distribute = NULL;
|
||||
thread_add_timer(master, eigrp_distribute_timer_interface, ei, 10,
|
||||
&e->t_distribute);
|
||||
&ei->t_distribute);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -263,7 +262,6 @@ int eigrp_distribute_timer_process(struct thread *thread)
|
||||
struct eigrp *eigrp;
|
||||
|
||||
eigrp = THREAD_ARG(thread);
|
||||
eigrp->t_distribute = NULL;
|
||||
|
||||
/* execute GR for whole process */
|
||||
eigrp_update_send_process_GR(eigrp, EIGRP_GR_FILTER, NULL);
|
||||
|
@ -86,7 +86,6 @@ int eigrp_hello_timer(struct thread *thread)
|
||||
struct eigrp_interface *ei;
|
||||
|
||||
ei = THREAD_ARG(thread);
|
||||
ei->t_hello = NULL;
|
||||
|
||||
if (IS_DEBUG_EIGRP(0, TIMERS))
|
||||
zlog_debug("Start Hello Timer (%s) Expire [%u]", IF_NAME(ei),
|
||||
@ -96,7 +95,6 @@ int eigrp_hello_timer(struct thread *thread)
|
||||
eigrp_hello_send(ei, EIGRP_HELLO_NORMAL, NULL);
|
||||
|
||||
/* Hello timer set. */
|
||||
ei->t_hello = NULL;
|
||||
thread_add_timer(master, eigrp_hello_timer, ei, ei->params.v_hello,
|
||||
&ei->t_hello);
|
||||
|
||||
|
@ -265,7 +265,7 @@ int eigrp_if_up(struct eigrp_interface *ei)
|
||||
/* Set multicast memberships appropriately for new state. */
|
||||
eigrp_if_set_multicast(ei);
|
||||
|
||||
thread_add_event(master, eigrp_hello_timer, ei, (1), NULL);
|
||||
thread_add_event(master, eigrp_hello_timer, ei, (1), &ei->t_hello);
|
||||
|
||||
/*Prepare metrics*/
|
||||
metric.bandwidth = eigrp_bandwidth_to_scaled(ei->params.bandwidth);
|
||||
|
@ -340,8 +340,6 @@ int eigrp_write(struct thread *thread)
|
||||
#endif /* WANT_EIGRP_WRITE_FRAGMENT */
|
||||
#define EIGRP_WRITE_IPHL_SHIFT 2
|
||||
|
||||
eigrp->t_write = NULL;
|
||||
|
||||
node = listhead(eigrp->oi_write_q);
|
||||
assert(node);
|
||||
ei = listgetdata(node);
|
||||
@ -470,7 +468,6 @@ out:
|
||||
|
||||
/* If packets still remain in queue, call write thread. */
|
||||
if (!list_isempty(eigrp->oi_write_q)) {
|
||||
eigrp->t_write = NULL;
|
||||
thread_add_write(master, eigrp_write, eigrp, eigrp->fd,
|
||||
&eigrp->t_write);
|
||||
}
|
||||
@ -497,7 +494,6 @@ int eigrp_read(struct thread *thread)
|
||||
eigrp = THREAD_ARG(thread);
|
||||
|
||||
/* prepare for next packet. */
|
||||
eigrp->t_read = NULL;
|
||||
thread_add_read(master, eigrp_read, eigrp, eigrp->fd, &eigrp->t_read);
|
||||
|
||||
stream_reset(eigrp->ibuf);
|
||||
@ -1013,7 +1009,6 @@ int eigrp_unack_packet_retrans(struct thread *thread)
|
||||
return eigrp_retrans_count_exceeded(ep, nbr);
|
||||
|
||||
/*Start retransmission timer*/
|
||||
ep->t_retrans_timer = NULL;
|
||||
thread_add_timer(master, eigrp_unack_packet_retrans, nbr,
|
||||
EIGRP_PACKET_RETRANS_TIME,
|
||||
&ep->t_retrans_timer);
|
||||
@ -1049,7 +1044,6 @@ int eigrp_unack_multicast_packet_retrans(struct thread *thread)
|
||||
return eigrp_retrans_count_exceeded(ep, nbr);
|
||||
|
||||
/*Start retransmission timer*/
|
||||
ep->t_retrans_timer = NULL;
|
||||
thread_add_timer(master, eigrp_unack_multicast_packet_retrans,
|
||||
nbr, EIGRP_PACKET_RETRANS_TIME,
|
||||
&ep->t_retrans_timer);
|
||||
|
@ -917,12 +917,10 @@ int eigrp_update_send_GR_thread(struct thread *thread)
|
||||
/* get argument from thread */
|
||||
nbr = THREAD_ARG(thread);
|
||||
/* remove this thread pointer */
|
||||
nbr->t_nbr_send_gr = NULL;
|
||||
|
||||
/* if there is packet waiting in queue,
|
||||
* schedule this thread again with small delay */
|
||||
if (nbr->retrans_queue->count > 0) {
|
||||
nbr->t_nbr_send_gr = NULL;
|
||||
thread_add_timer_msec(master, eigrp_update_send_GR_thread, nbr,
|
||||
10, &nbr->t_nbr_send_gr);
|
||||
return 0;
|
||||
@ -934,7 +932,6 @@ int eigrp_update_send_GR_thread(struct thread *thread)
|
||||
/* if it wasn't last chunk, schedule this thread again */
|
||||
if (nbr->nbr_gr_packet_type != EIGRP_PACKET_PART_LAST) {
|
||||
thread_execute(master, eigrp_update_send_GR_thread, nbr, 0);
|
||||
nbr->t_nbr_send_gr = NULL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -1003,7 +1000,6 @@ void eigrp_update_send_GR(struct eigrp_neighbor *nbr, enum GR_type gr_type,
|
||||
nbr->nbr_gr_packet_type = EIGRP_PACKET_PART_FIRST;
|
||||
/* execute packet sending in thread */
|
||||
thread_execute(master, eigrp_update_send_GR_thread, nbr, 0);
|
||||
nbr->t_nbr_send_gr = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -171,7 +171,6 @@ static struct eigrp *eigrp_new(uint16_t as, vrf_id_t vrf_id)
|
||||
|
||||
eigrp->ibuf = stream_new(EIGRP_PACKET_MAX_LEN + 1);
|
||||
|
||||
eigrp->t_read = NULL;
|
||||
thread_add_read(master, eigrp_read, eigrp, eigrp->fd, &eigrp->t_read);
|
||||
eigrp->oi_write_q = list_new();
|
||||
|
||||
|
@ -805,7 +805,6 @@ static int rip_interface_wakeup(struct thread *t)
|
||||
ifp = THREAD_ARG(t);
|
||||
|
||||
ri = ifp->info;
|
||||
ri->t_wakeup = NULL;
|
||||
|
||||
/* Join to multicast group. */
|
||||
if (rip_multicast_join(ifp, ri->rip->sock) < 0) {
|
||||
|
@ -95,7 +95,6 @@ static struct rip_peer *rip_peer_get(struct rip *rip, struct in_addr *addr)
|
||||
}
|
||||
|
||||
/* Update timeout thread. */
|
||||
peer->t_timeout = NULL;
|
||||
thread_add_timer(master, rip_peer_timeout, peer, RIP_PEER_TIMER_DEFAULT,
|
||||
&peer->t_timeout);
|
||||
|
||||
|
12
ripd/ripd.c
12
ripd/ripd.c
@ -142,7 +142,6 @@ static int rip_garbage_collect(struct thread *t)
|
||||
struct route_node *rp;
|
||||
|
||||
rinfo = THREAD_ARG(t);
|
||||
rinfo->t_garbage_collect = NULL;
|
||||
|
||||
/* Off timeout timer. */
|
||||
RIP_TIMER_OFF(rinfo->t_timeout);
|
||||
@ -1744,7 +1743,6 @@ static int rip_read(struct thread *t)
|
||||
|
||||
/* Fetch socket then register myself. */
|
||||
sock = THREAD_FD(t);
|
||||
rip->t_read = NULL;
|
||||
|
||||
/* Add myself to tne next event */
|
||||
rip_event(rip, RIP_READ, sock);
|
||||
@ -2545,9 +2543,6 @@ static int rip_update(struct thread *t)
|
||||
{
|
||||
struct rip *rip = THREAD_ARG(t);
|
||||
|
||||
/* Clear timer pointer. */
|
||||
rip->t_update = NULL;
|
||||
|
||||
if (IS_RIP_DEBUG_EVENT)
|
||||
zlog_debug("update timer fire!");
|
||||
|
||||
@ -2588,8 +2583,6 @@ static int rip_triggered_interval(struct thread *t)
|
||||
{
|
||||
struct rip *rip = THREAD_ARG(t);
|
||||
|
||||
rip->t_triggered_interval = NULL;
|
||||
|
||||
if (rip->trigger) {
|
||||
rip->trigger = 0;
|
||||
rip_triggered_update(t);
|
||||
@ -2603,9 +2596,6 @@ static int rip_triggered_update(struct thread *t)
|
||||
struct rip *rip = THREAD_ARG(t);
|
||||
int interval;
|
||||
|
||||
/* Clear thred pointer. */
|
||||
rip->t_triggered_update = NULL;
|
||||
|
||||
/* Cancel interval timer. */
|
||||
RIP_TIMER_OFF(rip->t_triggered_interval);
|
||||
rip->trigger = 0;
|
||||
@ -2628,7 +2618,6 @@ static int rip_triggered_update(struct thread *t)
|
||||
update is triggered when the timer expires. */
|
||||
interval = (frr_weak_random() % 5) + 1;
|
||||
|
||||
rip->t_triggered_interval = NULL;
|
||||
thread_add_timer(master, rip_triggered_interval, rip, interval,
|
||||
&rip->t_triggered_interval);
|
||||
|
||||
@ -2834,7 +2823,6 @@ void rip_event(struct rip *rip, enum rip_event event, int sock)
|
||||
|
||||
switch (event) {
|
||||
case RIP_READ:
|
||||
rip->t_read = NULL;
|
||||
thread_add_read(master, rip_read, rip, sock, &rip->t_read);
|
||||
break;
|
||||
case RIP_UPDATE_EVENT:
|
||||
|
@ -618,7 +618,6 @@ static int ripng_interface_wakeup(struct thread *t)
|
||||
ifp = THREAD_ARG(t);
|
||||
|
||||
ri = ifp->info;
|
||||
ri->t_wakeup = NULL;
|
||||
|
||||
/* Join to multicast group. */
|
||||
if (ripng_multicast_join(ifp, ri->ripng->sock) < 0) {
|
||||
|
@ -429,7 +429,6 @@ static int ripng_garbage_collect(struct thread *t)
|
||||
struct agg_node *rp;
|
||||
|
||||
rinfo = THREAD_ARG(t);
|
||||
rinfo->t_garbage_collect = NULL;
|
||||
|
||||
/* Off timeout timer. */
|
||||
RIPNG_TIMER_OFF(rinfo->t_timeout);
|
||||
@ -1320,7 +1319,6 @@ static int ripng_read(struct thread *thread)
|
||||
/* Fetch thread data and set read pointer to empty for event
|
||||
managing. `sock' sould be same as ripng->sock. */
|
||||
sock = THREAD_FD(thread);
|
||||
ripng->t_read = NULL;
|
||||
|
||||
/* Add myself to the next event. */
|
||||
ripng_event(ripng, RIPNG_READ, sock);
|
||||
@ -1418,9 +1416,6 @@ static int ripng_update(struct thread *t)
|
||||
struct interface *ifp;
|
||||
struct ripng_interface *ri;
|
||||
|
||||
/* Clear update timer thread. */
|
||||
ripng->t_update = NULL;
|
||||
|
||||
/* Logging update event. */
|
||||
if (IS_RIPNG_DEBUG_EVENT)
|
||||
zlog_debug("RIPng update timer expired!");
|
||||
@ -1469,8 +1464,6 @@ static int ripng_triggered_interval(struct thread *t)
|
||||
{
|
||||
struct ripng *ripng = THREAD_ARG(t);
|
||||
|
||||
ripng->t_triggered_interval = NULL;
|
||||
|
||||
if (ripng->trigger) {
|
||||
ripng->trigger = 0;
|
||||
ripng_triggered_update(t);
|
||||
@ -1486,8 +1479,6 @@ int ripng_triggered_update(struct thread *t)
|
||||
struct ripng_interface *ri;
|
||||
int interval;
|
||||
|
||||
ripng->t_triggered_update = NULL;
|
||||
|
||||
/* Cancel interval timer. */
|
||||
thread_cancel(&ripng->t_triggered_interval);
|
||||
ripng->trigger = 0;
|
||||
@ -1525,7 +1516,6 @@ int ripng_triggered_update(struct thread *t)
|
||||
update is triggered when the timer expires. */
|
||||
interval = (frr_weak_random() % 5) + 1;
|
||||
|
||||
ripng->t_triggered_interval = NULL;
|
||||
thread_add_timer(master, ripng_triggered_interval, ripng, interval,
|
||||
&ripng->t_triggered_interval);
|
||||
|
||||
@ -1942,7 +1932,6 @@ void ripng_event(struct ripng *ripng, enum ripng_event event, int sock)
|
||||
/* Update timer jitter. */
|
||||
jitter = ripng_update_jitter(ripng->update_time);
|
||||
|
||||
ripng->t_update = NULL;
|
||||
thread_add_timer(master, ripng_update, ripng,
|
||||
sock ? 2 : ripng->update_time + jitter,
|
||||
&ripng->t_update);
|
||||
|
@ -137,10 +137,7 @@ struct ripng {
|
||||
|
||||
/* RIPng threads. */
|
||||
struct thread *t_read;
|
||||
struct thread *t_write;
|
||||
struct thread *t_update;
|
||||
struct thread *t_garbage;
|
||||
struct thread *t_zebra;
|
||||
|
||||
/* Triggered update hack. */
|
||||
int trigger;
|
||||
|
Loading…
Reference in New Issue
Block a user