]> git.puffer.fish Git - matthieu/frr.git/commit
ospfd: Fix maxage/flush to not try flood twice, remember maxages for longer
authorPaul Jakma <paul@quagga.net>
Sun, 24 Jan 2010 23:36:20 +0000 (23:36 +0000)
committerPaul Jakma <paul@quagga.net>
Wed, 8 Dec 2010 17:13:19 +0000 (17:13 +0000)
commit02d942c9d4afabf04bd781f0e1e5e8aa36945df2
tree1874fc70a20b6b0407e808c926c362aa03415662
parentc363d3861b5384a31465a72ddc3b0f6ff007a95a
ospfd: Fix maxage/flush to not try flood twice, remember maxages for longer

2006-05-30 Paul Jakma <paul.jakma@sun.com>

* (general) Fix confusion around MaxAge-ing and problem with
  high-latency networks. Analysis and suggested fixes by
  Phillip Spagnolo, in [quagga-dev 4132], on which this commit
  expands slightly.
* ospf_flood.{c,h}: (ospf_lsa_flush) new function.
  Scope-general form of existing flush functions, essentially
  the dormant ospf_maxage_flood() but without the ambiguity of
  whether it is responsible for flooding.
* ospf_lsa.c: (ospf_lsa_maxage) Role minimised to simply setup
  LSA on the Maxage list and schedule removal - no more.
  ospf_lsa_flush* being the primary way to kick-off flushes
  of LSAs.
  Don't hardcode the remover-timer value, which was too
  short for very high-latency networks.
  (ospf_maxage_lsa_remover) Just do what needs to be done to
  remove maxage LSAs from the maxage list, remove the call
  to ospf_flood_through().
  Don't hardcode remove-timer value.
  (ospf_lsa_{install,flush_schedule}) ospf_lsa_flush is the correct
  entrypoint to flushing maxaged LSAs.
  (lsa_header_set) Use a define for the initial age, useful for
  testing.
* ospf_opaque.c: (ospf_opaque_lsa_refresh) ditto.
  (ospf_opaque_lsa_flush_schedule) ditto.
* ospfd.h: ({struct ospf,ospf_new}) Add maxage_delay parameter,
  interval to wait before running the maxage_remover. Supply a
  suitable default.
  Add a define for OSPF_LSA_INITIAL_AGE, see lsa_header_set().
ospfd/ospf_flood.c
ospfd/ospf_flood.h
ospfd/ospf_lsa.c
ospfd/ospf_opaque.c
ospfd/ospfd.c
ospfd/ospfd.h