Commits

Dinesh G Dutt authored and Paul Jakma committed 8306be211f1
OSPFd: Update timestamps when we MaxAge LSAs.

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 <ddutt@cumulusnetworks.com> Reviewed-by: Scott Feldman <sfeldma@cumulusnetworks.com> Reviewed-by: James Li <jli@cumulusnetworks.com> Reviewed-by: Paul Jakma <paul@opensourcerouting.org>
No tags

ospfd/ospf_flood.c

Modified
973 973 ospf_ls_retransmit_delete_nbr_if (oi, lsa);
974 974 }
975 975
976 976
977 977 /* Sets ls_age to MaxAge and floods throu the area.
978 978 When we implement ASE routing, there will be anothe function
979 979 flushing an LSA from the whole domain. */
980 980 void
981 981 ospf_lsa_flush_area (struct ospf_lsa *lsa, struct ospf_area *area)
982 982 {
983 + /* Reset the lsa origination time such that it gives
984 + more time for the ACK to be received and avoid
985 + retransmissions */
983 986 lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
987 + lsa->tv_recv = recent_relative_time ();
988 + lsa->tv_orig = lsa->tv_recv;
984 989 ospf_flood_through_area (area, NULL, lsa);
985 990 ospf_lsa_maxage (area->ospf, lsa);
986 991 }
987 992
988 993 void
989 994 ospf_lsa_flush_as (struct ospf *ospf, struct ospf_lsa *lsa)
990 995 {
996 + /* Reset the lsa origination time such that it gives
997 + more time for the ACK to be received and avoid
998 + retransmissions */
991 999 lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
1000 + lsa->tv_recv = recent_relative_time ();
1001 + lsa->tv_orig = lsa->tv_recv;
992 1002 ospf_flood_through_as (ospf, NULL, lsa);
993 1003 ospf_lsa_maxage (ospf, lsa);
994 1004 }
995 1005
996 1006 void
997 1007 ospf_lsa_flush (struct ospf *ospf, struct ospf_lsa *lsa)
998 1008 {
999 1009 lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
1000 1010
1001 1011 switch (lsa->data->type)

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut