Link hysteresis

Websters dictionary defines hysteresis as:

hys-ter-e-sis

A retardation of an effect when the forces acting upon a body are changed (as if from viscosity or internal friction); especially : a lagging in the values of resulting magnetization in a magnetic material (as iron) due to a changing magnetizing force

Link-hysteresis means that one, based on some function, ``slow down'' link-sensing. This is to make links robust against bursty loss or transient connectivity between nodes. This means that we are interested in making sure a newly registered link is not just a node passing by at high speed or a node that alternates between residing just outside and just inside radio range. In other words, hysteresis provides a more robust link-sensing at the cost of more delay before establishing links.

The strategy suggested in RFC3626 is based upon two functions, one stability rule and one instability rule, in addition to two link-quality thresholds. Hysteresis requires one to maintain a link-quality value for every link. This value will trig the update of link status when it crosses one of the defined thresholds, and this provides the actual retardation effect. When using hysteresis, the status of links are only changed under two conditions:

Figure 4.4 illustrates these two cases. The delay in link sensing is caused by the difference between the upper and lower threshold and the function used to calculate the quality.

Figure: The link is set to symmetric at time A and set to asymmetric at time B.
\includegraphics[width=4.5in]{gfx/hysteresis1.eps}

The functions suggested in RFC3626 are based on a scaling factor. They are defined as:

The stability rule

L_link_quality = (1-HYST_SCALING)*L_link_quality + HYST_SCALING

The instability rule

L_link_quality = (1-HYST_SCALING)*L_link_quality

The stability rule should be applied on a registered link every time an OLSR-package is received at that link. The instability rule should be applied to a registered link every time a packet is lost. Packet loss is detected by tracking OLSR-packet sequence numbers and by registering the htime field from a neighbors HELLO packets and make sure HELLO packets arrive within this interval. The following are suggested values for hysteresis calculation:

HYST_THRESHOLD_HIGH   = 0.8
HYST_THRESHOLD_LOW    = 0.3
HYST_SCALING          = 0.5

One can observe that if starting with a link quality of 0 it takes three stability rule appliances to reach the upper threshold if using these values. However, going from 1.0 to the lower threshold only takes two appliances of the instability rule.

Hysteresis is a highly tune-able technique which will perform very different given other parameters.

Andreas 2004-07-29