Detection of what is referred to as ``a long period of silence'' in the RFC, is implemented by making the following changes to the existing link-sensing mechanism.
In link tuples the following is recorded, in addition to the fields specified in the RFC:
next_hello_timer - a timer describing within what
time a new HELLO should be received on this link.
last_htime - last recorded htime value from the
neighbor(which this link connects us to).
Upon receiving a HELLO, the next_hello_timer is set to
now + (received htime * 1.5), and the last_htime
is set to the received htime. The htime value is multiplied by 1.5 to
add some slack since various issues like scheduler poll rate and
transmission queuing could delay the reception of the next HELLO.
The link set is constantly checked for timed out entries with
regards to the next_hello_timer. If a links next_hello_timer
is timed out, a long period of silence is considered detected
and the instability rule is applied to that links link_quality.
The next_hello_timer is then set to now + last_htime to be able
to detect another long period of silence. Note that this time no
slack is added.
Andreas 2004-07-29