From: Donald Sharp Date: Wed, 20 May 2015 00:24:44 +0000 (-0700) Subject: When an LSA is flushed we need to update the timestamps for them. This X-Git-Tag: frr-2.0-rc1~1554 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=d291fcf1c9ea29d112fbd4e7daf90127efd48d5e;p=mirror%2Ffrr.git When an LSA is flushed we need to update the timestamps for them. This allows for the node to give the neighbor sufficient time to send back an acknowledgement before retransmission kicks in. Signed-off-by: Dinesh G Dutt Reviewed-by: Scott Feldman Reviewed-by: James Li --- diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c index 2c33b00ef9..d18314a9d9 100644 --- a/ospfd/ospf_flood.c +++ b/ospfd/ospf_flood.c @@ -980,7 +980,12 @@ ospf_ls_retransmit_delete_nbr_as (struct ospf *ospf, struct ospf_lsa *lsa) void ospf_lsa_flush_area (struct ospf_lsa *lsa, struct ospf_area *area) { + /* Reset the lsa origination time such that it gives + more time for the ACK to be received and avoid + retransmissions */ lsa->data->ls_age = htons (OSPF_LSA_MAXAGE); + lsa->tv_recv = recent_relative_time (); + lsa->tv_orig = lsa->tv_recv; ospf_flood_through_area (area, NULL, lsa); ospf_lsa_maxage (area->ospf, lsa); } @@ -988,7 +993,12 @@ ospf_lsa_flush_area (struct ospf_lsa *lsa, struct ospf_area *area) void ospf_lsa_flush_as (struct ospf *ospf, struct ospf_lsa *lsa) { + /* Reset the lsa origination time such that it gives + more time for the ACK to be received and avoid + retransmissions */ lsa->data->ls_age = htons (OSPF_LSA_MAXAGE); + lsa->tv_recv = recent_relative_time (); + lsa->tv_orig = lsa->tv_recv; ospf_flood_through_as (ospf, NULL, lsa); ospf_lsa_maxage (ospf, lsa); }