Subject: [Roll] Implicit default routes in RPL

From: Ralph Droms <[email-masked]>
Date: Fri, 19 Nov 2010 11:34:21 +0000

Is a DODAG root required to include an RIO with prefix length 0 to indicate that it can act as a default router to any destination outside the RPL Instance, or is that capability implicit?

- Ralph

---

From: Michael Richardson <[email-masked]>
Date: Fri, 19 Nov 2010 09:47:11 -0500

>>>>> "Ralph" == Ralph Droms <[email-masked]> writes:
    Ralph> Is a DODAG root required to include an RIO with prefix length
    Ralph> 0 to indicate that it can act as a default router to any
    Ralph> destination outside the RPL Instance, or is that capability
    Ralph> implicit?

My understanding is that it is not implicit, it must be explicit.
Not all DODAG root's are GROUNDED, and even if they are, they might not
provide reachability to the "world".

-- 
]       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: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Fri, 19 Nov 2010 17:11:38 +0100

Hi Ralph and Michael:

It is explicit in the text that the parents are used as default routers.
The default route is required to go up the DAG till you hit a common
ancestor. This comes with the fact that RPL maintains a minimum set of
states and resort to the default route for whatever is not attached in a
anode's subdag. The default route does not mean that the parents can
reach the whole internet. A RIO might tell you that, or the G bit if the
goal is to reach the internet. Rather, this means that whatever you want
to reach that is not in your subdag can only be reached via the parents.

See section 8 of RPL 15, in particular:

   As mentioned in Section 3.2.8, nodes that decide to join a DODAG MUST
   provision at least one DODAG parent as a default route for the
   associated instance.  This default route enables a packet to be
   forwarded upwards until it eventually hits a common ancestor from
   which it will be routed downwards to the destination.  If the
   destination is not in the DODAG, then the DODAG root may be able to
   forward the packet using connectivity to the outside of the DODAG; if
   it cannot forward the packet outside then the DODAG root has to drop
   it.

But also the text on RIO.

Cheers,

Pascal
http://www.xtranormal.com/watch/7011357/

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] On Behalf
Of
> Michael Richardson
> Sent: Friday, November 19, 2010 3:47 PM
> To: Ralph Droms
> Cc: [email-masked]
> Subject: Re: [Roll] Implicit default routes in RPL
> 
> 
>    Kyoto Plus: watch the video
> <http://www.youtube.com/watch?v=kzx1ycLXQSE>
> 	               then sign the petition.
> _______________________________________________
> Roll mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/roll

---

From: Michael Richardson <[email-masked]>
Date: Fri, 19 Nov 2010 14:14:49 -0500

thank you for the reply, I think we are in violent agreement?
see inline.

>>>>> "Pascal" == Pascal Thubert <(pthubert)" <[email-masked]>> writes:
    Pascal> Hi Ralph and Michael:

    Pascal> It is explicit in the text that the parents are used as
    Pascal> default routers.  The default route is required to go up the
    Pascal> DAG till you hit a common ancestor. This comes with the fact
    Pascal> that RPL maintains a minimum set of states and resort to the
    Pascal> default route for whatever is not attached in a anode's
    Pascal> subdag. The default route does not mean that the parents can
    Pascal> reach the whole internet. A RIO might tell you that, or the
    Pascal> G bit if the goal is to reach the internet. Rather, this
    Pascal> means that whatever you want to reach that is not in your
    Pascal> subdag can only be reached via the parents.

    Pascal> See section 8 of RPL 15, in particular:

    Pascal>    As mentioned in Section 3.2.8, nodes that decide to join
    Pascal> a DODAG MUST provision at least one DODAG parent as a
    Pascal> default route for the associated instance.  This default

yes. I don't associate the words "default route" with a route
to ::/0.   It's the default for the "associated instance", which exists
to fullful a particular set of constraints, etc.
Do we agree here?

So it might be the "default" for getting to 2001:PASC:ALSH::OUSE::/64,
but it's not ::/0.

---

From: Alexandru Petrescu <[email-masked]>
Date: Fri, 19 Nov 2010 21:20:13 +0100

Le 19/11/2010 20:14, Michael Richardson a écrit :
>
> thank you for the reply, I think we are in violent agreement? see
> inline.
>
>>>>>> "Pascal" == Pascal
>>>>>> Thubert<(pthubert)"<[email-masked]>> writes:
> yes. I don't associate the words "default route" with a route to
> ::/0.

That is conversationally wrong.  In conversation (and in
implemementation) one _should_ understand a default route as a ::/0
route, as a certain RFC points out, and as very long discussions and
implementations agreed to.

I am not the kind of person to correct others whatsoever, it is just
that when we discuss and we try to understand one another we should use
similar terminology.

The use of the word "default" shoudl have a common meaning here with
respect to routes, otherwise we risk talking for the pleasure of
talking, an endeavour I do appreciate as well.

In the RPL spec the words default route should mean ::/0 and nothing
else, no more, no less.

IMHO,

Alex

> It's the default for the "associated instance", which exists to
> fullful a particular set of constraints, etc. Do we agree here?
>
> So it might be the "default" for getting to
> 2001:PASC:ALSH::OUSE::/64, but it's not ::/0.
>

---

From: Ralph Droms <[email-masked]>
Date: Sat, 20 Nov 2010 17:42:57 -0500

On Nov 19, 2010, at 11:11 AM 11/19/10, Pascal Thubert (pthubert) wrote:

Hi Ralph and Michael:

anode's subdag.

Right.  I understand about the routing infrastructure and the setting of default routes for forwarding "up" traffic.

The default route does not mean that the parents can

OK, so a grounded DAG meets its goal and there is no implicit routing to the Internet if the goal is not explicitly "route traffic to the Internet".  If a grounded DAG, in addition to meeting its goal, can route to the Internet, it would include an RIO with prefix length == 0, right?

How does a RPL mesh node determine the goal for a specific grounded DAG?  I can imagine a RPL mesh node would want to know the goal to choose among DAGs it might join, or to select among DAGs for forwarding specific traffic.

it.

Cheers,

Pascal

- Ralph

-----Original Message-----

Of

Michael Richardson

To: Ralph Droms

Cc: [email-masked]

Ralph> Is a DODAG root required to include an RIO with prefix

length

Ralph> implicit?

Not all DODAG root's are GROUNDED, and even if they are, they might

not

--

]       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[

then sign the petition.

Roll mailing list

[email-masked]

---

From: Ralph Droms <[email-masked]>
Date: Sat, 20 Nov 2010 17:46:58 -0500

Alex - can you give a specific pointer to text in an RFC that defines "default route" as "::/0"?

- Ralph

On Nov 19, 2010, at 3:20 PM 11/19/10, Alexandru Petrescu wrote:

inline.

"Pascal" == Pascal

::/0.

similar terminology.

else, no more, no less.

IMHO,

Alex

Roll mailing list

[email-masked]

---

From: Alexandru Petrescu <[email-masked]>
Date: Sun, 21 Nov 2010 21:10:33 +0100

> "default route" as "::/0"?

Sure, RFC5156 "Special-Use IPv6 Addresses" (Informational) says:
" 2.11.  Default Route

    ::/0 is the default unicast route address."

(a while ago there was discussion and implementations diverging between
  2000::/3 and ::/0 as the default route, but now that RFC clarifies; it
  is for that reason I think it is good to stick to it; on another hand
  it may be that here the talk seems to be more generic about "default"
  routes as something different, not necessarily the IETF default route,
  not necessarily the widely implemented default route, which is
  something difficult to understand).

Alex

>>> Pascal> default routers. The default route is required to go up
>>> the Pascal> DAG till you hit a common ancestor. This comes with
>>> the fact Pascal> that RPL maintains a minimum set of states and
>>> resort to the Pascal> default route for whatever is not attached
>>>  in a anode's Pascal> subdag. The default route does not mean
>>> that the parents can Pascal> reach the whole internet. A RIO
>>> might tell you that, or the Pascal> G bit if the goal is to
>>> reach the internet. Rather, this Pascal> means that whatever you
>>> want to reach that is not in your Pascal> subdag can only be
>>> reached via the parents.
>>>
>>>
>> implemementation) one _should_ understand a default route as a
>> ::/0 route, as a certain RFC points out, and as very long
>> discussions and implementations agreed to.
>>
>> I am not the kind of person to correct others whatsoever, it is
>> just that when we discuss and we try to understand one another we
>> should use similar terminology.
>>
>> The use of the word "default" shoudl have a common meaning here
>> with respect to routes, otherwise we risk talking for the pleasure
>>  of talking, an endeavour I do appreciate as well.
>>
>> In the RPL spec the words default route should mean ::/0 and
>> nothing else, no more, no less.
>>
>> IMHO,
>>
>> Alex
>>
>> _______________________________________________ Roll mailing list
>> [email-masked] https://www.ietf.org/mailman/listinfo/roll
>

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Mon, 22 Nov 2010 10:53:28 +0100

> From: [email-masked] [mailto:[email-masked]]
> Sent: Friday, November 19, 2010 8:15 PM
> To: Pascal Thubert (pthubert)
> Cc: Ralph Droms; [email-masked]

[Pascal] Yes, I think we are : )

>     Pascal> default routers.  The default route is required to go up
the
> So it might be the "default" for getting to 2001:PASC:ALSH::OUSE::/64,
but it's
> not ::/0.

[Pascal] This certainly makes sense to me. What the default route really
does is act as a default in a switch/case statement when no longer match
is found, and does not provide a guarantee that the whole internet is
reachable. For the time being, the RPL base spec does not specify a way
to control the "default" in a RPL instance, but it does not bar that
from being done either. The default "default" is ::/0, so for the rime
being you will probably install ::/0 in the routing table. Further specs
can be expected to come in like an OF with a scoped behavior that
overloads "default" with a lower scope, a ULA domain, or an ISP
aggregation, as you propose above. This can help sorting out instances
when multiple are available for an incoming packet.
 
Best,

Pascal
firewalls  [

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Mon, 22 Nov 2010 13:27:48 +0100

Hi Ralph:

	reach the whole internet. A RIO might tell you that, or the G
bit if the

	goal is to reach the internet. Rather, this means that whatever
you want

	to reach that is not in your subdag can only be reached via the
parents.

OK, so a grounded DAG meets its goal and there is no implicit routing to
the Internet if the goal is not explicitly "route traffic to the
Internet".  If a grounded DAG, in addition to meeting its goal, can
route to the Internet, it would include an RIO with prefix length == 0,
right?

[Pascal] Right. With RPL, a node multiple hops away can select a root
just like with RFC 4191, it would select a default gateway over a
transit network. The preference bits can be used to indicate the
preferred exit for a destination, which for RPL becomes the preferred
DODAG.

How does a RPL mesh node determine the goal for a specific grounded DAG?
I can imagine a RPL mesh node would want to know the goal to choose
among DAGs it might join, or to select among DAGs for forwarding
specific traffic.

[Pascal]  RPL base spec is a generic protocol that is really
instantiated when coupled with an Objective Function and metrics. RPL
base does not use the G bit, but transports it as a generically useful
tool for the OF.

As you figured, the idea is that there can an abstract goal, or
objective, that the OF needs to fulfill, and that only a subset of the
nodes acting as root may do so. An example can be connecting to some
uplink either to the Internet, to a given service provider, etc... A
goal can also be a collection point like an intermediate server in a
Pub/Sub deployment. So, even if it is abstract to RPL base, the meaning
of Grounded must be very explicit in the Objective Function.

Pascal

---

From: Alexandru Petrescu <[email-masked]>
Date: Tue, 23 Nov 2010 10:01:38 +0100

Le 22/11/2010 10:53, Pascal Thubert (pthubert) a écrit :
>> From: [email-masked] [mailto:[email-masked]] Sent: Friday,
>> November 19, 2010 8:15 PM To: Pascal Thubert (pthubert) Cc: Ralph
>> Droms; [email-masked] Subject: Re: [Roll] Implicit default routes
>> in RPL
>>
>>
>>>>>>> Thubert<(pthubert)"<[email-masked]>>
>> writes: Pascal>  Hi Ralph and Michael:
>>
>> ::/0.   It's the default for the "associated instance", which
> exists
>> to fullful a particular set of constraints, etc. Do we agree here?
>>
>> 2001:PASC:ALSH::OUSE::/64,
> but it's
>> not ::/0.
>
> [Pascal] This certainly makes sense to me. What the default route
> really does is act as a default in a switch/case statement when no
> longer match is found, and does not provide a guarantee that the
> whole internet is reachable.

The use of a default route should be guaranteed to reach the Internet.

> For the time being, the RPL base spec does not specify a way to
> control the "default" in a RPL instance, but it does not bar that
> from being done either. The default "default" is ::/0, so for the
> rime being you will probably install ::/0 in the routing table.
> Further specs can be expected to come in like an OF with a scoped
> behavior that overloads "default" with a lower scope, a ULA domain,
> or an ISP aggregation, as you propose above.

I can't imagine specs telling that a default route is something else
than ::/0.

One could invent new terms like 'default default route' or a 'more
particular default route' but I doubt how it could be implemented.

I disagree one could have a default route to ULA domains (not ::/0) or
ISP aggregations (not ::/0), or to 2001:PASC:ALSH::OUSE::/64 (not ::/0);
or I don't understand what you mean.

Alex

> This can help sorting out instances when multiple are available for
> an incoming packet.
>
> Best,
>
> Pascal
>> -- ]       He who is tired of Weird Al is tired of life! |
> firewalls  [
>> 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.