Subject: AODV: sub-optimal route

From: Yves Prelot <[email-masked]>
Date: Fri, 30 Nov 2001 11:25:27 +0100

I have come upon the following situation:

Network:

A --- B --- C --- D --- E
|                            |
|--- F --- G-------|

i.e.
A connects to B and F
B connects to A and C
C connects to B and D
F connects to A and G
G connects to F and D
D connects to C and G and E
E connects to D

At some point, A has a route to E (sequence number 118) through F,G,D
C has an expiring route to E (sequence number 122) through D
D has a route to E (sequence number 122)

Here is the succession of events; we use expanding ring technique to get
the routes.

C route to E expires. Sequence number increases to 123 (route not yet
deleted).
B asks a new route to E, starting with sequence number 0 (E unknown).
A receives RREQ to E (SeqN 0) and answers with RREP (SeqN 118).
C receives RREQ to E (SeqN 0) and forwards it, increasing the SeqN to
123.
B receives RREP from A (SeqN 118) and establishes the route through A.
D receives RREQ from C (SeqN 123); D has an active route to E (SeqN 122
at the time); therefore, D does not answer (SeqN too low), and discards
RREQ (ttl limit reached); however, it updates it's SeqN for E to 123.

Thus the established route from B to E goes 5 hops instead of the
shorter 3 hops.

I note this situation would not happen if C had not increased the SeqN
to E when it caused the route to E to expire. I also note that should D
now receive another RREQ from B, it would answer because it's SeqN has
been updated.

Therefore, I wonder whether the sentence in 8.1:

In summary, a node may change the sequence number for a particular
destination only if:
    -  it is itself the destination node, and offers a new route to
itself
    -  it receives an AODV message with new information about the
       sequence number for some other destination node
    -  the path towards the destination node expires or breaks.

should not be changed to:

In summary, a node may change the sequence number for a particular
destination only if:
    -  it is itself the destination node, and offers a new route to
itself
    -  it receives an AODV message with new information about the
       sequence number for some other destination node
    -  the link to the next hop towards the destination node breaks.

Or did I do something wrong ?

Yves