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

  • From: Victoria Mercieca <vmercieca0@xxxxxxxxx>
  • To: "aodvv2-discuss@xxxxxxxxxxxxx" <aodvv2-discuss@xxxxxxxxxxxxx>
  • Date: Tue, 14 Apr 2015 11:13:40 +0100

Hi Lotte,

On Tue, Apr 14, 2015 at 9:16 AM, Lotte Steenbrink <
lotte.steenbrink@xxxxxxxxxxxx> wrote:


It does cover all cases (except for the detail that an update that does
not offer a better route and doesn't update an Invalid route SHOULD not,
but not MUST not be used), but imo, it is a bit unclear if used as the only
reference. For the proper definition of “stale”, one has to read the
paragraph above anyway.


That's interesting - should the SHOULD NOT be a MUST NOT? If the cost isn't
better and the current route is valid, there's no point updating. We've got
SHOULD NOT at the moment, but if we did use the new info, first we would
have to check LoopFree. If we make it MUST NOT then we disallow changing
our current route for a poorer one, which makes more sense. I'll do that.


Having a recap in there just seems redundant to me– if the descriptions
above are so long that they need to be recapped, I think we should work on
making them more clear rather than adding more text for clarification.

I think this point was mentioned by someone on the MANET list, when we had
the pseudo-code there too. I'll remove the summary.


This is what this section looks like now (I have moved some stuff around so
the section numbers are different):

7.5.1. Evaluating Route Information

To determine whether the advertised route should be used to update
the routing table, the incoming route information MUST be processed
as follows:

1. Search for a routing table entry (Route) matching AdvRte's
address, prefix length and metric type

* If no route exists, the AdvRte SHOULD be used to update the
routing table.

* If a route exists, continue to Step 2.

2. Compare sequence numbers

* If AdvRte is more recent (AdvRte.SeqNum > Route.SeqNum),
AdvRte MUST be used to update Route.

* If AdvRte is stale (AdvRte.SeqNum < Route.SeqNum), AdvRte MUST
NOT be used to update Route.

* If the sequence numbers are equal, continue to Step 3.

3. Compare route costs

* If AdvRte is less costly (AdvRte.Cost < Route.Metric), it
offers improvement and SHOULD be used to update Route.

* If AdvRte is not less costly (AdvRte.Cost >= Route.Metric),
and Route is valid, AdvRte does not offer any improvement and
MUST NOT be used to update Route.

* If AdvRte is not less costly (AdvRte.Cost >= Route.Metric),
but Route is Invalid, continue to Step 4.

4. Check that AdvRte is safe against routing loops (see Section 6.2)

* If LoopFree(AdvRte, Route) returns FALSE, using the incoming
information might cause a routing loop. AdvRte MUST NOT be
used to update Route.

* If LoopFree(AdvRte, Route) returns TRUE, AdvRte SHOULD be used
to update Route.

If the advertised route SHOULD be used to update the route table,
the procedure in Section 7.5.2 is followed.

7.5.2. Applying Route Updates


What do you think? The grouping of the two "not valid" points didn't work -
it automatically puts the space in.

Regards,
Vicky.

Other related posts: