Subject: Re: [Roll] parent ordering

From: Mukul Goyal <[email-masked]>
Date: Wed, 23 Sep 2009 11:45:47 -0500 (CDT)

Thomas,

>There is a concept that keeps coming back, which I think needs to be 
>discussed:
>- in the -01 draft, section 3.3.1.5: "A node must maintain its DAG 
>Parent set such that its most preferred parent from the OCP goals also 
>has the greatest rank value in the DAG parent set."

The statement above conflicts with the other statements in rpl-01.

Here is a quote from section 3.4.1:

" It is important to note that the DAG Rank is not itself a metric,
   although its value is derived from and influenced by the use of
   metrics to select DAG parents and take up a position in the DAG.  In
   other words, routing metrics and OCP (not rank directly) are used to
   determine the DAG structure and consequently the path cost.  The only
   aim of the rank is to inform loop avoidance as explained hereafter."

So, the most preferred parent is simply the parent with highest rank and need not be the parent with best path cost.

I guess DT needs to clarify/correct the text from section 3.3.1.5 you quoted.

>My view of DAG routing is the following. Let's say I am a node. When I 
>participate in a network, I discover my neighbors, their rank (which 
>they tell me in their DIO's), and the cost of the links connecting us 
>(e.g. which L2 tells me, or whatever metric the OCP states). I then 
>calculate, for each neighbor, what my potential rank would be if I chose 
>him as my preferred parent (e.g. by adding his rank to the cost of the 
>link connecting us, or whatever function the OCP states). I end up 
>choosing the minimal potential rank, which I announce as my rank in my 
>DIOs.

It seems that you are mixing DAG rank with path cost. As per my understanding, I choose my parents based on the path costs (the costs they advertized in their DIOs + my cost to them) and pick the parent with highest DAG rank (which is solely for loop avoidance purpose; although heavily influenced by routing metrics) as my "most preferred" parent. Then I calculate my own DAG rank by adding a step value (between 1 and 16) to the DAG rank of this most preferred parent.

>  When asked to forward a message, I look at my neighbor list, 
>discard the ones which have a larger rank than myself, and try sending 
>the packet to the neighbor which has the lowest rank among all neighbors 
>(my preferred parent). If L2 tells me that failed, I work my way down 
>the list, sending to the neighbor with the second-lowest rank, etc. Of 
>course, every time I hear a DIOs, I update my neighbor's rank 
>accordingly, and recompute mine, if needed.

Again, your understanding seems to be based on using DAG rank as the path cost. I dont recall exactly but, as per my understanding, RPL does not force any particular order for forwarding preference other than that parents should be preferred over siblings.

Thanks
Mukul

---

From: Thomas Watteyne <[email-masked]>
Date: Wed, 23 Sep 2009 17:23:21 -0700

Mukul,

You are absolutely right, I consider "path cost" and "rank" to be pretty 
close concepts. In fact, is there a clear need to differentiate those? 
What would be a case (probably an OCP definition) where rank is *not* 
directly inferred from path cost?

The way I see things is weighted links interconnecting nodes, each of 
which then obtaining a rank by adding/multiplying wights on the way to 
the LBRs so that the closer to the LBR, the lower the rank. With this in 
mind, in your statement:

I choose my parents based on the path costs (the costs they advertized in their DIOs + my cost to them) and pick the parent with highest DAG rank (which is solely for loop avoidance purpose; although heavily influenced by routing metrics) as my "most preferred" parent. Then I calculate my own DAG rank by adding a step value (between 1 and 16) to the DAG rank of this most preferred parent

I don't see why rank and path cost as different concepts. Is there no 
way we could work with only path length, in order to obtain a somewhat 
simpler protocol?

Thanks
Thomas

Mukul Goyal wrote:
> It seems that you are mixing DAG rank with path cost. As per my understanding, I choose my parents based on the path costs (the costs they advertized in their DIOs + my cost to them) and pick the parent with highest DAG rank (which is solely for loop avoidance purpose; although heavily influenced by routing metrics) as my "most preferred" parent. Then I calculate my own DAG rank by adding a step value (between 1 and 16) to the DAG rank of this most preferred parent