Subject: AODV questions

From: "Salavat Magazov" <[email-masked]>
Date: Thu, 6 Jul 2000 12:24:28 +0400

Hello

I have some questions regarding AODV. Sequence numbers in particular.

Let's imagine the situation where node S (source) tries to find a route to
node D (destination) using destination sequence number n. Say there are four
other participating nodes 1, 2, 3 and 4 through which route lies.
S-->1-->2-->3-->4-->D
 After the route is found the source starts transmitting, etc. Suddenly the
connection, say, between 2 and 3 breaks for whatever reason, then RERR
message is sent upstream to notify nodes of broken link. Let's also assume
that route entry for D in nodes from 3 through D did not expire yet.
S-x->1-x->2-x->3-->4-->D
After S gets RERR message it will try to find another route to D, and as
specification says uses n+1 as a dest. seq. number to be sure that new route
is established. This is the point I do not understand. Why not to use n and
thus use the part of the route from 3 to D which is still available? The
nodes could save time and bandwidth. Due to the movement of nodes there may
emerge another shorter route which will be used as soon as S is notified
about its existence by receiving RREP with smaller hop count.

Disclaimer:
I am not saying that what you offer is bad, I rather say I do not understand
the reason.

Regards
Salavat

---

From: Karthik <[email-masked]>
Date: Thu, 6 Jul 2000 11:50:44 -0400 (EDT)

The reason the same sequence number (n) cannot be used is to prevent
loops. The basic reason is that AODV depends on the "persistence"
of dest sequence numbers and each sequence number denotes a valid routing
configuration to a destination. So when a sequence number goes "bad", i.e.
one of the links fail, everyone who is aware of this must stop using this
sequence number.

To answer your particular question:
	Assume the current configuration is
		S-->1-->2-x-->3-->4-->D
	i.e. 2 is aware of the link break but 1 isnt
	Further assume that the RERR from 2 to 1 gets dropped.

	Now, suppose 2 needs a route to D and sends an RREQ with
	dest sequence number n, clearly, 1 (and maybe S) will respond to
	this RREQ. This will immediatedly cause a loop. 
	On the other hand, if 2 sent the RREQ with n+1, 1 (and S)
	cannot respond (since they only have n) and so we are safe.

	This may be inefficient in re-using old "good" routes, but
	is necessary to avoid re-using old "bad" routes.

-Karthik

--------------------------------------
http://www.seas.upenn.edu/~bkarthik
--------------------------------------