summaryrefslogtreecommitdiff
path: root/ospfd/ospf_packet.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospf_packet.c')
-rw-r--r--ospfd/ospf_packet.c39
1 files changed, 18 insertions, 21 deletions
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index f7d1d0fa7d..bf78336ad5 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -22,6 +22,7 @@
#include <zebra.h>
+#include "monotime.h"
#include "thread.h"
#include "memory.h"
#include "linklist.h"
@@ -521,16 +522,18 @@ ospf_ls_upd_timer (struct thread *thread)
struct ospf_lsa *lsa;
if ((lsa = rn->info) != NULL)
- /* Don't retransmit an LSA if we received it within
- the last RxmtInterval seconds - this is to allow the
- neighbour a chance to acknowledge the LSA as it may
- have ben just received before the retransmit timer
- fired. This is a small tweak to what is in the RFC,
- but it will cut out out a lot of retransmit traffic
- - MAG */
- if (tv_cmp (tv_sub (recent_relative_time (), lsa->tv_recv),
- int2tv (retransmit_interval)) >= 0)
- listnode_add (update, rn->info);
+ {
+ /* Don't retransmit an LSA if we received it within
+ the last RxmtInterval seconds - this is to allow the
+ neighbour a chance to acknowledge the LSA as it may
+ have ben just received before the retransmit timer
+ fired. This is a small tweak to what is in the RFC,
+ but it will cut out out a lot of retransmit traffic
+ - MAG */
+ if (monotime_since (&lsa->tv_recv, NULL)
+ >= retransmit_interval * 1000000LL)
+ listnode_add (update, rn->info);
+ }
}
}
@@ -1469,10 +1472,8 @@ ospf_db_desc (struct ip *iph, struct ospf_header *ospfh,
}
else
{
- struct timeval t, now;
- quagga_gettime (QUAGGA_CLK_MONOTONIC, &now);
- t = tv_sub (now, nbr->last_send_ts);
- if (tv_cmp (t, int2tv (nbr->v_inactivity)) < 0)
+ if (monotime_since (&nbr->last_send_ts, NULL)
+ < nbr->v_inactivity * 1000000LL)
{
/* In states Loading and Full the slave must resend
its last Database Description packet in response to
@@ -2074,12 +2075,8 @@ ospf_ls_upd (struct ospf *ospf, struct ip *iph, struct ospf_header *ospfh,
recent) LSA instance. */
else
{
- struct timeval now;
-
- quagga_gettime (QUAGGA_CLK_MONOTONIC, &now);
-
- if (tv_cmp (tv_sub (now, current->tv_orig),
- msec2tv (ospf->min_ls_arrival)) >= 0)
+ if (monotime_since (&current->tv_orig, NULL)
+ >= ospf->min_ls_arrival * 1000LL)
/* Trap NSSA type later.*/
ospf_ls_upd_send_lsa (nbr, current, OSPF_SEND_PACKET_DIRECT);
DISCARD_LSA (lsa, 8);
@@ -3577,7 +3574,7 @@ ospf_db_desc_send (struct ospf_neighbor *nbr)
if (nbr->last_send)
ospf_packet_free (nbr->last_send);
nbr->last_send = ospf_packet_dup (op);
- quagga_gettime (QUAGGA_CLK_MONOTONIC, &nbr->last_send_ts);
+ monotime(&nbr->last_send_ts);
}
/* Re-send Database Description. */