]> git.puffer.fish Git - mirror/frr.git/commit
OSPF LSA may not be refreshed within 1800s, ANVL OSPF test 12.4 fails
authorDaniel Walton <dwalton@cumulusnetworks.com>
Wed, 18 May 2016 13:36:38 +0000 (13:36 +0000)
committerDaniel Walton <dwalton@cumulusnetworks.com>
Wed, 18 May 2016 13:36:38 +0000 (13:36 +0000)
commit535c84b16b2c82ad8e50b40c0a6afd855d193de3
treecc08e602cc5f88a11f1e91e75388da1967ab0e9f
parente8f7da3a90c2fd0fbbff438665301d78d7773a40
OSPF LSA may not be refreshed within 1800s, ANVL OSPF test 12.4 fails

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Ticket: CM-10948

The previous formula for calculating delay was:

    delay = OSPF_LS_REFRESH_TIME - LS_AGE (lsa) - OSPF_LS_REFRESH_JITTER
              + (random () % (2*OSPF_LS_REFRESH_JITTER));

If LS_AGE() is 0 we get:

  delay = 1800 - 0 - 60 + (random() % 2*60)

So delay will be 1740 + 0..120, so we could easily pick a delay that is
greater than OSPF_LS_REFRESH_TIME (1800).  For the normal case where
we hit this else the LS_AGE will be > 0 so that reduces the chances of
delay being greater than 1800.
ospfd/ospf_lsa.c
ospfd/ospf_vty.c
ospfd/ospfd.h