Subject: [Roll] Transit vs. Target in P DAO

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Tue, 22 Sep 2020 11:05:09 +0000

Dear all ;

Say we are building a serial path using P DAO: in that case,  we are building a tunnel from the Track Ingress to the Track Egress, where the Track is signaled in the packet by the local RPLInstanceID in the RPI and the destination IPv6 address. The outer header may also have a SRH in case of non storing P DAO.

In the current version of the P DAO draft we use a RPL Target Option (RTO) to signal the Track Egress and the new Via options (CMOs) to indicate the hops. But say we do not want to reach the Tunnel egress but one of its children or siblings. How can we signal that these guys are reachable over the tunnel?

Proposal A)

If we want to be able to signal that, it could be more consistent with RPL to use:
- one or more RTOs to indicate the targets of the route, can be any of the children and siblings
- Exactly one Transit Information Option (TIO) to indicate the tunnel egress
- then one VIO or one or more SRVIOs (as we currently do)

The result would be that the Track terminates at the "Parent" indicated in the TIO but can be used to reach any of the children and siblings indicates as targets

Proposal B)

Maybe we want to signal that only certain DetNet Flows should be placed in the Track. In that case, The RTO is not sufficient and we'd need the 6tuple. If we take that path, we'd need to create a new Flow option that is a Flow descriptor, in which case we'd get
- one or more Flow Options to indicate which flows  are encapsulated in the Track
- Exactly one RTO  (as we currently do) OR Exactly one TIO (as in Proposal A) to indicate the tunnel egress
- then one VIO or one or more SRVIOs (as we currently do)

What do you guys think?

Pascal

---

From: Michael Richardson <[email-masked]>
Date: Tue, 22 Sep 2020 11:28:14 -0400

> Maybe we want to signal that only certain DetNet Flows should be placed
    > in the Track. In that case, The RTO is not sufficient and we'd need the
    > 6tuple. If we take that path, we'd need to create a new Flow option
    > that is a Flow descriptor, in which case we'd get

This seems to pull in requirements that maybe are not well understood by
everyone.
It sounds like it is a more general solution which can be reduced somehow to
proposal (A)?

    > What do you guys think?

I don't know.

--
]               Never tell me the odds!                 | ipv6 mesh networks [
]   Michael Richardson, Sandelman Software Works        |    IoT architect   [
]     [email-masked]  http://www.sandelman.ca/        |   ruby on rails    [

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Tue, 22 Sep 2020 15:40:03 +0000

Best is I make some pictures for the next interim; it’s not easy to explain with just words...

Regards,

Pascal

> Le 22 sept. 2020 à 17:35, Michael Richardson <[email-masked]> a écrit :
> 
> 
> _______________________________________________
> Roll mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/roll

---

From: Rahul Jadhav <[email-masked]>
Date: Wed, 23 Sep 2020 20:46:21 +0530

Hi Pascal,

I have a few questions in the context (with respect to the problem
statement, not proposals):

Currently, the draft allows the Root to send multiple RTOs which could
contain the egress target and all the (immediate) children and siblings.
The VIO option list would contain all the hops on which to install these
target routes. Doesn't this already handle the problem statement you
mentioned? Using this the root can install routers not only to the egress
but also to its immediate children, isn't it?

Is the point to not install the route on behalf of egress but only for the
egress's children/siblings? Is this the objective to achieve?
It would be great to have a sample topology to base this discussion on.

One another point: The draft talks about "serial Track" .. is that
synonymous to the "serial path" you mentioned in your mail. Does serial
Track indicate a track with a single projected segment? Would be better to
have this term described in the terminology section in the doc. Thanks.

Best,
Rahul

On Tue, 22 Sep 2020 at 16:35, Pascal Thubert (pthubert) <pthubert=
[email-masked]> wrote:

> Dear all ;
>
>
>
> Say we are building a serial path using P DAO: in that case,  we are
> building a tunnel from the Track Ingress to the Track Egress, where the
> Track is signaled in the packet by the local RPLInstanceID in the RPI and
> the destination IPv6 address. The outer header may also have a SRH in case
> of non storing P DAO.
>
>
>
> In the current version of the P DAO draft we use a RPL Target Option (RTO)
> to signal the Track Egress and the new Via options (CMOs) to indicate the
> hops. But say we do not want to reach the Tunnel egress but one of its
> children or siblings. How can we signal that these guys are reachable over
> the tunnel?
>
>
>
> Proposal A)
>
>
>
> The result would be that the Track terminates at the “Parent” indicated in
> the TIO but can be used to reach any of the children and siblings indicates
> as targets
>
>
>
> Proposal B)
>
>
>
> Maybe we want to signal that only certain DetNet Flows should be placed in
> the Track. In that case, The RTO is not sufficient and we’d need the
> 6tuple. If we take that path, we’d need to create a new Flow option that is
> a Flow descriptor, in which case we’d get
>

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Wed, 23 Sep 2020 16:39:12 +0000

Hello Rahul

> Currently, the draft allows the Root to send multiple RTOs which could contain the egress target and all the (immediate) children and siblings. The VIO option list would contain all the hops on which to install these target routes. Doesn't this already handle the problem statement you mentioned? Using this the root can install routers not only to the egress but also to its immediate children, isn't it?

I thought so, but I felt there was something wring and digging I found it.

> Is the point to not install the route on behalf of egress but only for the egress's children/siblings? Is this the objective to achieve?

Ye, we’d like to be able to use the Track to reach siblings wouldn’t we? If so let’s look at signaling and encapsulation:

The “Track” that P DAO sets up is a path between a pair of nodes, call them I and E like ingress and egress. Currently E is indicated in an RTO and the Hops in an RPO (VIO or SRVIO).

If I talks to E, it can do like we do in useofrplinfo for Root to RAN, that is create a packet with destination (that is E), an RPI with the local RPL instance of the Track (rooted at E), and an SRH if this is a SR VIO. No encaps.

Now say that we want node I to send its packets to one of E’s sibling, S over the Track to E. Still following useofrplinfo, node I needs to encaps the packet I-> S in a packet I->E to add the RPI with the local RPL instance ID that is taken from E’s name space, and possibly an SRH.

We also see that signaling that we build a Track I->E (which comes as a aside effect with a route to E) is not the same thing as signaling a route to S via the Track before.
There could be many S nodes reachable via the Track to E.

Thus my proposal to encode S in RTO, E in TIO, and then the SRVIO. There could be multiple RTOs as usual, for all the siblings and children of E that we want to reach through the tunnel, but only one TIO since the track (tunnel) has only one egress.

So we’d get RTO*, TIO, (VIO | SRVIO*) . Whether E is implicitly a destination or we need an RTO for E as well is to be debated, see below.

It can get worse: say that a child of I sends a packet to E. Following the default route, that packet reaches I. I needs to decide whether to use the default topology (via the Root) or the Track. We have not really defined how that is programmed in I, but the current text says that the P DAO routes have a better admin distance, so current text says we use the Track. With DetNet and RAW, it’s flows that get routed over the Track, signaled by a 6tuple (https://datatracker.ietf.org/doc/html/draft-ietf-detnet-ip-07#section-3). So really we’d need another option that carries the 6tuple (say  a flow info option, FIO) and use it as we use the RTOs to signal which flows are routed in the Track.

In that case the P DAO would have (FIO|RTO)*, TIO, (VIO | SRVIO*)

Did I make the problem more clear?

> One another point: The draft talks about "serial Track" .. is that synonymous to the "serial path" you mentioned in your mail. Does serial Track indicate a track with a single projected segment? Would be better to have this term described in the terminology section in the doc. Thanks.

Yes, I should use only one of the two. 6TiSCH defines serial and complex Tracks (see https://datatracker.ietf.org/doc/html/draft-ietf-6tisch-architecture-29#section-4.5.2). OK that I align?
“

   A Projected Route is a serial path that may represent the end-to-end
   route or only a Segment in a complex Track, in which case multiple
   Projected Routes are installed with the same tuple (Target address,
   TrackID) and a different Segment ID each.

…

   An RPO indicates a Projected Route that can be a serial Track in full

   or a Segment of a more complex Track.  In Non-Storing Mode, multiple

   RPO may be placed after a same Target Option to reflect different

   Segments originated at this node.  The Track is identified by a

   TrackID that is a Local RPLInstanceID to the Target of the Track.

“
Keep safe;

Pascal

From: Roll <[email-masked]> On Behalf Of Rahul Jadhav
Sent: mercredi 23 septembre 2020 17:16
To: Routing Over Low power and Lossy networks <[email-masked]>
Subject: Re: [Roll] Transit vs. Target in P DAO

Hi Pascal,

I have a few questions in the context (with respect to the problem statement, not proposals):

Currently, the draft allows the Root to send multiple RTOs which could contain the egress target and all the (immediate) children and siblings. The VIO option list would contain all the hops on which to install these target routes. Doesn't this already handle the problem statement you mentioned? Using this the root can install routers not only to the egress but also to its immediate children, isn't it?

Is the point to not install the route on behalf of egress but only for the egress's children/siblings? Is this the objective to achieve?
It would be great to have a sample topology to base this discussion on.

One another point: The draft talks about "serial Track" .. is that synonymous to the "serial path" you mentioned in your mail. Does serial Track indicate a track with a single projected segment? Would be better to have this term described in the terminology section in the doc. Thanks.

Best,
Rahul

On Tue, 22 Sep 2020 at 16:35, Pascal Thubert (pthubert) <pthubert=[email-masked]<mailto:[email-masked]>> wrote:
Dear all ;

Proposal A)

The result would be that the Track terminates at the “Parent” indicated in the TIO but can be used to reach any of the children and siblings indicates as targets

Proposal B)

Maybe we want to signal that only certain DetNet Flows should be placed in the Track. In that case, The RTO is not sufficient and we’d need the 6tuple. If we take that path, we’d need to create a new Flow option that is a Flow descriptor, in which case we’d get
- one or more Flow Options to indicate which flows  are encapsulated in the Track
- Exactly one RTO  (as we currently do) OR Exactly one TIO (as in Proposal A) to indicate the tunnel egress
- then one VIO or one or more SRVIOs (as we currently do)

What do you guys think?

Pascal

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

---

From: Rahul Jadhav <[email-masked]>
Date: Fri, 25 Sep 2020 00:07:53 +0530

Thanks Pascal for the detailed example. The problem stmt is now clear to me and the need for TIO with parent address of egress node.
Few comments inline.

Best,
Rahul

> We also see that signaling that we build a Track I->E (which comes as a aside effect with a route to E) is not the same thing as signaling a route to S via the Track before.

[RJ] This was my assumption which went wrong.
I not get that, to send a packet to destination S via E, an encapsulation is needed. The outer destination is E and inner is S. For node I to create this encapsulation it needs to know that node E is the egress for S. The proposed TIO(E) option identifies this.

> Did I make the problem more clear?
[RJ] Yep. After reading through detnet draft, I now understand the need for Flow Info Option. Need to re-read the draft considering this.

…

“
[RJ] Yes, we can align to this.
> On Tue, 22 Sep 2020 at 16:35, Pascal Thubert (pthubert) <pthubert=[email-masked] (mailto:[email-masked])> wrote:
> > Dear all ;
> >
> >
> > [email-masked] (mailto:[email-masked])

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Fri, 25 Sep 2020 07:56:11 +0000

Hello Rahul,

Yes, this gets quite a lot of things to put together but in the end it is not so complicated if you have a picture to look at.
I’ll make some for the interim.

My to do’s on this draft for the next version:

- Align the “serial” vs. “Complex” Track terminology between 6TiSCH, RAW n’ ROLL.

- Create an initial format for FIO based in DetNet.
  -> Do you see any more field we’d like to see in there, e.g., the capability to inject a Track in another?

- Describe that the TIO points on the tunnel egress, and that routes via the tunnel are signaled as targets in RTOs
  -> a side effect is that the sequence and lifetimes are now taken from the TIO so they are not needed in the (SR)VIO. This makes good sense IMHO.
  -> should the route to the egress be automatically added? There could be times where only some flows should go there. Maybe we could use a flag in the TIO to signal it?

Many thanks for your help!

Pascal

From: Roll <[email-masked]> On Behalf Of Rahul Jadhav
Sent: jeudi 24 septembre 2020 20:38
To: Routing Over Low power and Lossy networks <[email-masked]>
Cc: Routing Over Low power and Lossy networks <[email-masked]>
Subject: Re: [Roll] Transit vs. Target in P DAO

Best,
Rahul

On Sep 23 2020, at 10:09 pm, Pascal Thubert (pthubert) <pthubert=[email-masked]<mailto:pthubert=[email-masked]>> wrote:

Hello Rahul

“

…

“

Keep safe;

Pascal

From: Roll <[email-masked]<mailto:[email-masked]>> On Behalf Of Rahul Jadhav
Sent: mercredi 23 septembre 2020 17:16
To: Routing Over Low power and Lossy networks <[email-masked]<mailto:[email-masked]>>
Subject: Re: [Roll] Transit vs. Target in P DAO

Hi Pascal,

Best,
Rahul

Proposal A)

Proposal B)

What do you guys think?

Pascal

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Fri, 25 Sep 2020 15:59:03 +0000

Hello again Rahul and all

The Track Egress is the Root of DODAG that we build and we call  it a Track.
For a Track, the RPLInstanceID is a local one, that is associated to the Track Egress, and we call it a TrackID.

Now, trying to make work the below, it seems better that instead of using a TIO, we could signal the Egress and TrackID in the DAO itself as follows:

        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    TrackID    |K|D|   Flags   |   Reserved    | DAOSequence   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       +                                                               +
       |                                                               |
       +                        Track Egress                           +
       |                                                               |
       +                                                               +
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   Option(s)...
       +-+-+-+-+-+-+-+-+

                      Figure 16: The DAO Base Object

This seems to make more sense than using a TIO.

Works?

Pascal

From: Pascal Thubert (pthubert)
Sent: vendredi 25 septembre 2020 09:56
To: Routing Over Low power and Lossy networks <[email-masked]>
Subject: RE: [Roll] Transit vs. Target in P DAO

Hello Rahul,

Pascal

Cc: Routing Over Low power and Lossy networks <[email-masked]<mailto:[email-masked]>>

Best,
Rahul

Hello Rahul

“

…

“

Keep safe;

Pascal

Hi Pascal,

Best,
Rahul

Proposal A)

Proposal B)

What do you guys think?

Pascal

---

From: Rahul Jadhav <[email-masked]>
Date: Fri, 25 Sep 2020 23:46:14 +0530

Very interesting!

But, wouldn't this mandate that only Global DODAG roots can initiate a P-DAO request?
Isn't it currently possible for a local DODAG (with local RPLInstanceID) root to initiate a P-DAO request? If yes, then the DAO base object cannot be used as mentioned by you.
I didn't find any mandate in DAO projection draft that local DODAG roots cannot initiate a P-DAO.
Regards,
Rahul
On Sep 25 2020, at 9:29 pm, Pascal Thubert (pthubert) <pthubert=[email-masked]> wrote:
> From: Roll <[email-masked] (mailto:[email-masked])> On Behalf Of Rahul Jadhav
> To: Routing Over Low power and Lossy networks <[email-masked] (mailto:[email-masked])>
> Cc: Routing Over Low power and Lossy networks <[email-masked] (mailto:[email-masked])>
> On Sep 23 2020, at 10:09 pm, Pascal Thubert (pthubert) <pthubert=[email-masked] (mailto:pthubert=[email-masked])> wrote:
> >
> >
> > Hello Rahul
> >
> >
> >
> >
> > From: Roll <[email-masked] (mailto:[email-masked])> On Behalf Of Rahul Jadhav
> > To: Routing Over Low power and Lossy networks <[email-masked] (mailto:[email-masked])>
> >

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Fri, 25 Sep 2020 20:15:22 +0000

Hello Rahul

As specified today the PDR is issued by the Track Ingress but if you think relevant we may add something to the PDR so that any other node asks for it as well;

Any suggestion?

Pascal

Le 25 sept. 2020 à 20:16, Rahul Jadhav <[email-masked]> a écrit :

Very interesting!

Regards,
Rahul

        0                   1                   2                   3

       |                                                               |

       +                                                               +

       |                                                               |

       +                        Track Egress                           +

       |                                                               |

       +                                                               +

       |                                                               |

       |   Option(s)...

       +-+-+-+-+-+-+-+-+

Works?

Pascal

Hello Rahul,

Pascal

Best,
Rahul

Hello Rahul

“

…

“

Keep safe;

Pascal

Hi Pascal,

Best,
Rahul

Proposal A)

Proposal B)

What do you guys think?

Pascal

---

From: Michael Richardson <[email-masked]>
Date: Fri, 25 Sep 2020 18:46:49 -0400

Rahul Jadhav <[email-masked]> wrote:
    > Isn't it currently possible for a local DODAG (with local
    > RPLInstanceID) root to initiate a P-DAO request? If yes, then the DAO
    > base object cannot be used as mentioned by you.

And what about p2p-rpl (RFC6997)?  Is there a place for P-DAO there?

Or maybe I should ask this differently:  doesn't P-DAO allow for cross-DODAG
routing, as arranged by the root?  A sort of PCE?  Does this essentially
eclipse the utility of p2p RPL?

Does this local/global issue affect this?

--
Michael Richardson <[email-masked]>   . o O ( IPv6 IøT consulting )
           Sandelman Software Works Inc, Ottawa and Worldwide

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Sat, 26 Sep 2020 08:04:23 +0000

Hello Michael 

I’m not sure we should mix reactive P2P and SDN. In my personal rainbow they are the red and the violet. I know extremes sometimes meet but we’re already struggling to get the signaling simple and yet powerful enough.

So yes, keeping in mind what you’re saying, in case we can prepare the format for different uses as well, but no, not an objective in the control plane.

Maybe your thoughts are following the same path as ours at RAW. Separate 1) the global control plane knowledge that the Big Root has and that enables to build this local DODAG proactively and in the middle of many others, and 2) the DODAG-local knowledge that the forwarding plane has and that enables to reactively and quickly respond to the changes in radio propagation.

If that’s what lurks in the bottom of your mind then we are on the very same page!

Take care,

Pascal

> Le 26 sept. 2020 à 00:47, Michael Richardson <[email-masked]> a écrit :
> 
>

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Tue, 29 Sep 2020 17:00:47 +0000

Dear all

I published 13 that covers most of the discussion below, so we can talk over it tomorrow at the interim.

I’ll prepare slides so we can discuss:

- the changes
  * P Dao and options format
   * use of RFC 8138
- the simplifications
  * single VIO / SRVIO
  * Strict Storing Mode to avoid loops
- what’s yet to be done
   * FIO

Take care,

Pascal

The IETF datatracker status page for this draft is:

https://datatracker.ietf.org/doc/draft-ietf-roll-dao-projection/

There is also a HTML versions available at:

https://www.ietf.org/id/draft-ietf-roll-dao-projection-13.html

A diff from the previous version is available at:

https://www.ietf.org/rfcdiff?url2=draft-ietf-roll-dao-projection-13

From: Pascal Thubert (pthubert)
Sent: vendredi 25 septembre 2020 17:59
To: 'Routing Over Low power and Lossy networks' <[email-masked]>
Subject: RE: [Roll] Transit vs. Target in P DAO

        0                   1                   2                   3

Works?

Pascal

Hello Rahul,

Pascal

Best,
Rahul

Hello Rahul

“

…

“

Keep safe;

Pascal

Hi Pascal,

Best,
Rahul

Proposal A)

Proposal B)

What do you guys think?

Pascal