Subject: Re: [Aodvimpl] Strange behavior

From: Manel Guerrero Zapata <[email-masked]>
Date: Mon, 14 Jan 2002 11:12:54 +0200

Hi Charlie,

(See comments)

"Perkins Charles (IPRG)" wrote:
> 
> Hello Manel,
> 
> Manel Guerrero Zapata wrote:
> 
>              ........
> 
> > Now, let's look again to the problem. Let's jump to the section 8.7:
> >
> > 8.7. Forwarding Route Replies
> >         (Paragraph 4)
> >         "When any node generates or forwards a RREP, the precursor
> list
> >         for the corresponding destination node is updated by adding to
> >         it the next hop node to which the RREP is forwarded. [...]"
> >
> >         But there is nothing like that for Gratuitous RREPs or for
> RREQs.
> >         So the error recovery system that AODV has now will never work
> with
> >         routes that where created as reverse routes or by a G-RREP.
> The nodes
> >         will never forward RERRs.
> >
> >         I think there should be something like this in the section
> >         '8.6.3. Generating Gratuitous RREPs':
> >
> >            When any node generates or forwards a _Gratuitous_ RREP,
> the
> >            precursor list for the corresponding _source_ node is
> updated
> >            by adding to it the next hop node to which the RREP is
> forwarded.
> 
> This was an unintended omission.  I had already fixed this in
> (still unreleased) revision 10.
> 
> >          And something like this in the section
> >         '8.5. Processing and Forwarding Route Requests':
> >
> >            When any node generates or forwards a _RREQ_, the precursor
> list
> >            for the corresponding _source_ node is updated by adding to
> it
> >            the next hop nodes to which the _RREQ_ is forwarded.
> >
> >            But the RREQ is forwarded to everybody. So precursor lists
> >            should be as they used to be but with the 'everybody' flag.
> >            When I want to add everybody in a precursor list, I clear
> >            the list and set the flag. When I want to chech if somebody
> >            is in a precursor list, I first check the flag and if it is
> >            not set I search in the list. When I want to empty the
> list,
> >            I clear the flag and empty the list.
> 
> This is not necessary.  I would worry about generating RERRs for
> such routes.  If the path to the originating node happens to break
> during Route Discovery, we don't want RERRs to be generated for
> those neighbors that had received the retransmitted RREQ.
> 
> Besides that, the next hops that receive the retransmitted RREQ
> message will be put into the appropriate precursor lists at the
> appropriate time -- i.e., when the RREP comes back through.
> 
> Regards,
> Charlie P.

Well, I see your point. 
But let's look at this example:

Usualy, when doing a route discovery a lot of routes are created by
the floding of the RREQ, only those ones who are in the path that will
be discovery will survive. The rest will be deleted in a short time.
But, there is the possibility that one of those routes will be used
by some other transmision, and therefore its lifetime updated.
Now this route is actively used but the precursor lists are not
correct. When the link will break the RERR will not be issued.

How likely is this to happen? Well, it depends on the movility and
on the number of simultaneous transmisions, but maybe it is more or
less as probable than a link breakage happens in discovery time.

BR/Manel Guerrero