Subject: [6tisch] MSF Shepherd review

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Mon, 25 Nov 2019 17:42:22 +0000

Dear all

Please find some comments below:

Please migrate to XML2RFC v3. This will save time in the future.

   However, an implementor MAY implement MSF without implementing

   Minimal 6TiSCH Configuration.

This is not helpful without explanations. What is the tradeoff? How does the  network operates in that case?

For example, a Trickle Timer defined in

[RFC6550<https://tools.ietf.org/html/rfc6550>] MAY be applied on DIOs. However, this behavior is

implementation-specific which is out of the scope of MSF.

This is not for this spec to define. RPL already mandates trickle. Suggestion:

For example, the Trickle operation defined in [RFC6206]

is applied on DIO Messages [RFC6550<https://tools.ietf.org/html/rfc6550>]. This behavior is

out of the scope of MSF.

MSF RECOMMENDS the use of 3 slotframes.

Discussion on slotframes and cells comes without an introduction to TSCH.
I'd suggest you add a few words on RFC 7554 appendix A and 6TiSCH architecture section 4.3.5. to introduce those concepts.
They should probably be normative references.

Section 4 has numerous SHOULD. Trouble is, when SHOULD is used, the author SHOULD explain the alternate, what if the SHOULD is not followed.
Sometimes it's quite obvious, like when using random in 4.2. But SHOULD use minimal is less obvious. Please consider adding text after the SHOULDs.

   field it contains, the presence and contents of the IE defined in

   [I-D.richardson-6tisch-join-enhanced-beacon<https://tools.ietf.org/html/draft-ietf-6tisch-msf-08#ref-I-D.richardson-6tisch-join-enhanced-beacon>], or the key used to

   authenticate it.

The reference is now draft-ietf. I agree that it should be normative; no worries the draft is already submitted for publication.
More important: Please move the reference to 6tisch-dtsecurity-zerotouch-join to informational. This is a DOWNREF today and your draft may be stuck in MISSREF in the future.

   After selected a preferred parent, the joined node MUST generate a 6P

Grammar: "After selecting" or "once it has selected" sound better.

Section Section 8<https://tools.ietf.org/html/draft-ietf-6tisch-msf-08#section-8>

The <xref ...> already generates the word "section". If you write it too, it becomes duplicated as above.

For a node, this translates into

   monitoring the current usage of the cells it has to its preferred

   parent:

This is disturbing. MSF should not be used only with preferred parents. The whole game of doing a DODAG is to have and possibly use multiple parents.
A node can for instance send a NSM DAO with multiple transit options to the root. Also, it could be good to clarify that the child manages both directions.
Proposal:

For a node, this translates into

   monitoring the current usage of the cells it has to the parents it uses

   at this point of time for sending and receiving traffic:

Later there a numerous references to "preferred parent" => I'd suggest you use just "selected parent" or "active parent" or  something in that vein.

Cell installed at initial

Not sure this is correct. Maybe "at init time"

It is recommended to set MAX_NUMCELLS value at

   least 4 times than the maximum link traffic load of the network in

   packets per slotframe.

This does not parse. Can you please rephrase?

Section 8 does not try to avoid collisions with autocells. But it's easy to compute the slot offset of autocells for self and parent and avoids those. Why not do that?

Section 16 will require more attention, either now or during secdir review, probably both. You should start now. Think, say, what if an attacker claims many cells to all its neighbors? Can it attack someone's autocells to block him?

Voila!

Pascal as shepherd.

---

From: Tengfei Chang <[email-masked]>
Date: Wed, 27 Nov 2019 21:44:13 +0100

Thanks a lot for the reviewing, I responded inline:

> Please migrate to XML2RFC v3. This will save time in the future.

TC: got it! Will used in version 9.

> the  network operates in that case?

TC: Yes, the sentence is misleading. What we try to say is MSF can work
with other specifications protocols, rather then minimal 6TiSCH
configuration, as long as the protocols gives a way to communicate the EB
and DIO among the network.

> [RFC6550 <https://tools.ietf.org/html/rfc6550>] MAY be applied on DIOs. However, this behavior is
>
> is applied on DIO Messages [RFC6550 <https://tools.ietf.org/html/rfc6550>]. This behavior is
>
> out of the scope of MSF.
>
>
>
> TC: agreed!

> I’d suggest you add a few words on RFC 7554 appendix A and 6TiSCH
> architecture section 4.3.5. to introduce those concepts.
>

TC: I added the following text at beginning of section 2:
            In a TSCH network, time is sliced up into time slots.
            The time slots are grouped as one of more slotframes which
repeat over time.
            The TSCH schedule instructs a node what to do at each time
slots, such as transmit, receive or sleep <xref target="RFC7554"/>.
            In case of a slot to transmit or receive, a channel is assigned
to the time slot.
            The tuple (slot, channel) is indicated as a cell of TSCH
schedule.
            MSF is one of the policies defining how to manage the TSCH
schedule.

>
>
>
>
>
>
>
>
> Section 4 has numerous SHOULD. Trouble is, when SHOULD is used, the author
> SHOULD explain the alternate, what if the SHOULD is not followed.
>
> Sometimes it’s quite obvious, like when using random in 4.2. But SHOULD
> use minimal is less obvious. Please consider adding text after the SHOULDs.
>

TC: agreed!  I have resolved this SHOULD issues in a new version. either
the unnecessaries are removed or alternative explanation is added

>    [I-D.richardson-6tisch-join-enhanced-beacon <https://tools.ietf.org/html/draft-ietf-6tisch-msf-08#ref-I-D.richardson-6tisch-join-enhanced-beacon>], or the key used to
>
>    authenticate it.
>
>
>
> The reference is now draft-ietf.. I agree that it should be normative; no
> worries the draft is already submitted for publication.
>
> More important: Please move the reference to
> 6tisch-dtsecurity-zerotouch-join to informational. This is a DOWNREF today
> and your draft may be stuck in MISSREF in the future.
>

TC: I have updated  *richardson-6tisch-join-enhanced-beacon* to
* ietf-6tisch-enrollment-enhanced-beacon.*
I didn't get it how "*move the reference to
6tisch-dtsecurity-zerotouch-join to informational*" is done in the draft?

> Grammar: “After selecting” or “once it has selected” sound better.
>
>
>
TC: the latter sounds better! Thanks!

>
>
>
>
> Section Section 8 <https://tools.ietf.org/html/draft-ietf-6tisch-msf-08#section-8>
>
>
>
> The <xref …> already generates the word “section”. If you write it too, it
> becomes duplicated as above.
>

TC: agreed!

> This is disturbing. MSF should not be used only with preferred parents.
> The whole game of doing a DODAG is to have and possibly use multiple
> parents.
>
> A node can for instance send a NSM DAO with multiple transit options to
> the root. Also, it could be good to clarify that the child manages both
> directions.
>
> Proposal:
>
>
>
> Later there a numerous references to “preferred parent” => I’d suggest you
> use just “selected parent” or “active parent” or  something in that vein.
>
TC: I think "preferred parent" is same with "selected parent".  it
indicates one preferred parent out of multiple. Isn't it right?

> Not sure this is correct. Maybe “at init time”
>

TC: Applied!

> This does not parse. Can you please rephrase?

TC: it's rephrased as "*It is recommended to set MAX_NUMCELLS value at
least 4x of the maximum link traffic load of the network with unit of
packets per slotframe*."

>
>
>
>
>
>
>
>
> Section 8 does not try to avoid collisions with autocells. But it’s easy
> to compute the slot offset of autocells for self and parent and avoids
> those. Why not do that?
>

TC: agreed! Will apply in the next version.

>
>
>
>
>
>
> Section 16 will require more attention, either now or during secdir
> review, probably both. You should start now. Think, say, what if an
> attacker claims many cells to all its neighbors? Can it attack someone’s
> autocells to block him?
>

TC: That's a good question! It may have a chance to do so. We need discuss
internally on this section.
Thanks for belling ahead!

>
>
>
>
>
>
> Voila!
>
>
>
> Pascal as shepherd.
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> 6tisch mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/6tisch
>

-- 
——————————————————————————————————————

Dr. Tengfei, Chang
Postdoctoral Research Engineer, Inria

www.tchang.org/
——————————————————————————————————————

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Wed, 27 Nov 2019 21:07:27 +0000

Hello Tengfei

Please see below

Le 27 nov. 2019 à 21:44, Tengfei Chang <[email-masked]> a écrit :

On Mon, Nov 25, 2019 at 6:42 PM Pascal Thubert (pthubert) <[email-masked]<mailto:[email-masked]>> wrote:
Dear all

:)

TC: Yes, the sentence is misleading. What we try to say is MSF can work with other specifications protocols, rather then minimal 6TiSCH configuration, as long as the protocols gives a way to communicate the EB and DIO among the network.

Those words in the draft will make me a happy shepherd...

out of the scope of MSF.

TC: agreed!

Discussion on slotframes and cells comes without an introduction to TSCH.
I’d suggest you add a few words on RFC 7554 appendix A and 6TiSCH architecture section 4.3.5. to introduce those concepts.
They should probably be normative references.

TC: I added the following text at beginning of section 2:
            In a TSCH network, time is sliced up into time slots.
            The time slots are grouped as one of more slotframes which repeat over time.
            The TSCH schedule instructs a node what to do at each time slots, such as transmit, receive or sleep <xref target="RFC7554"/>.
            In case of a slot to transmit or receive, a channel is assigned to the time slot.
            The tuple (slot, channel) is indicated as a cell of TSCH schedule.
            MSF is one of the policies defining how to manage the TSCH schedule.

Excellent

Section 4 has numerous SHOULD. Trouble is, when SHOULD is used, the author SHOULD explain the alternate, what if the SHOULD is not followed.
Sometimes it’s quite obvious, like when using random in 4.2. But SHOULD use minimal is less obvious. Please consider adding text after the SHOULDs.

TC: agreed!  I have resolved this SHOULD issues in a new version. either the unnecessaries are removed or alternative explanation is added

I’ll review once you published

   authenticate it.

The reference is now draft-ietf.. I agree that it should be normative; no worries the draft is already submitted for publication.
More important: Please move the reference to 6tisch-dtsecurity-zerotouch-join to informational. This is a DOWNREF today and your draft may be stuck in MISSREF in the future.

TC: I have updated  richardson-6tisch-join-enhanced-beacon to  ietf-6tisch-enrollment-enhanced-beacon.
I didn't get it how "move the reference to 6tisch-dtsecurity-zerotouch-join to informational" is done in the draft?

Sorry I was unclear. The draft is currently listed as a normative reference. This means that MSF will be held forever in miss ref at the RFC editor. Please move the link to the reference in the informational references section.

The <xref …> already generates the word “section”. If you write it too, it becomes duplicated as above.

TC: agreed!

   parent:

Later there a numerous references to “preferred parent” => I’d suggest you use just “selected parent” or “active parent” or  something in that vein.
TC: I think "preferred parent" is same with "selected parent".  it indicates one preferred parent out of multiple. Isn't it right?

My problem is that there’s only one preferred parent, but a node may use several parents for data traffic. This is why we build dodags in the first place.

 I believe that the node may allocate cells with all of those “selected parents” if it likes. The use of “preferred parent” in that text would prevent this.

Please make sure your text does not limit to one parent...

TC: Applied!

   packets per slotframe.

TC: it's rephrased as "It is recommended to set MAX_NUMCELLS value at least 4x of the maximum link traffic load of the network with unit of packets per slotframe."

I still have a hard time

Do you mean “4 times the maximum number of used cells in a slot frame in recent history” ?

Section 8 does not try to avoid collisions with autocells. But it’s easy to compute the slot offset of autocells for self and parent and avoids those. Why not do that?

Section 16 will require more attention, either now or during secdir review, probably both. You should start now. Think, say, what if an attacker claims many cells to all its neighbors? Can it attack someone’s autocells to block him?

TC: That's a good question! It may have a chance to do so. We need discuss internally on this section.
Thanks for belling ahead!

Speaking from experience with secdir. Better be prepared they will be coming for you ; )

Take care

Pascal

Voila!

Pascal as shepherd.

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

Dr. Tengfei, Chang

www.tchang.org/<http://www.tchang.org/>
——————————————————————————————————————

---

From: Tengfei Chang <[email-masked]>
Date: Fri, 29 Nov 2019 16:19:22 +0100

Hi Pascal,

For the preferred parent issue:

When running MSF, the node is deal with one parent at a time out of the
parent set, which we called preferred parent.
It doesn't mean there is only one parent for each nodes.
The node may change its preferred parent to other parent, which responded
in the switching_parent section in MSF.

For the sentence:

It is recommended to set MAX_NUMCELLS value at least 4x of the maximum link
traffic load of the network with unit of packets per slotframe.

The following example helps to understand the meaning:

For example, a 2 packets/slotframe traffic load results an average 4 cells
scheduled, using the value of double number of scheduled cells (which is 8)
as MAX_NUM_CELLS gives a good resolution on cell usage calculation.

Any recommendation on the rephrasing?

Tengfei

On Wed, Nov 27, 2019 at 10:07 PM Pascal Thubert (pthubert) <
[email-masked]> wrote:

>> Section 4 has numerous SHOULD. Trouble is, when SHOULD is used, the
>> author SHOULD explain the alternate, what if the SHOULD is not followed.
>>
> Sorry I was unclear. The draft is currently listed as a normative
> reference. This means that MSF will be held forever in miss ref at the RFC
> editor. Please move the link to the reference in the informational
> references section.
>
>
>>
>>
>>
>>
>>
>> Later there a numerous references to “preferred parent” => I’d suggest
>> you use just “selected parent” or “active parent” or  something in that
>> vein.
>>
> My problem is that there’s only one preferred parent, but a node may use
> several parents for data traffic. This is why we build dodags in the first
> place.
>
>  I believe that the node may allocate cells with all of those “selected
> parents” if it likes. The use of “preferred parent” in that text would
> prevent this.
>

Dr. Tengfei, Chang

www.tchang.org/

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Fri, 29 Nov 2019 15:21:06 +0000

Well my text was a proposal for rephrasing :)

Regards,

Pascal

Le 29 nov. 2019 à 16:19, Tengfei Chang <[email-masked]> a écrit :

Hi Pascal,

When running MSF, the node is deal with one parent at a time out of the parent set, which we called preferred parent.
It doesn't mean there is only one parent for each nodes.
The node may change its preferred parent to other parent, which responded in the switching_parent section in MSF.

For the sentence:

It is recommended to set MAX_NUMCELLS value at least 4x of the maximum link traffic load of the network with unit of packets per slotframe.

For example, a 2 packets/slotframe traffic load results an average 4 cells scheduled, using the value of double number of scheduled cells (which is 8) as MAX_NUM_CELLS gives a good resolution on cell usage calculation.

Tengfei

On Wed, Nov 27, 2019 at 10:07 PM Pascal Thubert (pthubert) <[email-masked]<mailto:[email-masked]>> wrote:
Hello Tengfei

Please see below

Le 27 nov. 2019 à 21:44, Tengfei Chang <[email-masked]<mailto:[email-masked]>> a écrit :

:)

out of the scope of MSF.

TC: agreed!

Excellent

   authenticate it.

TC: agreed!

   parent:

TC: Applied!

   packets per slotframe.

I still have a hard time

Take care

Pascal

Voila!

Pascal as shepherd.

Dr. Tengfei, Chang

Dr. Tengfei, Chang

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Fri, 29 Nov 2019 15:23:17 +0000

Please do not call him preferred parent that’s something specific in RPL, the best parent for forwarding up the dodag.

Why not just say “the parent “ explaining that the 6P protocol can be used in parallel with multiple parents?

Regards,

Pascal

Hi Pascal,

For the sentence:

Tengfei

Please see below

:)

out of the scope of MSF.

TC: agreed!

Excellent

   authenticate it.

TC: agreed!

   parent:

TC: Applied!

   packets per slotframe.

I still have a hard time

Take care

Pascal

Voila!

Pascal as shepherd.

Dr. Tengfei, Chang

Dr. Tengfei, Chang

---

From: Yasuyuki Tanaka <[email-masked]>
Date: Fri, 29 Nov 2019 20:41:23 +0100

Hi Pascal,

pascal> My problem is that there’s only one preferred parent, but a
pascal> node may use several parents for data traffic. This is why we
pascal> build dodags in the first place.
pascal>
pascal> I believe that the node may allocate cells with all of those
pascal> “selected parents” if it likes. The use of “preferred parent”
pascal> in that text would prevent this.

I feel this scenario is outside of the scope of the *minimal*
scheduling function. If I remember correctly, such a case hasn't been
discussed nor evaluated with implementations.

The latest MSF spec may be able to be applied to the multiple parents
case without any modification, or may not. We don't know because we'd
not taken it into account. Regarding the multiple DODAGs case, a
possible solution is having a separate MSF instance per DODAG, using a
different SFID. Another idea is using the Metadata field to associate
a 6P transaction with a DODAG.

In any case, I prefer having "the preferred parent" in the text,
although "parent" sounds like a L3 term. L2 doesn't maintain
parent-child relationships.

My two cents.

Best,
Yatch

On 11/29/2019 4:23 PM, Pascal Thubert (pthubert) wrote:
> Please do not call him preferred parent that’s something specific in 
> RPL, the best parent for forwarding up the dodag.
> 
>> When running MSF, the node is deal with one parent at a time out of 
>> the parent set, which we called preferred parent.
>> The node may change its preferred parent to other parent, which 
>> responded in the switching_parent section in MSF.
>>
>> For the sentence:
>>
>>     It is recommended to set MAX_NUMCELLS value at least 4x of the
>>     maximum link traffic load of the network with unit of packets per
>>     slotframe.
>>
>>
>>     For example, a 2 packets/slotframe traffic load results an average
>>     4 cells scheduled, using the value of double number of scheduled
>>     cells (which is 8) as MAX_NUM_CELLS gives a good resolution on
>>     cell usage calculation.
>>
>> On Wed, Nov 27, 2019 at 10:07 PM Pascal Thubert (pthubert) 
>> <[email-masked] <mailto:[email-masked]>> wrote:
>>
>>     Hello Tengfei
>>
>>
>>     Please see below
>>
>>>     Le 27 nov. 2019 à 21:44, Tengfei Chang <[email-masked]
>>>     <mailto:[email-masked]>> a écrit :
>>>
>>>     
>>>     On Mon, Nov 25, 2019 at 6:42 PM Pascal Thubert (pthubert)
>>>     <[email-masked] <mailto:[email-masked]>> wrote:
>>>
>>>         Dear all____
>>>
>>>         __ __
>>>
>>>         Please find some comments below: ____
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         ____
>>>         __ __
>>>         __ __
>>>         __ __
>>>         ____
>>>            However, an implementor MAY implement MSF without
>>>         implementing____
>>>
>>>            Minimal 6TiSCH Configuration. ____
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         This is not helpful without explanations. What is the
>>>         tradeoff? How does the  network operates in that case?
>>>
>>>
>>>     TC: Yes, the sentence is misleading. What we try to say is MSF
>>>     can work with other specifications protocols, rather then minimal
>>>     6TiSCH configuration, as long as the protocols gives a way to
>>>     communicate the EB and DIO among the network.
>>
>>>         ____
>>>         __ __
>>>         __ __
>>>         __ __
>>>         __ __
>>>         For example, a Trickle Timer defined in____
>>>
>>>         [RFC6550  <https://tools.ietf.org/html/rfc6550>] MAY be applied on DIOs. However, this behavior is____
>>>
>>>         implementation-specific which is out of the scope of MSF.____
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         This is not for this spec to define. RPL already mandates
>>>         trickle. Suggestion:____
>>>
>>>         __ __
>>>
>>>         For example, the Trickle operation defined in [RFC6206]____
>>>
>>>         is applied on DIO Messages [RFC6550  <https://tools.ietf.org/html/rfc6550>]. This behavior is____
>>>
>>>         out of the scope of MSF.____
>>>
>>>         __
>>>
>>>     TC: agreed!
>>>
>>>         __
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         MSF RECOMMENDS the use of 3 slotframes. ____
>>>
>>>         __ __
>>>
>>>         Discussion on slotframes and cells comes without an
>>>         introduction to TSCH. ____
>>>
>>>         I’d suggest you add a few words on RFC 7554 appendix A and
>>>         6TiSCH architecture section 4.3.5. to introduce those
>>>         concepts.____
>>>
>>>                 The TSCH schedule instructs a node what to do at each
>>>     time slots, such as transmit, receive or sleep <xref
>>>     target="RFC7554"/>.
>>>         ____
>>>         __ __
>>>         __ __
>>>         __ __
>>>         __ __
>>>         Section 4 has numerous SHOULD. Trouble is, when SHOULD is
>>>         used, the author SHOULD explain the alternate, what if the
>>>         SHOULD is not followed. ____
>>>
>>>         Sometimes it’s quite obvious, like when using random in 4.2.
>>>         But SHOULD use minimal is less obvious. Please consider
>>>         adding text after the SHOULDs.
>>>
>>>
>>>     TC: agreed!  I have resolved this SHOULD issues in a new version.
>>>     either the unnecessaries are removed or alternative explanation
>>>     is added
>>
>>>         ____
>>>         __ __
>>>         __ __
>>>         __ __
>>>            field it contains, the presence and contents of the IE
>>>         defined in____
>>>
>>>            [I-D.richardson-6tisch-join-enhanced-beacon  <https://tools.ietf.org/html/draft-ietf-6tisch-msf-08#ref-I-D.richardson-6tisch-join-enhanced-beacon>], or the key used to____
>>>
>>>            authenticate it.____
>>>
>>>         __ __
>>>
>>>         The reference is now draft-ietf.. I agree that it should be
>>>         normative; no worries the draft is already submitted for
>>>         publication.____
>>>
>>>         6tisch-dtsecurity-zerotouch-join to informational. This is a
>>>         DOWNREF today and your draft may be stuck in MISSREF in the
>>>         future.
>>>
>>>
>>     reference. This means that MSF will be held forever in miss ref at
>>     the RFC editor. Please move the link to the reference in the
>>     informational references section.
>>>
>>>         ____
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>            After selected a preferred parent, the joined node MUST
>>>         generate a 6P____
>>>
>>>         __ __
>>>
>>>         Grammar: “After selecting” or “once it has selected” sound
>>>         better. ____
>>>
>>>         __
>>>
>>>         __
>>>         __ __
>>>         __ __
>>>         Section Section 8  <https://tools.ietf.org/html/draft-ietf-6tisch-msf-08#section-8>____
>>>
>>>         __ __
>>>
>>>         The <xref …> already generates the word “section”. If you
>>>         write it too, it becomes duplicated as above.
>>>
>>>
>>>     TC: agreed!
>>>
>>>         ____
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         __ __
>>>
>>>         For a node, this translates into____
>>>
>>>            monitoring the current usage of the cells it has to its
>>>         preferred____
>>>
>>>         parent:____
>>>
>>>         __  __
>>>
>>>         This is disturbing. MSF should not be used only with
>>>         preferred parents. The whole game of doing a DODAG is to have
>>>         and possibly use multiple parents. ____
>>>
>>>         A node can for instance send a NSM DAO with multiple transit
>>>         options to the root. Also, it could be good to clarify that
>>>         the child manages both directions. ____
>>>
>>>         Proposal:____
>>>
>>>         __ __
>>>
>>>         For a node, this translates into____
>>>
>>>            monitoring the current usage of the cells it has to the
>>>         parents it uses____
>>>
>>>            at this point of time for sending and receiving traffic:____
>>>
>>>         __ __
>>>
>>>         Later there a numerous references to “preferred parent” =>
>>>         I’d suggest you use just “selected parent” or “active parent”
>>>         or  something in that vein.
>>>
>>>     TC: I think "preferred parent" is same with "selected parent". 
>>>     it indicates one preferred parent out of multiple. Isn't it right?
>>
>>     My problem is that there’s only one preferred parent, but a node
>>     may use several parents for data traffic. This is why we build
>>     dodags in the first place.
>>
>>      I believe that the node may allocate cells with all of those
>>     “selected parents” if it likes. The use of “preferred parent” in
>>     that text would prevent this.
>>
>>>         ____
>>>         __ __
>>>         __ __
>>>         Cell installed at initial____
>>>
>>>         __  __
>>>
>>>         ____
>>>         __ __
>>>         __ __
>>>         __ __
>>>         __ __
>>>         It is recommended to set MAX_NUMCELLS value at____
>>>
>>>            least 4 times than the maximum link traffic load of the
>>>         network in____
>>>
>>>         packets per slotframe.____
>>>
>>>         __  __
>>>
>>>         __  __
>>>
>>>     TC: it's rephrased as "*It is recommended to set MAX_NUMCELLS
>>>     value at least 4x of the maximum link traffic load of the network
>>>     with unit of packets per slotframe*."
>>
>>     I still have a hard time
>>
>>>         ____
>>>         __ __
>>>         __ __
>>>         __ __
>>>         __ __
>>>         Section 8 does not try to avoid collisions with autocells.
>>>         But it’s easy to compute the slot offset of autocells for
>>>         self and parent and avoids those. Why not do that?
>>>
>>>
>>>         ____
>>>         __ __
>>>         __ __
>>>         __ __
>>>         Section 16 will require more attention, either now or during
>>>         secdir review, probably both. You should start now. Think,
>>>         say, what if an attacker claims many cells to all its
>>>         neighbors? Can it attack someone’s autocells to block him?
>>>
>>>
>>>         ____
>>>         __ __
>>>         __ __
>>>         __ __
>>>         Voila!____
>>>         __ __
>>>         Pascal as shepherd.____
>>>         __ __
>>>         __ __
>>>         __ __
>>>         __ __
>>>         __ __
>>>         __ __
>>>         [email-masked] <mailto:[email-masked]>
>>>     www.tchang.org/ <http://www.tchang.org/>
>> www.tchang.org/ <http://www.tchang.org/>

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Fri, 29 Nov 2019 20:34:32 +0000

Spot on Yatch

MSF manages the bandwidth over one L2 hop based on the packets that L3 places on that hop. 

Bandwidth allocation doesn’t care what traffic that is or it’s direction. It cares about the amount of traffic that needs to circulate over the hop.

The sense of direction came from the design decision that the child makes the request in both directions. That’s your design and that’s fine with me.

 But the child can have multiple L2 Links to different parents. Even if they use the same radio it is still as many links that live independent lives. And it is possible to run an MSF session at L2 with each of them totally independently.

Whether you already tested it is another topic. We do not need to test it immediately to progress the draft. But a draft that supports only one parent is not acceptable because it degrades the routing functionality too much. RPL underneath is designed to operate with multiple parents, and for a good reason. 

Regards,

Pascal

> Le 29 nov. 2019 à 20:41, Yasuyuki Tanaka <[email-masked]> a écrit :
> 
> Hi Pascal,
> 
>>>> On Wed, Nov 27, 2019 at 10:07 PM Pascal Thubert (pthubert) <[email-masked] <mailto:[email-masked]>> wrote:
>>> 
>>>    Hello Tengfei
>>> 
>>> 
>>>    Please see below
>>> 
>>>>    --     ——————————————————————————————————————
>>>> 
>>>>    Dr. Tengfei, Chang

---

From: "Prof. Diego Dujovne" <[email-masked]>
Date: Fri, 29 Nov 2019 17:40:37 -0300

Would it be then a neighbour instead of a parent? (Assuming the neighbour
has joined the network)
Regards,

            Diego

El vie., 29 de noviembre de 2019 17:34, Pascal Thubert (pthubert) <
[email-masked]> escribió:

> Bandwidth allocation doesn’t care what traffic that is or it’s direction.
> It cares about the amount of traffic that needs to circulate over the hop.
>
> The sense of direction came from the design decision that the child makes
> the request in both directions. That’s your design and that’s fine with me.
>
>  But the child can have multiple L2 Links to different parents. Even if
> they use the same radio it is still as many links that live independent
> lives. And it is possible to run an MSF session at L2 with each of them
> totally independently.
>
> Whether you already tested it is another topic. We do not need to test it
> immediately to progress the draft. But a draft that supports only one
> parent is not acceptable because it degrades the routing functionality too
> much. RPL underneath is designed to operate with multiple parents, and for
> a good reason.
>
> Regards,
>
> Pascal
>
> [email-masked] <mailto:[email-masked]>> wrote:
> >>>
> >>>    Hello Tengfei
> >>>
> >>>
> >>>    Please see below
> >>>
> >>>>        [RFC6550  <https://tools.ietf.org/html/rfc6550>] MAY be
> applied on DIOs. However, this behavior is____
> >>>>
> >>>>        is applied on DIO Messages [RFC6550  <
> https://tools.ietf.org/html/rfc6550>]. This behavior is____
> >>>>
> >>>>           [I-D.richardson-6tisch-join-enhanced-beacon  <
> https://tools.ietf.org/html/draft-ietf-6tisch-msf-08#ref-I-D.richardson-6tisch-join-enhanced-beacon>],
> or the key used to____
> >>>>
> >>>>           authenticate it.____
> >>>>
> >>>>        __ __
> >>>>
> >>>>        Section Section 8  <
> https://tools.ietf.org/html/draft-ietf-6tisch-msf-08#section-8>____
> >>>>
> >>>>        __ __
> >>>>

---

From: Yasuyuki Tanaka <[email-masked]>
Date: Fri, 29 Nov 2019 22:47:24 +0100

Thank you, Pascal for your comment.

On 11/29/2019 9:34 PM, Pascal Thubert (pthubert) wrote:
> RPL underneath is designed to operate with multiple parents, and for a good reason.

I understand that point.

My point is, rephrasing the word alone couldn't be enough.

> Bandwidth allocation doesn’t care what traffic that is or it’s direction. It cares about the amount of traffic that needs to circulate over the hop.

In general, yes. According to the current text of MSF, the direction is 
relevant. For a upward neighbor, MSF allocates one negotiated TX cell 
just after recognizing it. For a downward neighbor, it doesn't.

On parent switch, the number of negotiated cells is carried over to a 
new parent. But what if a node has one parents at some point, then it 
selects an additional parent to handle some portion of traffic? How many 
negotiated cells should be scheduled with the new (additional) parent? 
MSF would have no idea.

To me, this seems a totally new thing to MSF.

Again, having multiple MSF instances could be a solution, which doesn't 
need the rephrasing.

> And it is possible to run an MSF session at L2 with each of them totally independently.

What do you mean by "MSF session"? If you have multiple MSF instances 
with different SFIDs or values for the Metadata field, they can be 
associated with different RPL DODAGsm and they will work independently.

On 11/29/2019 9:40 PM, Prof. Diego Dujovne wrote:
 > Would it be then a neighbour instead of a parent? (Assuming the
 > neighbour has joined the network)

I don't think so.

Best,
Yatch

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Fri, 29 Nov 2019 23:31:25 +0000

Hello Yatch

> Le 29 nov. 2019 à 22:48, Yasuyuki Tanaka <[email-masked]> a écrit :
> 
> In general, yes. According to the current text of MSF, the direction is relevant. For a upward neighbor, MSF allocates one negotiated TX cell just after recognizing it. For a downward neighbor, it doesn't.
> 
> On parent switch, the number of negotiated cells is carried over to a new parent. But what if a node has one parents at some point, then it selects an additional parent to handle some portion of traffic? How many negotiated cells should be scheduled with the new (additional) parent? MSF would have no idea.
> 

Not that new just the logical continuation. 

If a child has 2 parents a and b these are independent links, each with a number of cells. If it loses one parent a then the traffic on that link is rerouted. The cells on that link have to be moved to other parents which can include b. 

The existing cells to the parent b are not touched. If some traffic is rerouted to parent b then new cells are allocated there.

> Again, having multiple MSF instances could be a solution, which doesn't need the rephrasing.

For me instance is related to RPL I do not want to run multiple instances of RPL with one preferred parent each.

What I want is to run what the draft describes but several times in parallel once per active parent.

That’s what I called session. RPL says that a node can run separate instances like ship in the night and then describes the operw of one instance. Similarly MSF can run multiple sessions one per link as ship in the night. pretty much the draft needs to do is say that in introduction and then say that the rest of the draft describes one session with one parent. 

> What do you mean by "MSF session"? If you have multiple MSF instances with different SFIDs or values for the Metadata field, they can be associated with different RPL DODAGsm and they will work independently.
> 

The draft describes a session between a parent and a child. They start the session, allocate resources in unison and when the session is broken they release the resources on each side. This happens within a L2 link. Sessions can live independently on different L2 links.

> > neighbour has joined the network)

As Yatch said the draft describes a child handling both sides so the link is directional, there’s a master and a slave. 

This may become a problem for east west traffic with PDAO. But there’s still a direction so it’s doable just need to agree that the parent is towards the destination.

All the best,

Pascal