Subject: [6tisch] [minimal] rank calculation when numTxACK is zero

From: Tengfei Chang <[email-masked]>
Date: Sat, 28 May 2016 04:48:34 +0200

Dear all,

The OpenWSN community recently has a question related to the calculation of
RANK in minimal draft. and I would like share with you.

In minimal draft, the link quality is measured by ETX=(numTX/numTXAck).

1. At the beginning of the network, numTxACK is zero. we need to give a
default value of ETX for this case in the draft.
2. what the value should be?
In OpenWSN, this value is set to 15, which assume the link is very bad.
This assumption would cause an issue in following example case.

*EXAMPLE:*
Image there are four nodes in the network, node 1 is the dagroot.
The topology of the network is linear at beginning.

Node 1 <- Node 2 <- Node 3 <- Node 4

After a while, four node get their own RANK. Let assume numTx and numTxACK
are 100 and 75 as the same with the example in minimal draft.
Node    RANK
1          255
2          768
3         1280
4         1792
https://tools.ietf.org/html/draft-ietf-6tisch-minimal-15#page-17

Then we move node 4 towards node 2 so that node 2 will be one neighbor of
node 4.  when node 4 heard the DIO of node 2, because node 4 doesn't have
any packet send to node 2, so the numTxACK to node 2 is 0.
If we use 15 as the default ETX value, then RANK calculated based on node 2
is
768 + (3*15-2)*256=11776
This is much larger than 1792 which is calculated based on node 3's rank.
So node 4 will still stick to node 3 as its parent.
Also since there will be no packet send to node 2 from node 4, the numTxACK
will keep to zero.

If the link quality from node 4 to node 2 is the same with other links',
 apparently, node 2 has a shorter path to node 1 then node 3.

So Here are the proposal:
1  define a default linkcost value (ETX) for the case when numTxACK is zero
2. set its value to 1, which assumes the link quality (ETX) is 1,

What do you think?

Tengfei

-- 
Chang Tengfei,
Pre-Postdoctoral Research Engineer, Inria

---

From: Fabrice Theoleyre <[email-masked]>
Date: Sat, 28 May 2016 09:24:20 +0200

Dear Tengfei,

Thank you Tengfei for pointing out this problem. 

However, it may perform poorly in dense networks: a node has to test iteratively each neighbor.

Let me describe what I imagine:
-> a node selects one neighbor P as parent (default ETX = 1)
-> after sending many packets, the ETX of P value is readjusted (probably not 1, let’s assume 1.1).
-> other (non tested) neighbors have a default value of 1 -> the node changes its parent. 

In conclusion, RPL may take a long time before converging. Did I misunderstand something? 

Both solutions (default ETX of 15 and 1) seem presenting drawbacks. We may use a default ETX value which represents a good (but not perfect) radio link. In other words, we should not test other neighbors if the ETX of our parent is currently over this threshold value. 
For instance, is an ETX of 1.5 reasonable? (PDR = 66%)

Best regards,
Fabrice

> Le 28 mai 2016 à 04:48, Tengfei Chang <[email-masked]> a écrit :
> 
> Dear all,
> 
> The OpenWSN community recently has a question related to the calculation of RANK in minimal draft. and I would like share with you. 
> 
> 1. At the beginning of the network, numTxACK is zero. we need to give a default value of ETX for this case in the draft.
> In OpenWSN, this value is set to 15, which assume the link is very bad. This assumption would cause an issue in following example case.
> 
> EXAMPLE:
> After a while, four node get their own RANK. Let assume numTx and numTxACK are 100 and 75 as the same with the example in minimal draft. 
> Node    RANK
> 1          255
> 2          768
> 3         1280
> 4         1792
> https://tools.ietf.org/html/draft-ietf-6tisch-minimal-15#page-17 <https://tools.ietf.org/html/draft-ietf-6tisch-minimal-15#page-17>
> 
> Then we move node 4 towards node 2 so that node 2 will be one neighbor of node 4.  when node 4 heard the DIO of node 2, because node 4 doesn't have any packet send to node 2, so the numTxACK to node 2 is 0.
> If we use 15 as the default ETX value, then RANK calculated based on node 2 is 
> 768 + (3*15-2)*256=11776
> This is much larger than 1792 which is calculated based on node 3's rank. So node 4 will still stick to node 3 as its parent. 
> Also since there will be no packet send to node 2 from node 4, the numTxACK will keep to zero.
> 
> If the link quality from node 4 to node 2 is the same with other links',  apparently, node 2 has a shorter path to node 1 then node 3.
> 
> _______________________________________________
> 6tisch mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/6tisch

---

From: Tengfei Chang <[email-masked]>
Date: Mon, 30 May 2016 11:37:14 +0200

Dear Fabrice,

Yes, I agree that both ETX of 15 and 1 are not appropriate.
An ETX threshold value should be a good idea to avoid the cases that parent
frequently changes or not change at all.

Thanks for the good advice!

Regard,
Tengfei

On Sat, May 28, 2016 at 9:24 AM, Fabrice Theoleyre <[email-masked]>
wrote:

> Both solutions (default ETX of 15 and 1) seem presenting drawbacks. We may
> use a default ETX value which represents a good (but not perfect) radio
> link. In other words, we should not test other neighbors if the ETX of our
> parent is currently over this threshold value.
> The OpenWSN community recently has a question related to the calculation
> of RANK in minimal draft. and I would like share with you.
>

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Mon, 30 May 2016 15:02:36 +0000

Hello Tengfei

We have an objective function, and that can be more subtle than a plain calculation.

For instance: another way would be to start from something you get on a first packet, like an informed guess of an ETX based on LQI/RSSI, and migrate to ETX after enough packets are exchanged.

Cheers,

Pascal

From: 6tisch [mailto:[email-masked]] On Behalf Of Tengfei Chang
Sent: lundi 30 mai 2016 11:37
To: Fabrice Theoleyre <[email-masked]>
Cc: [email-masked]
Subject: Re: [6tisch] [minimal] rank calculation when numTxACK is zero

Dear Fabrice,

Yes, I agree that both ETX of 15 and 1 are not appropriate.
An ETX threshold value should be a good idea to avoid the cases that parent frequently changes or not change at all.

Regard,
Tengfei

On Sat, May 28, 2016 at 9:24 AM, Fabrice Theoleyre <[email-masked]<mailto:[email-masked]>> wrote:
Dear Tengfei,

Best regards,
Fabrice

Le 28 mai 2016 à 04:48, Tengfei Chang <[email-masked]<mailto:[email-masked]>> a écrit :

Dear all,

EXAMPLE:

What do you think?

Tengfei

--
Chang Tengfei,
Pre-Postdoctoral Research Engineer, Inria
_______________________________________________
6tisch mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/6tisch