[aodvv2-discuss] Re: 8.1. Evaluating Incoming Routing Information

  • From: John Dowdell <john.dowdell486@xxxxxxxxx>
  • To: aodvv2-discuss@xxxxxxxxxxxxx
  • Date: Tue, 14 Apr 2015 13:32:59 +0100

Hi all, so we're back to 'cost' of a route once more .... see below in line

On 13/04/15 23:04, Lotte Steenbrink wrote:

Hi again,

Am 13.04.2015 um 23:37 schrieb Lotte Steenbrink <lotte.steenbrink@xxxxxxxxxxxx <mailto:lotte.steenbrink@xxxxxxxxxxxx>>:

Hi folks,
I'm revisiting my code that checks whether a route update offers improvement right now, and imho the “To briefly summarize, ..” Part of section 8.1. is a bit misleading, since it doesn't cover all the cases clearly (and being lazy, I used it as my only reference first). Therefore, I'd propose to remove the following paragraphs:

To briefly summarize, AdvRte must satisfy the following conditions
compared to the existing route table entry before it can be used:

o AdvRte is more recent, (i.e., AdvRte.SeqNum > Route.SeqNum) OR

o AdvRte is not stale and can safely restore an invalid route (i.e.
LoopFree (AdvRte, Route) == TRUE), OR

o AdvRte is not stale and is less costly.

Regards,
Lotte

also,

* If the advertised route's cost is the same or greater than the
stored route, and the stored route is valid, the incoming
information does not offer any improvement and SHOULD NOT be
used to update the stored route table entry.
OK so this is fine for metrics with progressively increasing costs such as hop count and latency, and maybe even power consumption, but the wording doesn't quite work for metrics that are not like that (such as bandwidth). Perhaps use "better" or "improved" rather than "lower", or "worse" or "impaired" (or some other word which escapes me just now) instead of "higher"?

Regards
John

* If the advertised route's cost is lower than the stored route,
AdvRte offers improvement and SHOULD be used to update the
stored route table entry.

* If the advertised route's cost is the same or greater than the
stored route, but the stored route's state is Invalid,
continue processing to see whether there is a danger of a
routing loop.

could be rearranged so that the branches of the checks line up as follows:

if (advertised cost < stored route){
USE;
}
else {
if (route is valid) {
DO NOT USE;
}
}

like so:

* If the advertised route's cost is lower than the stored route,
AdvRte offers improvement and SHOULD be used to update the
stored route table entry.

* If the advertised route's cost is the same or greater than the
stored route, and the stored route is valid, the incoming
information does not offer any improvement and SHOULD NOT be
used to update the stored route table entry.
* If the advertised route's cost is the same or greater than the
stored route, but the stored route's state is Invalid,
continue processing to see whether there is a danger of a
routing loop.

Having the positive check first would be similar to the order of the checks regarding stale routes, and grouping the other two checks together is easier to read, imo.
What do you think?

Regards,
Lotte


Other related posts: