Subject: AODV and HELLO messages...

From: Erik Nordström <[email-masked]>
Date: 27 Jan 2002 02:53:59 +0100

Hello

I am trying to get a clear picture of how AODV should operate when using
HELLO messages.

Section 6.9 (Hello messages) says:

"The route to the neighbor, if it exists, MUST subsequently contain the
latest Destination Sequence Number from the Hello message."

Does this mean that I always set the sequence number in the routing
table entry for the neighbor equal to the one in the HELLO/RREP message?
Even if the sequence number in the HELLO message is smaller than the one
in the routing table? 

Also, if an entry already exists for the neighbor when receiving one of
its hello messages, and that entry is a multi-hop route, should the
route be updated/optimized to reflect that the neighbor now is directly
reachable (hop count = 1)? Or is the HELLO message treated in the same
manner as a RREP (since it is a RREP), and the routing table entry only
updated if the HELLO message fulfill the same requirements as for a
RREP?
In any case, updating or "optimizing" the route upon reception of HELLO
messages will make sure that a route is always the shortest possible.
But I also see the following problems:

* In the borderlines of where direct communication can be withheld,
HELLO messages may go through sporadically. Then the route may go from 1
to 2 hops back and forth, so that communication with the destination can
not be withheld. This could be counteracted by introducing a condition
saying, for example, that 3 consecutive HELLOs should be received before
the destination is considered being a neighbor.

* If a long route is "optimized" at intermediate nodes, the end-points
of the route may get invalid hop-counts (which do not reflect the true
hop count). I guess this might also happen when doing local repairs...

If the multi-hop routing table entry is _not_ updated upon reception of
a HELLO message, AODV may suffer from non-optimal routes in the network.
Also, any multi-hop routes to a destination which suddenly becomes a
neighbor will not expire (or become a 1 hop route) when data is no
longer sent on the route, as long as HELLO messages (or other AODV
messages) are received. This is due to the fact that the draft says that
a routing table entry's lifetime should always be updated upon receiving
an AODV control message.

Another issue: the last sentence in section 6.9 says...

"Routes that are newly created from the reception of Hello messages
might have empty precursor lists, and in that case would not trigger
RERR messages when the neighbor moves away and the neighbor route
expires."

But what if there exists routes which use the expired route as next hop?
Then a RERR should be sent in case those routes have non-empty precursor
lists, even though the route created from the reception of Hello
messages had an empty precursor list.

Comments?

/Erik Nordström, 
Uppsala University
Sweden