Skip to content

aodv: aodv parameters can be set to "impossible" values

In the AODV model it is possible to set the protocol parameter (e.g., RING_TRAVERSAL_TIME) with a very fine granularity - i.e., it is possible to set each of them manually (using Attributes).

In RFC 3561 there are some default values, and these are also the default values in the protocol.

However, some of the values are actually calculated based on other params, and some combinations are plainly illogical. As an example, RING_TRAVERSAL_TIME should be equal to "2 * NODE_TRAVERSAL_TIME * (TTL_VALUE + TIMEOUT_BUFFER)".

It should be possible to either:

  1. Change one of the params and let the protocol derive the other ones, and/or
  2. Issue a warning if one of the (calculated) params do not match the expected value.

Moreover, some combination should be plainly impossible (i.e., generate an assert), like if the user selects a NET_TRAVERSAL_TIME that is less than NODE_TRAVERSAL_TIME.

A valid patch should include:

  1. Automatic params calculation for "calculated" params
  2. Warnings if for "mismatching" params / calcs,
  3. Abort for impossible params setups.

The automatic calculation could leverage a further Attribute, acting as a discrimination between a simple check and a self-adjustment.