Subject: Re: [Roll] question about broken link detection

From: "Reddy, Joseph" <[email-masked]>
Date: Mon, 3 Jan 2011 18:10:44 -0600

Hi Jorjeta,

Option 1 will work but at the expense of lot of ( unnecessary ) traffic

Option 2 has less overhead but may not work in all networks. 
The DIO transmissions can be very rare in a static network, so lack of DIO's may not be a practical method to detect broken downward paths. 
If there is upsteam traffic and missing ack's , that is certainly reason to update the DAO parent set and send updated info to the root. But, of course, this cannot be guaranteed in all networks.

The reliable detection of broken downward paths can only be done by the upstream node. So it would be nice if there was a way for an upstream node to initiate route repair for a single downward path rather than the entire network. 

-Regards, Joseph

----------------------------------------------------------------------

Hi everyone,

Happy New Year! 

I am trying to understand how RPL deals with broken links in non-storing mode so I wanted to run several scenarios by the group.  When a packet is transmitted downstream and reaches a broken link, e.g., from node A to node B,  and the transmitting node (node A) doesn't get a link layer ack from the downstream next hop (node B) after sending several retransmissions, it can send an ICMP destination unreachable packet to the root.  The root can then try to use other routes it has to the destination or if it doesn't know of any other ones, it can:

1.        Increment its DTSN, triggering all nodes in the DODAG to send it a DAO, at which point the downstream node adjacent to the broken link (node B) will detect that the link to its parent (node A) is broken and will select a new preferred parent (assuming it has other possible parents) and send a DAO.

2.       Wait for the downstream node in the broken link (node B) to detect that its parent (node A) is not reachable

A.      When the downstream node (Node B) observes that it hasn't gotten a DIO from its parent (node A) for a while, and it would select a new preferred parent (assuming it has other possible parents) and send a DAO to the root

B.      If traffic happens to be flowing upstream, the lack of per-hop/link layer acks would indicate the upstream parent (node A) is no longer reachable and a new parent will be selected, and a DAO would be sent to the root.

Are these the options for detecting a broken link when forwarding a packet downstream in non-storing mode?  Is there a preferred mechanism for this?

Thanks!

Jorjeta

---

From: "Jetcheva, Jorjeta" <[email-masked]>
Date: Wed, 5 Jan 2011 15:06:56 -0800

So it seems that at the moment there is no efficient way to perform low-latency broken link repair in the absence of upstream traffic?

Jorjeta

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Reddy, Joseph
Sent: Monday, January 03, 2011 4:11 PM
To: [email-masked]
Subject: Re: [Roll] question about broken link detection

Hi Jorjeta,

-Regards, Joseph

Hi everyone,

Happy New Year! 

Thanks!

Jorjeta
_______________________________________________
Roll mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/roll

---

From: Mukul Goyal <[email-masked]>
Date: Thu, 6 Jan 2011 20:03:21 -0600 (CST)

Hi Jorjeta

As Don and Jerry pointed out, the P2P mechanism can be used to discover "on demand" a new route from a source to a destination. But, the P2P mechanism does not repair an existing DAG. It creates a brand new temporary DAG for the purpose of propagating the discovery message.

Thanks
Mukul

----- Original Message -----
From: "Jorjeta Jetcheva" <[email-masked]>
To: [email-masked]
Sent: Wednesday, January 5, 2011 5:06:56 PM
Subject: Re: [Roll] question about broken link detection

Jorjeta

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Reddy, Joseph
Sent: Monday, January 03, 2011 4:11 PM
To: [email-masked]
Subject: Re: [Roll] question about broken link detection

Hi Jorjeta,

-Regards, Joseph

Hi everyone,

Happy New Year! 

Thanks!

Jorjeta

---

From: "Jetcheva, Jorjeta" <[email-masked]>
Date: Fri, 7 Jan 2011 16:19:32 -0800

Hi everyone,

Thank you for your input. I think that the basic route repair mechanisms should be defined as part of the base RPL protocol.  Perhaps this is another item for the re-chartering to-do list.  Solving this problem should eliminate the need for proactive neighbor adjacency detection mechanisms. 

Jorjeta

-----Original Message-----
From: Mukul Goyal [mailto:[email-masked]] 
Sent: Thursday, January 06, 2011 6:03 PM
To: Jetcheva, Jorjeta
Cc: [email-masked]
Subject: Re: [Roll] question about broken link detection

Hi Jorjeta

Thanks
Mukul

----- Original Message -----
From: "Jorjeta Jetcheva" <[email-masked]>
To: [email-masked]
Sent: Wednesday, January 5, 2011 5:06:56 PM
Subject: Re: [Roll] question about broken link detection

Jorjeta

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Reddy, Joseph
Sent: Monday, January 03, 2011 4:11 PM
To: [email-masked]
Subject: Re: [Roll] question about broken link detection

Hi Jorjeta,

-Regards, Joseph

Hi everyone,

Happy New Year! 

Thanks!

Jorjeta

---

From: Mukul Goyal <[email-masked]>
Date: Fri, 7 Jan 2011 21:58:16 -0600 (CST)

Hi Jorjeta

If a node has multiple DAO parents, the root (in non-storing mode) would be able to direct the downward traffic to the node along an alternate route. The problem is when a node has just one DAO parent, the link between the two no longer works and the node does not realize this. 

In case the problem is considered worth resolving, the node could be prodded from below (ie by a child) to select an alternate parent and regenerate its DAO. Obviously, the node can not be prodded from above (by a parent) since its only parent probably cant talk to it. Also, since the node is going to ignore DIOs from a child, perhaps the prodding could be done by a DIS or a new message to be defined. The child itself could be prodded to prod the node using a unicast message (to be defined) from the root.

Ofcourse, the scheme would fail if the node does not have a child. May be in that case a global call for DAOs (by incrementing the DTSN) is in order.

Just my thoughts.

Thanks
Mukul

----- Original Message -----
From: "Jorjeta Jetcheva" <[email-masked]>
To: "Mukul Goyal" <[email-masked]>
Cc: [email-masked]
Sent: Friday, January 7, 2011 6:19:32 PM
Subject: RE: [Roll] question about broken link detection

Hi everyone,

Jorjeta

-----Original Message-----
From: Mukul Goyal [mailto:[email-masked]] 
Sent: Thursday, January 06, 2011 6:03 PM
To: Jetcheva, Jorjeta
Cc: [email-masked]
Subject: Re: [Roll] question about broken link detection

Hi Jorjeta

Thanks
Mukul

----- Original Message -----
From: "Jorjeta Jetcheva" <[email-masked]>
To: [email-masked]
Sent: Wednesday, January 5, 2011 5:06:56 PM
Subject: Re: [Roll] question about broken link detection

Jorjeta

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Reddy, Joseph
Sent: Monday, January 03, 2011 4:11 PM
To: [email-masked]
Subject: Re: [Roll] question about broken link detection

Hi Jorjeta,

-Regards, Joseph

Hi everyone,

Happy New Year! 

Thanks!

Jorjeta

---

From: Mukul Goyal <[email-masked]>
Date: Fri, 7 Jan 2011 22:02:44 -0600 (CST)

> Ofcourse, the scheme would fail if the node does not have a child.

Or if the root can't reach the child without passing through the node first.

Thanks
Mukul

----- Original Message -----
From: "Mukul Goyal" <[email-masked]>
To: "Jorjeta Jetcheva" <[email-masked]>
Cc: [email-masked]
Sent: Friday, January 7, 2011 9:58:16 PM
Subject: Re: [Roll] question about broken link detection

Hi Jorjeta

Just my thoughts.

Thanks
Mukul

----- Original Message -----
From: "Jorjeta Jetcheva" <[email-masked]>
To: "Mukul Goyal" <[email-masked]>
Cc: [email-masked]
Sent: Friday, January 7, 2011 6:19:32 PM
Subject: RE: [Roll] question about broken link detection

Hi everyone,

Jorjeta

-----Original Message-----
From: Mukul Goyal [mailto:[email-masked]] 
Sent: Thursday, January 06, 2011 6:03 PM
To: Jetcheva, Jorjeta
Cc: [email-masked]
Subject: Re: [Roll] question about broken link detection

Hi Jorjeta

Thanks
Mukul

----- Original Message -----
From: "Jorjeta Jetcheva" <[email-masked]>
To: [email-masked]
Sent: Wednesday, January 5, 2011 5:06:56 PM
Subject: Re: [Roll] question about broken link detection

Jorjeta

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Reddy, Joseph
Sent: Monday, January 03, 2011 4:11 PM
To: [email-masked]
Subject: Re: [Roll] question about broken link detection

Hi Jorjeta,

-Regards, Joseph

Hi everyone,

Happy New Year! 

Thanks!

Jorjeta

---

From: Michael Richardson <[email-masked]>
Date: Mon, 10 Jan 2011 12:11:48 -0500

>>>>> "Mukul" == Mukul Goyal <[email-masked]> writes:
    Mukul> If a node has multiple DAO parents, the root (in non-storing
    Mukul> mode) would be able to direct the downward traffic to the
    Mukul> node along an alternate route. The problem is when a node has
    Mukul> just one DAO parent, the link between the two no longer works
    Mukul> and the node does not realize this.  

Assuming that the root knows that the origin path is broken.
Is it acceptable for the root to round-robin among paths that are
otherwise equal?

    Mukul> In case the problem is considered worth resolving, the node
    Mukul> could be prodded from below (ie by a child) to select an
    Mukul> alternate parent and regenerate its DAO. Obviously, the node
    Mukul> can not be prodded from above (by a parent) since its only
    Mukul> parent probably cant talk to it. Also, since the node is
    Mukul> going to ignore DIOs from a child, perhaps the prodding could
    Mukul> be done by a DIS or a new message to be defined. The child
    Mukul> itself could be prodded to prod the node using a unicast
    Mukul> message (to be defined) from the root. 

I think I get you, but this is one of those cases where an animated
slide helps a lot...

My reading of:

    Mukul> As Don and Jerry pointed out, the P2P mechanism can be used
    Mukul> to discover "on demand" a new route from a source to a
    Mukul> destination. But, the P2P mechanism does not repair an
    Mukul> existing DAG. It creates a brand new temporary DAG for the
    Mukul> purpose of propagating the discovery message. 

is that essentially if there is a child who expects to receive
unidirectional traffic on a sporadic basis, that it needs to create a
new DAG, the "how-to-reach-node-X" DAG.

While one might think that arrays of sensors (P2MP) systems would be
mostly poll by central systems, based upon my understanding of CORE,
that the sensor can come up and asynchronously transit data to a
gateway.  In that application state, I think this isn't a problem.

In the "where the light bulb I'm trying to control" problem, I think
that there is a real problem, and I don't think the
"how-to-reach-light-bulb-X" DAG scales very well.

-- 
]       He who is tired of Weird Al is tired of life!           |  firewalls  [
]   Michael Richardson, Sandelman Software Works, Ottawa, ON    |net architect[
] [email-masked] http://www.sandelman.ottawa.on.ca/ |device driver[
   Kyoto Plus: watch the video <http://www.youtube.com/watch?v=kzx1ycLXQSE>
	               then sign the petition.

---

From: Mukul Goyal <[email-masked]>
Date: Mon, 10 Jan 2011 17:30:42 -0600 (CST)

>new DAG, the "how-to-reach-node-X" DAG.

You are making the P2P mechanism sound like a proactive mechanism, whereas it is a reactive mechanism. It discovers routes between two nodes "on demand". There is certainly a cost associated with this route discovery (the control messages generated during the temporary DAG formation). This cost can be controlled/limited by using the propagation constraints to restrict the scope of route discovery as well as by carefully choosing the trickle parameters. As mentioned in the Applicability section in the draft, one has to take in account both costs and benefits (routes hopefully better than what are available under global DAGs) before using the P2P mechanism. If the two nodes in question are expected to be nearby, using the P2P mechanism makes sense and would probably result in better routes (than global DAG based routes). If the nodes are far apart, the discovered direct routes probably wont be much better than global DAG based routes and hence it does not make sense to use the P2P mechanism in such cases.

Thanks
Mukul