rfc9033.original.xml   rfc9033.xml 
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse
<?rfc toc="yes"?> nsus="true" docName="draft-ietf-6tisch-msf-18" indexInclude="true" ipr="trust200
<?rfc comments="yes"?> 902" number="9033" prepTime="2021-05-29T10:02:09" scripts="Common,Latin" sortRef
<?rfc inline="yes"?> s="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml
<?rfc subcompact="yes"?> :lang="en">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902" <link href="https://datatracker.ietf.org/doc/draft-ietf-6tisch-msf-18" rel="pr
docName="draft-ietf-6tisch-msf-18" obsoletes="" updates="" consensus="true" sub ev"/>
missionType="IETF" xml:lang="en" tocInclude="true" version="3"> <link href="https://dx.doi.org/10.17487/rfc9033" rel="alternate"/>
<!-- xml2rfc v2v3 conversion 2.35.0 --> <link href="urn:issn:2070-1721" rel="alternate"/>
<front> <front>
<title> <title abbrev="6TiSCH MSF">6TiSCH Minimal Scheduling Function (MSF)</title>
6TiSCH Minimal Scheduling Function (MSF) <seriesInfo name="RFC" value="9033" stream="IETF"/>
</title> <author initials="T" surname="Chang" fullname="Tengfei Chang" role="editor">
<seriesInfo name="Internet-Draft" value="draft-ietf-6tisch-msf-18"/> <organization showOnFrontPage="true">Inria</organization>
<author initials="T" surname="Chang" fullname="Tengfei Chang" role="edit <address>
or"> <postal>
<organization>Inria</organization> <street>2 rue Simone Iff</street>
<address> <city>Paris</city>
<postal> <code>75012</code>
<street>2 rue Simone Iff</street> <country>France</country>
<city>Paris</city> </postal>
<code>75012</code> <email>tengfei.chang@gmail.com</email>
<country>France</country> </address>
</postal> </author>
<email>tengfei.chang@inria.fr</email> <author initials="M." surname="Vučinić" fullname="Mališa Vučinić">
</address> <organization showOnFrontPage="true">Inria</organization>
</author> <address>
<author initials="M." surname="Vucinic" fullname="Malisa Vucinic"> <postal>
<organization>Inria</organization> <street>2 rue Simone Iff</street>
<address> <city>Paris</city>
<postal> <code>75012</code>
<street>2 rue Simone Iff</street> <country>France</country>
<city>Paris</city> </postal>
<code>75012</code> <email>malisa.vucinic@inria.fr</email>
<country>France</country> </address>
</postal> </author>
<email>malisa.vucinic@inria.fr</email> <author initials="X" surname="Vilajosana" fullname="Xavier Vilajosana">
</address> <organization showOnFrontPage="true">Universitat Oberta de Catalunya</orga
</author> nization>
<author initials="X" surname="Vilajosana" fullname="Xavier Vilajosana"> <address>
<organization>Universitat Oberta de Catalunya</organization> <postal>
<address> <street>156 Rambla Poblenou</street>
<postal> <city>Barcelona</city>
<street>156 Rambla Poblenou</street> <region>Catalonia</region>
<city>Barcelona</city> <code>08018</code>
<region>Catalonia</region> <country>Spain</country>
<code>08018</code> </postal>
<country>Spain</country> <email>xvilajosana@uoc.edu</email>
</postal> </address>
<email>xvilajosana@uoc.edu</email> </author>
</address> <author initials="S" surname="Duquennoy" fullname="Simon Duquennoy">
</author> <organization showOnFrontPage="true">RISE SICS</organization>
<author initials="S" surname="Duquennoy" fullname="Simon Duquennoy"> <address>
<organization>RISE SICS</organization> <postal>
<address> <street>Isafjordsgatan 22</street>
<postal> <city>Kista</city>
<street>Isafjordsgatan 22</street> <code>164 29</code>
<city>164 29 Kista</city> <country>Sweden</country>
<country>Sweden</country> </postal>
</postal> <email>simon.duquennoy@gmail.com</email>
<email>simon.duquennoy@gmail.com</email> </address>
</address> </author>
</author> <author initials="D" surname="Dujovne" fullname="Diego Dujovne">
<author initials="D" surname="Dujovne" fullname="Diego Dujovne"> <organization showOnFrontPage="true">Universidad Diego Portales</organizat
<organization>Universidad Diego Portales</organization> ion>
<address> <address>
<postal> <postal>
<street>Escuela de Informatica y Telecomunicaciones</street> <street>Escuela de Informática y Telecomunicaciones</street>
<street>Av. Ejercito 441</street> <street>Av. Ejército 441</street>
<city>Santiago</city> <city>Santiago</city>
<region>Region Metropolitana</region> <region>Región Metropolitana</region>
<country>Chile</country> <country>Chile</country>
</postal> </postal>
<phone>+56 (2) 676-8121</phone> <phone>+56 (2) 676-8121</phone>
<email>diego.dujovne@mail.udp.cl</email> <email>diego.dujovne@mail.udp.cl</email>
</address> </address>
</author> </author>
<date/> <date month="05" year="2021"/>
<area>Internet Area</area> <area>Internet Area</area>
<workgroup>6TiSCH</workgroup> <workgroup>6TiSCH</workgroup>
<keyword>Draft</keyword> <keyword>TSCH</keyword>
<abstract> <keyword>communication schedule</keyword>
<t> <keyword>6P</keyword>
This specification defines the 6TiSCH Minimal Scheduling Functio <abstract pn="section-abstract">
n (MSF). <t indent="0" pn="section-abstract-1">
This specification defines the "IPv6 over the TSCH mode of IEEE
802.15.4" (6TiSCH) Minimal Scheduling Function (MSF).
This Scheduling Function describes both This Scheduling Function describes both
the behavior of a node when joining the network, and the behavior of a node when joining the network and
how the communication schedule is managed in a distributed fashi on. how the communication schedule is managed in a distributed fashi on.
MSF is built upon MSF is built upon
the 6TiSCH Operation Sublayer Protocol (6P) and the 6TiSCH Operation Sublayer Protocol (6P) and
the Minimal Security Framework for 6TiSCH. the minimal security framework for 6TiSCH.
</t> </t>
</abstract> </abstract>
<note> <boilerplate>
<name>Requirements Language</name> <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc=
<t> "exclude" pn="section-boilerplate.1">
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NO <name slugifiedName="name-status-of-this-memo">Status of This Memo</name
T", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTION >
AL" in this document are to be interpreted as described in BCP 14 <xref target=" <t indent="0" pn="section-boilerplate.1-1">
RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and This is an Internet Standards Track document.
only when, they appear in all capitals, as shown here. </t>
</t> <t indent="0" pn="section-boilerplate.1-2">
</note> This document is a product of the Internet Engineering Task Force
</front> (IETF). It represents the consensus of the IETF community. It has
<middle> received public review and has been approved for publication by
<section anchor="sec_intro" numbered="true" toc="default"> the Internet Engineering Steering Group (IESG). Further
<name>Introduction</name> information on Internet Standards is available in Section 2 of
<t> RFC 7841.
</t>
<t indent="0" pn="section-boilerplate.1-3">
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
<eref target="https://www.rfc-editor.org/info/rfc9033" brackets="non
e"/>.
</t>
</section>
<section anchor="copyright" numbered="false" removeInRFC="false" toc="excl
ude" pn="section-boilerplate.2">
<name slugifiedName="name-copyright-notice">Copyright Notice</name>
<t indent="0" pn="section-boilerplate.2-1">
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
</t>
<t indent="0" pn="section-boilerplate.2-2">
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(<eref target="https://trustee.ietf.org/license-info" brackets="none
"/>) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
</t>
</section>
</boilerplate>
<toc>
<section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p
n="section-toc.1">
<name slugifiedName="name-table-of-contents">Table of Contents</name>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to
c.1-1">
<li pn="section-toc.1-1.1">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref der
ivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref
derivedContent="" format="title" sectionFormat="of" target="name-introduction">
Introduction</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.1.2">
<li pn="section-toc.1-1.1.2.1">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><
xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.
1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-re
quirements-language">Requirements Language</xref></t>
</li>
<li pn="section-toc.1-1.1.2.2">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><
xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.
2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-re
lated-documents">Related Documents</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.2">
<t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" form
at="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-interface-to-the-minimal-6t">Inter
face to the Minimal 6TiSCH Configuration</xref></t>
</li>
<li pn="section-toc.1-1.3">
<t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" form
at="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-autonomous-cells">Autonomous Cells
</xref></t>
</li>
<li pn="section-toc.1-1.4">
<t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" form
at="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-node-behavior-at-boot">Node Behavi
or at Boot</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.4.2">
<li pn="section-toc.1-1.4.2.1">
<t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent=
"4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-start-state">Start Sta
te</xref></t>
</li>
<li pn="section-toc.1-1.4.2.2">
<t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent=
"4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-step-1-choosing-freque
ncy">Step 1 - Choosing Frequency</xref></t>
</li>
<li pn="section-toc.1-1.4.2.3">
<t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent=
"4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-step-2-receiving-ebs">
Step 2 - Receiving EBs</xref></t>
</li>
<li pn="section-toc.1-1.4.2.4">
<t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent=
"4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-step-3-setting-up-auto
nomou">Step 3 - Setting up Autonomous Cells for the Join Process</xref></t>
</li>
<li pn="section-toc.1-1.4.2.5">
<t indent="0" pn="section-toc.1-1.4.2.5.1"><xref derivedContent=
"4.5" format="counter" sectionFormat="of" target="section-4.5"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-step-4-acquiring-a-rpl
-rank">Step 4 - Acquiring a RPL Rank</xref></t>
</li>
<li pn="section-toc.1-1.4.2.6">
<t indent="0" pn="section-toc.1-1.4.2.6.1"><xref derivedContent=
"4.6" format="counter" sectionFormat="of" target="section-4.6"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-step-5-setting-up-firs
t-tx-">Step 5 - Setting up First Tx Negotiated Cells</xref></t>
</li>
<li pn="section-toc.1-1.4.2.7">
<t indent="0" pn="section-toc.1-1.4.2.7.1"><xref derivedContent=
"4.7" format="counter" sectionFormat="of" target="section-4.7"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-step-6-sending-ebs-and
-dios">Step 6 - Sending EBs and DIOs</xref></t>
</li>
<li pn="section-toc.1-1.4.2.8">
<t indent="0" pn="section-toc.1-1.4.2.8.1"><xref derivedContent=
"4.8" format="counter" sectionFormat="of" target="section-4.8"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-end-state">End State</
xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.5">
<t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" form
at="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-rules-for-adding-and-deleti">Rules
for Adding and Deleting Cells</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.5.2">
<li pn="section-toc.1-1.5.2.1">
<t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent=
"5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-adapting-to-traffic">A
dapting to Traffic</xref></t>
</li>
<li pn="section-toc.1-1.5.2.2">
<t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent=
"5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-switching-parent">Swit
ching Parent</xref></t>
</li>
<li pn="section-toc.1-1.5.2.3">
<t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent=
"5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-handling-schedule-coll
ision">Handling Schedule Collisions</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.6">
<t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" form
at="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-6p-signal-command">6P SIGNAL Comma
nd</xref></t>
</li>
<li pn="section-toc.1-1.7">
<t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" form
at="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-scheduling-function-identif">Sched
uling Function Identifier</xref></t>
</li>
<li pn="section-toc.1-1.8">
<t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" form
at="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-rules-for-celllist">Rules for Cell
List</xref></t>
</li>
<li pn="section-toc.1-1.9">
<t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" form
at="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-6p-timeout-value">6P Timeout Value
</xref></t>
</li>
<li pn="section-toc.1-1.10">
<t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" fo
rmat="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-rule-for-ordering-cells">Rule fo
r Ordering Cells</xref></t>
</li>
<li pn="section-toc.1-1.11">
<t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" fo
rmat="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-meaning-of-the-metadata-fie">Mea
ning of the Metadata Field</xref></t>
</li>
<li pn="section-toc.1-1.12">
<t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" fo
rmat="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-6p-error-handling">6P Error Hand
ling</xref></t>
</li>
<li pn="section-toc.1-1.13">
<t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" fo
rmat="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-schedule-inconsistency-hand">Sch
edule Inconsistency Handling</xref></t>
</li>
<li pn="section-toc.1-1.14">
<t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="14" fo
rmat="counter" sectionFormat="of" target="section-14"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-msf-constants">MSF Constants</xr
ef></t>
</li>
<li pn="section-toc.1-1.15">
<t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="15" fo
rmat="counter" sectionFormat="of" target="section-15"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-msf-statistics">MSF Statistics</
xref></t>
</li>
<li pn="section-toc.1-1.16">
<t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="16" fo
rmat="counter" sectionFormat="of" target="section-16"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-security-considerations">Securit
y Considerations</xref></t>
</li>
<li pn="section-toc.1-1.17">
<t indent="0" pn="section-toc.1-1.17.1"><xref derivedContent="17" fo
rmat="counter" sectionFormat="of" target="section-17"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-iana-considerations">IANA Consid
erations</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.17.2">
<li pn="section-toc.1-1.17.2.1">
<t indent="0" pn="section-toc.1-1.17.2.1.1"><xref derivedContent
="17.1" format="counter" sectionFormat="of" target="section-17.1"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-msf-scheduling-func
tion-ide">MSF Scheduling Function Identifiers</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.18">
<t indent="0" pn="section-toc.1-1.18.1"><xref derivedContent="18" fo
rmat="counter" sectionFormat="of" target="section-18"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-references">References</xref></t
>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.18.2">
<li pn="section-toc.1-1.18.2.1">
<t indent="0" pn="section-toc.1-1.18.2.1.1"><xref derivedContent
="18.1" format="counter" sectionFormat="of" target="section-18.1"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-normative-reference
s">Normative References</xref></t>
</li>
<li pn="section-toc.1-1.18.2.2">
<t indent="0" pn="section-toc.1-1.18.2.2.1"><xref derivedContent
="18.2" format="counter" sectionFormat="of" target="section-18.2"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-informative-referen
ces">Informative References</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.19">
<t indent="0" pn="section-toc.1-1.19.1"><xref derivedContent="Append
ix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref
derivedContent="" format="title" sectionFormat="of" target="name-example-impleme
ntation-of-t">Example Implementation of the SAX Hash Function</xref></t>
</li>
<li pn="section-toc.1-1.20">
<t indent="0" pn="section-toc.1-1.20.1"><xref derivedContent="" form
at="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="
" format="title" sectionFormat="of" target="name-contributors">Contributors</xre
f></t>
</li>
<li pn="section-toc.1-1.21">
<t indent="0" pn="section-toc.1-1.21.1"><xref derivedContent="" form
at="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="
" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Add
resses</xref></t>
</li>
</ul>
</section>
</toc>
</front>
<middle>
<section anchor="sec_intro" numbered="true" toc="include" removeInRFC="false
" pn="section-1">
<name slugifiedName="name-introduction">Introduction</name>
<t indent="0" pn="section-1-1">
The 6TiSCH Minimal Scheduling Function (MSF), defined in this sp ecification, is a 6TiSCH Scheduling Function (SF). The 6TiSCH Minimal Scheduling Function (MSF), defined in this sp ecification, is a 6TiSCH Scheduling Function (SF).
The role of an SF is entirely defined in <xref target="RFC8480" The role of an SF is entirely defined in <xref target="RFC8480"
format="default"/>. format="default" sectionFormat="of" derivedContent="RFC8480"/>.
This specification complements <xref target="RFC8480" format="de This specification complements <xref target="RFC8480" format="de
fault"/> by providing the rules of when to add/delete cells in the communication fault" sectionFormat="of" derivedContent="RFC8480"/> by providing the rules of w
schedule. hen to add and delete cells in the communication schedule.
This specification satisfies all the requirements for an SF list This specification satisfies all the requirements for an SF list
ed in Section 4.2 of <xref target="RFC8480" format="default"/>. ed in <xref target="RFC8480" section="4.2" sectionFormat="of" format="default" d
</t> erivedLink="https://rfc-editor.org/rfc/rfc8480#section-4.2" derivedContent="RFC8
<t> 480"/>.
</t>
<t indent="0" pn="section-1-2">
MSF builds on top of the following specifications: MSF builds on top of the following specifications:
the Minimal IPv6 over the TSCH Mode of IEEE 802.15.4e (6TiSCH) C "<xref target="RFC8180" format="title" sectionFormat="of" derive
onfiguration <xref target="RFC8180" format="default"/>, dContent="Minimal IPv6 over the TSCH Mode of IEEE 802.15.4e (6TiSCH) Configurati
the 6TiSCH Operation Sublayer Protocol (6P) <xref target="RFC848 on"/>" <xref target="RFC8180" format="default" sectionFormat="of" derivedContent
0" format="default"/>, and ="RFC8180"/>,
the Minimal Security Framework for 6TiSCH <xref target="I-D.ietf "<xref target="RFC8480" format="title" sectionFormat="of" derive
-6tisch-minimal-security" format="default"/>. dContent="6TiSCH Operation Sublayer (6top) Protocol (6P)"/>" <xref target="RFC8
</t> 480" format="default" sectionFormat="of" derivedContent="RFC8480"/>, and
<t> "<xref target="RFC9031" format="title" sectionFormat="of" derive
dContent="Constrained Join Protocol (CoJP) for 6TiSCH"/>" <xref target="RFC9031
" format="default" sectionFormat="of" derivedContent="RFC9031"/>.
</t>
<t indent="0" pn="section-1-3">
MSF defines both MSF defines both
the behavior of a node when joining the network, and the behavior of a node when joining the network, and
how the communication schedule is managed in a distributed fashi on. how the communication schedule is managed in a distributed fashi on.
When a node running MSF boots up, it joins the network by follow ing the 6 steps described in <xref target="sec_boot" format="default"/>. When a node running MSF boots up, it joins the network by follow ing the six steps described in <xref target="sec_boot" format="default" sectionF ormat="of" derivedContent="Section 4"/>.
The end state of the join process is that the node The end state of the join process is that the node
is synchronized to the network, is synchronized to the network,
has mutually authenticated with the network, has mutually authenticated with the network,
has identified a routing parent, has identified a routing parent,
and has scheduled one negotiated Tx cell (defined in <xref targe and has scheduled one negotiated Tx cell (defined in <xref targe
t="sec_traffic" format="default"/>) to/from its routing parent. t="sec_traffic" format="default" sectionFormat="of" derivedContent="Section 5.1"
After the join process, the node can continuously add/delete/rel />) to/from its routing parent.
ocate cells, as described in <xref target="sec_add_delete" format="default"/>. After the join process, the node can continuously add, delete, a
It does so for 3 reasons: nd relocate cells as described in <xref target="sec_add_delete" format="default"
sectionFormat="of" derivedContent="Section 5"/>.
It does so for three reasons:
to match the link-layer resources to the traffic, to match the link-layer resources to the traffic,
to handle changing parent and to handle changing parent, and
to handle a schedule collision. to handle a schedule collision.
</t> </t>
<t> <t indent="0" pn="section-1-4">
MSF works closely with the IPv6 Routing Protocol for Low-Power a MSF works closely with the IPv6 Routing Protocol for Low-Power a
nd Lossy Networks (RPL), specifically the routing parent defined in <xref target nd Lossy Networks (RPL), specifically the routing parent defined in <xref target
="RFC6550" format="default"/>. ="RFC6550" format="default" sectionFormat="of" derivedContent="RFC6550"/>.
This specification only describes how MSF works with the routing parent; this parent is referred to as the "selected parent". This specification only describes how MSF works with the routing parent; this parent is referred to as the "selected parent".
The activity of MSF towards the single routing parent is called a "MSF session". The activity of MSF towards the single routing parent is called a "MSF session".
Though the performance of MSF is evaluated only when the "select ed parent" represents the node's preferred parent, there should be no restrictio ns to use multiple MSF sessions, one per parent. Though the performance of MSF is evaluated only when the "select ed parent" represents the node's preferred parent, there should be no restrictio ns to use multiple MSF sessions, one per parent.
The distribution of traffic over multiple parents is a routing d ecision that is out of scope for MSF. The distribution of traffic over multiple parents is a routing d ecision that is out of scope for MSF.
</t> </t>
<t> <t indent="0" pn="section-1-5">
MSF is designed to operate in a wide range of application domain s. MSF is designed to operate in a wide range of application domain s.
It is optimized for applications with regular upstream traffic, It is optimized for applications with regular upstream traffic,
from the nodes to the Destination-Oriented Directed Acyclic Graph (DODAG <xref t from the nodes to the Destination-Oriented Directed Acyclic Graph (DODAG) root <
arget="RFC6550" format="default"/>) root. xref target="RFC6550" format="default" sectionFormat="of" derivedContent="RFC655
</t> 0"/>.
<t> </t>
This specification follows the recommended structure of an SF sp <t indent="0" pn="section-1-6">
ecification, given in Appendix A of <xref target="RFC8480" format="default"/>, w This specification follows the recommended structure of an SF sp
ith the following adaptations: ecification, given in <xref target="RFC8480" section="A" sectionFormat="of" form
</t> at="default" derivedLink="https://rfc-editor.org/rfc/rfc8480#appendix-A" derived
<ul spacing="compact"> Content="RFC8480"/>, with the following adaptations:
<li> </t>
We have reordered some sections, in particular to have the s <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1-7
ection on the node behavior at boot (<xref target="sec_boot" format="default"/>) ">
appear early in this specification. <li pn="section-1-7.1">
We have reordered some sections, in particular to have the s
ection on the node behavior at boot (<xref target="sec_boot" format="default" se
ctionFormat="of" derivedContent="Section 4"/>) appear early in this specificatio
n.
</li> </li>
<li> <li pn="section-1-7.2">
We added sections on We added sections on
the interface to the minimal 6TiSCH configuration (<xref tar the interface to the minimal 6TiSCH configuration (<xref tar
get="sec_minimal" format="default"/>), get="sec_minimal" format="default" sectionFormat="of" derivedContent="Section 2"
the use of the SIGNAL command (<xref target="sec_signal" for />),
mat="default"/>), the use of the SIGNAL command (<xref target="sec_signal" for
the MSF constants (<xref target="sec_constants" format="defa mat="default" sectionFormat="of" derivedContent="Section 6"/>),
ult"/>) and the MSF constants (<xref target="sec_constants" format="defa
the MSF statistics (<xref target="sec_stats" format="default ult" sectionFormat="of" derivedContent="Section 14"/>), and
"/>). the MSF statistics (<xref target="sec_stats" format="default
" sectionFormat="of" derivedContent="Section 15"/>).
</li> </li>
</ul> </ul>
</section> <section numbered="true" removeInRFC="false" toc="include" pn="section-1.1
<section anchor="sec_minimal" numbered="true" toc="default"> ">
<name>Interface to the Minimal 6TiSCH Configuration</name> <name slugifiedName="name-requirements-language">Requirements Language</
<t> name>
In a TSCH network, time is sliced up into time slots. <t indent="0" pn="section-1.1-1">
The time slots are grouped as one or multiple slotframes which r The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14
epeat over time. >", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>
The TSCH schedule instructs a node what to do at each time slot, ", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bc
such as transmit, receive or sleep <xref target="RFC7554" format="default"/>. p14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and "<bcp14>OPTIO
In case of a slot to transmit or receive, a channel is assigned NAL</bcp14>" in this document are to be interpreted as described in BCP 14 <xref
to the time slot. target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/>
The tuple (slot, channel) is indicated as a cell of TSCH schedul <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8
e. 174"/> when, and only when, they appear in all capitals, as shown here.
</t>
</section>
<section numbered="true" removeInRFC="false" toc="include" pn="section-1.2
">
<name slugifiedName="name-related-documents">Related Documents</name>
<t indent="0" pn="section-1.2-1">This specification uses messages and va
riables defined in
IEEE Std 802.15.4-2015 <xref target="IEEE802154" format="default"
sectionFormat="of" derivedContent="IEEE802154"/>. It is expected that
those resources will remain in the future versions of IEEE Std 80
2.15.4;
in which case, this specification also applies to those future ve
rsions.
In the remainder of the document, we use <xref target="IEEE802154
" format="default" sectionFormat="of" derivedContent="IEEE802154"/> to refer to
IEEE Std 802.15.4-2015 as well as future versions of IEEE Std 802
.15.4
that remain compatible.</t>
</section>
</section>
<section anchor="sec_minimal" numbered="true" toc="include" removeInRFC="fal
se" pn="section-2">
<name slugifiedName="name-interface-to-the-minimal-6t">Interface to the Mi
nimal 6TiSCH Configuration</name>
<t indent="0" pn="section-2-1">
In a Time-Slotted Channel Hopping (TSCH) network, time is sliced
up into time slots.
The time slots are grouped as one or multiple slotframes that re
peat over time.
The TSCH schedule instructs a node what to do at each time slot,
such as transmit, receive, or sleep <xref target="RFC7554" format="default" sec
tionFormat="of" derivedContent="RFC7554"/>.
For time slots for transmitting or receiving, a channel is assi
gned to the time slot.
The tuple (slot, channel) is indicated as a cell of the TSCH sch
edule.
MSF is one of the policies defining how to manage the TSCH sched ule. MSF is one of the policies defining how to manage the TSCH sched ule.
</t> </t>
<t> <t indent="0" pn="section-2-2">
A node implementing MSF SHOULD implement the Minimal 6TiSCH Conf A node implementing MSF <bcp14>SHOULD</bcp14> implement the mini
iguration <xref target="RFC8180" format="default"/>, which defines the "minimal mal 6TiSCH configuration <xref target="RFC8180" format="default" sectionFormat="
cell", a single shared cell providing minimal connectivity between the nodes in of" derivedContent="RFC8180"/>, which defines the "minimal cell", a single share
the network. d cell providing minimal connectivity between the nodes in the network.
The MSF implementation provided in this specification is based o The MSF implementation provided in this specification is based o
n the implementation of the Minimal 6TiSCH Configuration. n the implementation of the minimal 6TiSCH configuration.
However, an implementor MAY implement MSF based on other specifi However, an implementor <bcp14>MAY</bcp14> implement MSF based o
cations as long as the specification defines a way to advertise the EB/DIO among n other specifications as long as the specification defines a way to advertise t
the network. he Enhanced Beacons (EBs) and DODAG Information Objects (DIOs) among the network
</t> .
<t> </t>
MSF uses the minimal cell for broadcast frames such as Enhanced <t indent="0" pn="section-2-3">
Beacons (EBs) <xref target="IEEE802154" format="default"/> and broadcast DODAG I MSF uses the minimal cell for broadcast frames such as Enhanced
nformation Objects (DIOs) <xref target="RFC6550" format="default"/>. Beacons (EBs) <xref target="IEEE802154" format="default" sectionFormat="of" deri
vedContent="IEEE802154"/> and broadcast DODAG Information Objects (DIOs) <xref t
arget="RFC6550" format="default" sectionFormat="of" derivedContent="RFC6550"/>.
Cells scheduled by MSF are meant to be used only for unicast fra mes. Cells scheduled by MSF are meant to be used only for unicast fra mes.
</t> </t>
<t> <t indent="0" pn="section-2-4">
To ensure there is enough bandwidth available on the minimal cel To ensure there is enough bandwidth available on the minimal cel
l, a node implementing MSF SHOULD enforce some rules for limiting the traffic of l, a node implementing MSF <bcp14>SHOULD</bcp14> enforce some rules for limiting
broadcast frames. the traffic of broadcast frames.
For example, the overall broadcast traffic among the node and it For example, the overall broadcast traffic among the node and it
s neighbors SHOULD NOT exceed 1/3 of the bandwidth of minimal cell. s neighbors <bcp14>SHOULD NOT</bcp14> exceed one-third of the bandwidth of minim
One of the algorithms that fulfills this requirement is the Tric al cell.
kle timer defined in <xref target="RFC6206" format="default"/> which is applied One of the algorithms that fulfills this requirement is the Tric
on DIO messages <xref target="RFC6550" format="default"/>. kle timer defined in <xref target="RFC6206" format="default" sectionFormat="of"
derivedContent="RFC6206"/>, which is applied to DIO messages <xref target="RFC6
550" format="default" sectionFormat="of" derivedContent="RFC6550"/>.
However, any such algorithm of limiting the broadcast traffic to meet those rules is implementation-specific and is out of the scope of MSF. However, any such algorithm of limiting the broadcast traffic to meet those rules is implementation-specific and is out of the scope of MSF.
</t> </t>
<t> <t indent="0" pn="section-2-5">
3 slotframes are used in MSF. Three slotframes are used in MSF.
MSF schedules autonomous cells at Slotframe 1 (<xref target="sec MSF schedules autonomous cells at Slotframe 1 (<xref target="sec
_autonomous_cells" format="default"/>) and 6P negotiated cells at Slotframe 2 (< _autonomous_cells" format="default" sectionFormat="of" derivedContent="Section 3
xref target="sec_add_delete" format="default"/>) ,while Slotframe 0 is used for "/>) and 6P negotiated cells at Slotframe 2 (<xref target="sec_add_delete" forma
the bootstrap traffic as defined in the Minimal 6TiSCH Configuration. t="default" sectionFormat="of" derivedContent="Section 5"/>), while Slotframe 0
The same slotframe length for Slotframe 0, 1 and 2 is RECOMMENDE is used for the bootstrap traffic as defined in the minimal 6TiSCH configuration
D. .
Thus it is possible to avoid the scheduling collision between th The same slotframe length for Slotframe 0, 1, and 2 is <bcp14>RE
e autonomous cells and 6P negotiated cells (<xref target="sec_autonomous_cells" COMMENDED</bcp14>.
format="default"/>). Thus it is possible to avoid the scheduling collision between th
The default slotframe length (SLOTFRAME_LENGTH) is RECOMMENDED f e autonomous cells and 6P negotiated cells (<xref target="sec_autonomous_cells"
or Slotframe 0, 1 and 2, although any value can be advertised in the EBs. format="default" sectionFormat="of" derivedContent="Section 3"/>).
</t> The default slotframe length (SLOTFRAME_LENGTH) is <bcp14>RECOMM
</section> ENDED</bcp14> for Slotframe 0, 1, and 2, although any value can be advertised in
<section anchor="sec_autonomous_cells" numbered="true" toc="default"> the EBs.
<name>Autonomous Cells</name> </t>
<t> </section>
<section anchor="sec_autonomous_cells" numbered="true" toc="include" removeI
nRFC="false" pn="section-3">
<name slugifiedName="name-autonomous-cells">Autonomous Cells</name>
<t indent="0" pn="section-3-1">
MSF nodes initialize Slotframe 1 with a set of default cells for unicast communication with their neighbors. MSF nodes initialize Slotframe 1 with a set of default cells for unicast communication with their neighbors.
These cells are called 'autonomous cells', because they are main These cells are called "autonomous cells", because they are main
tained autonomously by each node without negotiation through 6P. tained autonomously by each node without negotiation through 6P.
Cells scheduled by 6P transaction are called 'negotiated cells' Cells scheduled by 6P Transaction are called "negotiated cells",
which are reserved on Slotframe 2. which are reserved on Slotframe 2.
How to schedule negotiated cells is detailed in <xref target="se How to schedule negotiated cells is detailed in <xref target="se
c_add_delete" format="default"/>. c_add_delete" format="default" sectionFormat="of" derivedContent="Section 5"/>.
There are two types of autonomous cells: There are two types of autonomous cells:
</t> </t>
<ul spacing="compact"> <dl spacing="normal" indent="3" newline="false" pn="section-3-2">
<li> <dt pn="section-3-2.1">
Autonomous Rx Cell (AutoRxCell), one cell at a [slotOffset,c Autonomous Rx Cell (AutoRxCell):</dt>
hannelOffset] computed as a hash of the EUI64 of the node itself (detailed next) <dd pn="section-3-2.2"> One cell at a [slotOffset,channelOffset] compute
. d as a hash of the 64-bit Extended Unique Identifier (EUI-64) of the node itself
(detailed next).
Its cell options bits are assigned as TX=0, RX=1, SHARED=0. Its cell options bits are assigned as TX=0, RX=1, SHARED=0.
</li> </dd>
<li> <dt pn="section-3-2.3">
Autonomous Tx Cell (AutoTxCell), one cell at a [slotOffset,c Autonomous Tx Cell (AutoTxCell):</dt>
hannelOffset] computed as a hash of the layer 2 EUI64 destination address in the <dd pn="section-3-2.4"> One cell at a [slotOffset,channelOffset] compute
unicast frame to be transmitted (detailed in <xref target="sec_join" format="de d as a hash of the Layer 2 EUI-64 destination address in the unicast frame to be
fault"/>). transmitted (detailed in <xref target="sec_join" format="default" sectionFormat
="of" derivedContent="Section 4.4"/>).
Its cell options bits are assigned as TX=1, RX=0, SHARED=1. Its cell options bits are assigned as TX=1, RX=0, SHARED=1.
</li> </dd>
</ul> </dl>
<t> <t indent="0" pn="section-3-3">
To compute a [slotOffset,channelOffset] from an EUI64 address, n To compute a [slotOffset,channelOffset] from an EUI-64 address,
odes MUST use the hash function SAX as defined in Section 2 of <xref target="SAX nodes <bcp14>MUST</bcp14> use the hash function SAX as defined in Section 2 of <
-DASFAA" format="default"/> with consistent input parameters, for example, those xref target="SAX-DASFAA" format="default" sectionFormat="of" derivedContent="SAX
defined in <xref target="sec_hash_function" format="default"/>. -DASFAA"/> with consistent input parameters, for example, those defined in <xref
target="sec_hash_function" format="default" sectionFormat="of" derivedContent="
Appendix A"/>.
The coordinates are computed to distribute the cells across all channel offsets, and all but the first slot offset of Slotframe 1. The coordinates are computed to distribute the cells across all channel offsets, and all but the first slot offset of Slotframe 1.
The first time offset is skipped to avoid colliding with the min imal cell in Slotframe 0. The first time offset is skipped to avoid colliding with the min imal cell in Slotframe 0.
The slot coordinates derived from a given EUI64 address are comp The slot coordinates derived from a given EUI-64 address are com
uted as follows: puted as follows:
</t> </t>
<ul spacing="compact"> <t indent="6" pn="section-3-4">slotOffset(MAC) = 1 + hash(EUI64, length(Sl
<li>slotOffset(MAC) = 1 + hash(EUI64, length(Slotframe_1) - 1) < otframe_1) - 1) </t>
/li> <t indent="6" pn="section-3-5">channelOffset(MAC) = hash(EUI64, NUM_CH_OFF
<li>channelOffset(MAC) = hash(EUI64, NUM_CH_OFFSET)</li> SET)</t>
</ul> <t indent="0" pn="section-3-6">
<t>
The second input parameter defines the maximum return value of t he hash function. The second input parameter defines the maximum return value of t he hash function.
Other optional parameters defined in SAX determine the performan ce of SAX hash function. Other optional parameters defined in SAX determine the performan ce of SAX hash function.
Those parameters could be broadcasted in EB frame or pre-configu Those parameters could be broadcast in an EB frame or preconfigu
red. red.
For interoperability purposes, the values of those parameters ca For interoperability purposes, <xref target="sec_hash_function"
n be referred from <xref target="sec_hash_function" format="default"/>. format="default" sectionFormat="of" derivedContent="Appendix A"/> provides the r
</t> eference values of those parameters.
<t> </t>
AutoTxCell is not permanently installed in the schedule but adde <t indent="0" pn="section-3-7">
d/deleted on demand when there is a frame to be sent. AutoTxCell is not permanently installed in the schedule but is a
dded or deleted on demand when there is a frame to be sent.
Throughout the network lifetime, nodes maintain the autonomous c ells as follows: Throughout the network lifetime, nodes maintain the autonomous c ells as follows:
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3-8
<li> ">
Add an AutoTxCell to the layer 2 destination address which i <li pn="section-3-8.1">
s indicated in a frame when there is no 6P negotiated Tx cell in schedule for th Add an AutoTxCell to the Layer 2 destination address, which
at frame to transmit. is indicated in a frame when there is no 6P negotiated Tx cell in the schedule f
or that frame to transmit.
</li> </li>
<li> <li pn="section-3-8.2">
<t> <t indent="0" pn="section-3-8.2.1">
Remove an AutoTxCell when: Remove an AutoTxCell when:
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section
<li>there is no frame to transmit on that cell, or</li> -3-8.2.2">
<li>there is at least one 6P negotiated Tx cell in the s <li pn="section-3-8.2.2.1">there is no frame to transmit on that cel
chedule for the frames to transmit.</li> l, or</li>
</ul> <li pn="section-3-8.2.2.2">there is at least one 6P negotiated Tx ce
</li> ll in the schedule for the frames to transmit.</li>
</ul> </ul>
<t> </li>
The AutoRxCell MUST always remain scheduled after synchronizatio </ul>
n. <t indent="0" pn="section-3-9">
6P CLEAR MUST NOT erase any autonomous cells. The AutoRxCell <bcp14>MUST</bcp14> always remain scheduled after
</t> synchronization.
<t> 6P CLEAR <bcp14>MUST NOT</bcp14> erase any autonomous cells.
</t>
<t indent="0" pn="section-3-10">
Because of hash collisions, there will be cases that the AutoTxC ell and AutoRxCell are scheduled at the same slot offset and/or channel offset. Because of hash collisions, there will be cases that the AutoTxC ell and AutoRxCell are scheduled at the same slot offset and/or channel offset.
In such cases, AutoTxCell always take precedence over AutoRxCell . In such cases, AutoTxCell always take precedence over AutoRxCell .
Notice AutoTxCell is a shared type cell which applies backs-off mechanism. Notice AutoTxCell is a shared type cell that applies a back-off mechanism.
When the AutoTxCell and AutoRxCell collide, AutoTxCell takes pr ecedence if there is a packet to transmit. When the AutoTxCell and AutoRxCell collide, AutoTxCell takes pr ecedence if there is a packet to transmit.
When in a back-off period, AutoRxCell is used. When in a back-off period, AutoRxCell is used.
In case of conflicting with a negotiated cell, autonomous cells In the case of conflict with a negotiated cell, autonomous cells
take precedence over negotiated cells, which is stated in <xref target="IEEE8021 take precedence over negotiated cells, which is stated in <xref target="IEEE802
54" format="default"/>. 154" format="default" sectionFormat="of" derivedContent="IEEE802154"/>.
However, when the Slotframe 0, 1 and 2 use the same length value However, when the Slotframe 0, 1, and 2 use the same length valu
, it is possible for a negotiated cell to avoid the collision with AutoRxCell. e, it is possible for a negotiated cell to avoid the collision with AutoRxCell.
Hence, the same slotframe length for Slotframe 0, 1 and 2 is REC Hence, the same slotframe length for Slotframe 0, 1, and 2 is <b
OMMENDED. cp14>RECOMMENDED</bcp14>.
</t> </t>
<t> <t indent="0" pn="section-3-11">
</t> </t>
</section> </section>
<section anchor="sec_boot" numbered="true" toc="default"> <section anchor="sec_boot" numbered="true" toc="include" removeInRFC="false"
<name>Node Behavior at Boot</name> pn="section-4">
<t> <name slugifiedName="name-node-behavior-at-boot">Node Behavior at Boot</na
This section details the behavior the node SHOULD follow from th me>
e moment it is switched on, until it has successfully joined the network. <t indent="0" pn="section-4-1">
This section details the behavior the node <bcp14>SHOULD</bcp14>
follow from the moment it is switched on until it has successfully joined the n
etwork.
Alternative behaviors may be involved, for example, when alterna tive security solutions are used for the network. Alternative behaviors may be involved, for example, when alterna tive security solutions are used for the network.
<xref target="sec_start_state" format="default"/> details the st <xref target="sec_start_state" format="default" sectionFormat="o
art state; f" derivedContent="Section 4.1"/> details the start state;
<xref target="sec_end_state" format="default"/> details the en <xref target="sec_end_state" format="default" sectionFormat="of"
d state. derivedContent="Section 4.8"/> details the end state.
The other sections detail the 6 steps of the joining process. The other sections detail the six steps of the joining process.
We use the term "pledge" and "joined node", as defined in <xref We use the term "pledge" and "joined node", as defined in <xref
target="I-D.ietf-6tisch-minimal-security" format="default"/>. target="RFC9031" format="default" sectionFormat="of" derivedContent="RFC9031"/>.
</t> </t>
<section anchor="sec_start_state" numbered="true" toc="default"> <section anchor="sec_start_state" numbered="true" toc="include" removeInRF
<name>Start State</name> C="false" pn="section-4.1">
<t> <name slugifiedName="name-start-state">Start State</name>
A node implementing MSF SHOULD implement the Constrained Joi <t indent="0" pn="section-4.1-1">
n Protocol (CoJP) for 6TiSCH <xref target="I-D.ietf-6tisch-minimal-security" for A node implementing MSF <bcp14>SHOULD</bcp14> implement the
mat="default"/>. Constrained Join Protocol (CoJP) for 6TiSCH <xref target="RFC9031" format="defau
As a corollary, this means that a pledge, before being switc lt" sectionFormat="of" derivedContent="RFC9031"/>.
hed on, may be pre-configured with the Pre-Shared Key (PSK) for joining, as well As a corollary, this means that a pledge, before being switc
as any other configuration detailed in (<xref target="I-D.ietf-6tisch-minimal-s hed on, may be preconfigured with the Pre-Shared Key (PSK) for joining, as well
ecurity" format="default"/>). as any other configuration detailed in <xref target="RFC9031" format="default" s
This is not necessary if the node implements a security solu ectionFormat="of" derivedContent="RFC9031"/>.
tion not based on PSKs, such as (<xref target="I-D.ietf-6tisch-dtsecurity-zeroto This is not necessary if the node implements a security solu
uch-join" format="default"/>). tion that is not based on PSKs, such as <xref target="I-D.ietf-6tisch-dtsecurity
</t> -zerotouch-join" format="default" sectionFormat="of" derivedContent="ZEROTOUCH-J
</section> OIN"/>.
<section anchor="sec_frequency" numbered="true" toc="default"> </t>
<name>Step 1 - Choosing Frequency</name> </section>
<t> <section anchor="sec_frequency" numbered="true" toc="include" removeInRFC=
When switched on, the pledge randomly chooses a frequency fr "false" pn="section-4.2">
om the channels that the network cycles amongst, and starts listening for EBs on <name slugifiedName="name-step-1-choosing-frequency">Step 1 - Choosing F
that frequency. requency</name>
</t> <t indent="0" pn="section-4.2-1">
</section> When switched on, the pledge randomly chooses a frequency fr
<section anchor="sec_ebs" numbered="true" toc="default"> om the channels through which the network cycles and starts listening for EBs on
<name>Step 2 - Receiving EBs</name> that frequency.
<t> </t>
</section>
<section anchor="sec_ebs" numbered="true" toc="include" removeInRFC="false
" pn="section-4.3">
<name slugifiedName="name-step-2-receiving-ebs">Step 2 - Receiving EBs</
name>
<t indent="0" pn="section-4.3-1">
Upon receiving the first EB, the pledge continues listening for additional EBs to learn: Upon receiving the first EB, the pledge continues listening for additional EBs to learn:
</t> </t>
<ol spacing="compact" type="1"> <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4.
<li>the number of neighbors N in its vicinity</li> 3-2">
<li>which neighbor to choose as a Join Proxy (JP) for the jo <li pn="section-4.3-2.1" derivedCounter="1.">the number of n
ining process</li> eighbors N in its vicinity, and </li>
</ol> <li pn="section-4.3-2.2" derivedCounter="2.">which neighbor to choose
<t> as a Join Proxy (JP) for the joining process.</li>
After having received the first EB, a node MAY keep listenin </ol>
g for at most MAX_EB_DELAY seconds or until it has received EBs from NUM_NEIGHBO <t indent="0" pn="section-4.3-3">
URS_TO_WAIT distinct neighbors. After having received the first EB, a node <bcp14>MAY</bcp14
This behavior is defined in <xref target="RFC8180" format="d > keep listening for at most MAX_EB_DELAY seconds or until it has received EBs f
efault"/>. rom NUM_NEIGHBOURS_TO_WAIT distinct neighbors.
</t> This behavior is defined in <xref target="RFC8180" format="d
<t> efault" sectionFormat="of" derivedContent="RFC8180"/>.
During this step, the pledge only gets synchronized when it </t>
received enough EB from the network it wishes to join. <t indent="0" pn="section-4.3-4">
How to decide whether an EB originates from a node from the During this step, the pledge only gets synchronized when it
network it wishes to join is implementation-specific, but MAY involve filtering has received enough EB from the network it wishes to join.
EBs by How to decide whether an EB originates from a node from the
the PAN ID field it contains, network it wishes to join is implementation-specific, but <bcp14>MAY</bcp14> inv
the presence and contents of the IE defined in <xref target= olve filtering EBs by
"I-D.ietf-6tisch-enrollment-enhanced-beacon" format="default"/>, or the PANID field it contains,
the presence and contents of the Information Element (IE) de
fined in <xref target="RFC9032" format="default" sectionFormat="of" derivedConte
nt="RFC9032"/>, or
the key used to authenticate it. the key used to authenticate it.
</t> </t>
<t> <t indent="0" pn="section-4.3-5">
The decision of which neighbor to use as a JP is implementat The decision of which neighbor to use as a JP is implementat
ion-specific, and discussed in <xref target="I-D.ietf-6tisch-minimal-security" f ion-specific and is discussed in <xref target="RFC9031" format="default" section
ormat="default"/>. Format="of" derivedContent="RFC9031"/>.
</t> </t>
</section> </section>
<section anchor="sec_join" numbered="true" toc="default"> <section anchor="sec_join" numbered="true" toc="include" removeInRFC="fals
<name>Step 3 - Setting up Autonomous Cells for the Join Process< e" pn="section-4.4">
/name> <name slugifiedName="name-step-3-setting-up-autonomou">Step 3 - Setting
<t> up Autonomous Cells for the Join Process</name>
<t indent="0" pn="section-4.4-1">
After having selected a JP, a node generates a Join Request and installs an AutoTxCell to the JP. After having selected a JP, a node generates a Join Request and installs an AutoTxCell to the JP.
The Join Request is then sent by the pledge to its selected JP over the AutoTxCell. The Join Request is then sent by the pledge to its selected JP over the AutoTxCell.
The AutoTxCell is removed by the pledge when the Join Reques t is sent out. The AutoTxCell is removed by the pledge when the Join Reques t is sent out.
The JP receives the Join Request through its AutoRxCell. The JP receives the Join Request through its AutoRxCell.
Then it forwards the Join Request to the join registrar/coor dinator (JRC), possibly over multiple hops, over the 6P negotiated Tx cells. Then it forwards the Join Request to the Join Registrar/Coor dinator (JRC), possibly over multiple hops, over the 6P negotiated Tx cells.
Similarly, the JRC sends the Join Response to the JP, possib ly over multiple hops, over AutoTxCells or the 6P negotiated Tx cells. Similarly, the JRC sends the Join Response to the JP, possib ly over multiple hops, over AutoTxCells or the 6P negotiated Tx cells.
When the JP received the Join Response from the JRC, it inst alls an AutoTxCell to the pledge and sends that Join Response to the pledge over AutoTxCell. When the JP receives the Join Response from the JRC, it inst alls an AutoTxCell to the pledge and sends that Join Response to the pledge over AutoTxCell.
The AutoTxCell is removed by the JP when the Join Response i s sent out. The AutoTxCell is removed by the JP when the Join Response i s sent out.
The pledge receives the Join Response from its AutoRxCell, t hereby learns the keying material used in the network, as well as other configur ation settings, and becomes a "joined node". The pledge receives the Join Response from its AutoRxCell, t hereby learns the keying material used in the network, as well as other configur ation settings, and becomes a "joined node".
</t> </t>
<t> <t indent="0" pn="section-4.4-2">
When 6LoWPAN Neighbor Discovery (<xref target="RFC8505" form When 6LoWPAN Neighbor Discovery (ND) <xref target="RFC8505"
at="default"/>) (ND) is implemented, the unicast packets used by ND are sent on format="default" sectionFormat="of" derivedContent="RFC8505"/> is implemented, t
the AutoTxCell. he unicast packets used by ND are sent on the AutoTxCell.
The specific process how the ND works during the Join proces The specific process how the ND works during the join proces
s is detailed in <xref target="I-D.ietf-6tisch-architecture" format="default"/>. s is detailed in <xref target="RFC9030" format="default" sectionFormat="of" deri
</t> vedContent="RFC9030"/>.
</section> </t>
<section anchor="sec_rank" numbered="true" toc="default"> </section>
<name>Step 4 - Acquiring a RPL Rank</name> <section anchor="sec_rank" numbered="true" toc="include" removeInRFC="fals
<t> e" pn="section-4.5">
Per <xref target="RFC6550" format="default"/>, the joined no <name slugifiedName="name-step-4-acquiring-a-rpl-rank">Step 4 - Acquirin
de g a RPL Rank</name>
<t indent="0" pn="section-4.5-1">
Per <xref target="RFC6550" format="default" sectionFormat="o
f" derivedContent="RFC6550"/>, the joined node
receives DIOs, receives DIOs,
computes its own Rank, and computes its own Rank, and
selects a routing parent. selects a routing parent.
</t> </t>
</section> </section>
<section anchor="sec_negotiated_cells" numbered="true" toc="default" <section anchor="sec_negotiated_cells" numbered="true" toc="include" remov
> eInRFC="false" pn="section-4.6">
<name>Step 5 - Setting up first Tx negotiated Cells</name> <name slugifiedName="name-step-5-setting-up-first-tx-">Step 5 - Setting
<t> up First Tx Negotiated Cells</name>
Once it has selected a routing parent, the joined node MUST <t indent="0" pn="section-4.6-1">
generate a 6P ADD Request and install an AutoTxCell to that parent. Once it has selected a routing parent, the joined node <bcp1
4>MUST</bcp14> generate a 6P ADD Request and install an AutoTxCell to that paren
t.
The 6P ADD Request is sent out through the AutoTxCell, conta ining the following fields: The 6P ADD Request is sent out through the AutoTxCell, conta ining the following fields:
</t> </t>
<ul spacing="compact"> <dl newline="false" indent="3" spacing="normal" pn="section-4.6-2">
<li>CellOptions: set to TX=1,RX=0,SHARED=0</li> <dt pn="section-4.6-2.1">CellOptions:</dt>
<li>NumCells: set to 1</li> <dd pn="section-4.6-2.2">Set to TX=1, RX=0, SHARED=0.</dd>
<li>CellList: at least 5 cells, chosen according to <xref ta <dt pn="section-4.6-2.3">NumCells:</dt>
rget="sec_celllist" format="default"/></li> <dd pn="section-4.6-2.4">Set to 1.</dd>
</ul> <dt pn="section-4.6-2.5">CellList:</dt>
<t> <dd pn="section-4.6-2.6">At least 5 cells, chosen according to <xref t
arget="sec_celllist" format="default" sectionFormat="of" derivedContent="Section
8"/>.</dd>
</dl>
<t indent="0" pn="section-4.6-3">
The joined node removes the AutoTxCell to the selected paren t when the 6P Request is sent out. The joined node removes the AutoTxCell to the selected paren t when the 6P Request is sent out.
That parent receives the 6P ADD Request from its AutoRxCell. That parent receives the 6P ADD Request from its AutoRxCell.
Then it generates a 6P ADD Response and installs an AutoTxCe ll to the joined node. Then it generates a 6P ADD Response and installs an AutoTxCe ll to the joined node.
When the parent sends out the 6P ADD Response, it MUST remov When the parent sends out the 6P ADD Response, it <bcp14>MUS
e that AutoTxCell. T</bcp14> remove that AutoTxCell.
The joined node receives the 6P ADD Response from its AutoRx The joined node receives the 6P ADD Response from its AutoRx
Cell and completes the 6P transaction. Cell and completes the 6P Transaction.
In case the 6P ADD transaction failed, the node MUST issue a In the case that the 6P ADD transaction failed, the node <bc
nother 6P ADD Request and repeat until the Tx cell is installed to the parent. p14>MUST</bcp14> issue another 6P ADD Request and repeat until the Tx cell is in
</t> stalled to the parent.
</section> </t>
<section anchor="sec_eb_dio" numbered="true" toc="default"> </section>
<name>Step 6 - Send EBs and DIOs</name> <section anchor="sec_eb_dio" numbered="true" toc="include" removeInRFC="fa
<t> lse" pn="section-4.7">
The node starts sending EBs and DIOs on the minimal cell, wh <name slugifiedName="name-step-6-sending-ebs-and-dios">Step 6 - Sending
ile following the transmit rules for broadcast frames from <xref target="sec_min EBs and DIOs</name>
imal" format="default"/>. <t indent="0" pn="section-4.7-1">
</t> The node starts sending EBs and DIOs on the minimal cell, wh
</section> ile following the transmit rules for broadcast frames from <xref target="sec_min
<section anchor="sec_end_state" numbered="true" toc="default"> imal" format="default" sectionFormat="of" derivedContent="Section 2"/>.
<name>End State</name> </t>
<t> </section>
For a new node, the end state of the joining process is: <section anchor="sec_end_state" numbered="true" toc="include" removeInRFC=
</t> "false" pn="section-4.8">
<ul spacing="compact"> <name slugifiedName="name-end-state">End State</name>
<li>it is synchronized to the network</li> <t indent="0" pn="section-4.8-1">
<li>it is using the link-layer keying material it learned th At the end state of the joining process, a new node:
rough the secure joining process</li> </t>
<li>it has selected one neighbor as its routing parent</li> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4
<li>it has one AutoRxCell</li> .8-2">
<li>it has one negotiated Tx cell to the selected parent</li <li pn="section-4.8-2.1">is synchronized to the network,</li>
> <li pn="section-4.8-2.2">is using the link-layer keying material it le
<li>it starts to send DIOs, potentially serving as a router arned through the secure joining process,</li>
for other nodes' traffic</li> <li pn="section-4.8-2.3">has selected one neighbor as its routing pare
<li>it starts to send EBs, potentially serving as a JP for nt,</li>
new pledges</li> <li pn="section-4.8-2.4">has one AutoRxCell,</li>
</ul> <li pn="section-4.8-2.5">has one negotiated Tx cell to the selected pa
</section> rent,</li>
</section> <li pn="section-4.8-2.6">starts to send DIOs, potentially serving as a
<section anchor="sec_add_delete" numbered="true" toc="default"> router for other nodes' traffic, and</li>
<name>Rules for Adding/Deleting Cells</name> <li pn="section-4.8-2.7">starts to send EBs, potentially serving as a
<t> JP for new pledges.</li>
</ul>
</section>
</section>
<section anchor="sec_add_delete" numbered="true" toc="include" removeInRFC="
false" pn="section-5">
<name slugifiedName="name-rules-for-adding-and-deleti">Rules for Adding an
d Deleting Cells</name>
<t indent="0" pn="section-5-1">
Once a node has joined the 6TiSCH network, it adds/deletes/reloc ates cells with the selected parent for three reasons: Once a node has joined the 6TiSCH network, it adds/deletes/reloc ates cells with the selected parent for three reasons:
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5-2
<li>to match the link-layer resources to the traffic between the ">
node and the selected parent (<xref target="sec_traffic" format="default"/>)</l <li pn="section-5-2.1">to match the link-layer resources to the traffic
i> between the node and the selected parent (<xref target="sec_traffic" format="def
<li>to handle switching parent or(<xref target="sec_switching_pa ault" sectionFormat="of" derivedContent="Section 5.1"/>),</li>
rent" format="default"/>)</li> <li pn="section-5-2.2">to handle switching the parent (<xref target="sec
<li>to handle a schedule collision (<xref target="sec_collision" _switching_parent" format="default" sectionFormat="of" derivedContent="Section 5
format="default"/>)</li> .2"/>), or</li>
</ul> <li pn="section-5-2.3">to handle a schedule collision (<xref target="sec
<t> _collision" format="default" sectionFormat="of" derivedContent="Section 5.3"/>).
Those cells are called 'negotiated cells' as they are scheduled </li>
through 6P, negotiated with the node's parent. </ul>
Without specific declaration, all cells mentioned in this sectio <t indent="0" pn="section-5-3">
n are negotiated cells and they are installed at Slotframe 2. These cells are called "negotiated cells" as they are scheduled
</t> through 6P and negotiated with the node's parent.
<section anchor="sec_traffic" numbered="true" toc="default"> Without specific declaration, all cells mentioned in this sectio
<name>Adapting to Traffic</name> n are negotiated cells, and they are installed at Slotframe 2.
<t> </t>
A node implementing MSF MUST implement the behavior describe <section anchor="sec_traffic" numbered="true" toc="include" removeInRFC="f
d in this section. alse" pn="section-5.1">
</t> <name slugifiedName="name-adapting-to-traffic">Adapting to Traffic</name
<t> >
<t indent="0" pn="section-5.1-1">
A node implementing MSF <bcp14>MUST</bcp14> implement the be
havior described in this section.
</t>
<t indent="0" pn="section-5.1-2">
The goal of MSF is to manage the communication schedule in t he 6TiSCH schedule in a distributed manner. The goal of MSF is to manage the communication schedule in t he 6TiSCH schedule in a distributed manner.
For a node, this translates into monitoring the current usag e of the cells it has to one of its neighbors, in most cases to the selected par ent. For a node, this translates into monitoring the current usag e of the cells it has to one of its neighbors, in most cases to the selected par ent.
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5
<li> .1-3">
<li pn="section-5.1-3.1">
If the node determines that the number of link-layer fra mes it is attempting to exchange with the selected parent per unit of time is la rger than the capacity offered by the TSCH negotiated cells it has scheduled wit h it, the node issues a 6P ADD command to that parent to add cells to the TSCH s chedule. If the node determines that the number of link-layer fra mes it is attempting to exchange with the selected parent per unit of time is la rger than the capacity offered by the TSCH negotiated cells it has scheduled wit h it, the node issues a 6P ADD command to that parent to add cells to the TSCH s chedule.
</li> </li>
<li> <li pn="section-5.1-3.2">
If the traffic is lower than the capacity, the node issu es a 6P DELETE command to that parent to delete cells from the TSCH schedule. If the traffic is lower than the capacity, the node issu es a 6P DELETE command to that parent to delete cells from the TSCH schedule.
</li> </li>
</ul> </ul>
<t> <t indent="0" pn="section-5.1-4">
The node MUST maintain two separate pairs of the following c The node <bcp14>MUST</bcp14> maintain two separate pairs of
ounters for the selected parent, the following counters for the selected parent:
one for the negotiated Tx cells to that parent and one for the negotiated Tx cells to that parent and
one for the negotiated Rx cells to that parent. one for the negotiated Rx cells to that parent.
</t> </t>
<dl newline="false" spacing="compact" indent="4"> <dl newline="false" indent="3" spacing="normal" pn="section-5.1-5">
<dt>NumCellsElapsed :</dt> <dt pn="section-5.1-5.1">NumCellsElapsed:</dt>
<dd> <dd pn="section-5.1-5.2">
Counts the number of negotiated cells that have elapsed since the counter was initialized. Counts the number of negotiated cells that have elapsed since the counter was initialized.
This counter is initialized at 0. This counter is initialized at 0.
When the current cell is declared as a negotiated cell t o the selected parent, NumCellsElapsed is incremented by exactly 1, regardless o f whether the cell is used to transmit/receive a frame. When the current cell is declared as a negotiated cell t o the selected parent, NumCellsElapsed is incremented by exactly 1, regardless o f whether the cell is used to transmit or receive a frame.
</dd> </dd>
<dt>NumCellsUsed:</dt> <dt pn="section-5.1-5.3">NumCellsUsed:</dt>
<dd> <dd pn="section-5.1-5.4">
<t> <t indent="0" pn="section-5.1-5.4.1">
Counts the number of negotiated cells that have been used. Counts the number of negotiated cells that have been used.
This counter is initialized at 0. This counter is initialized at 0.
NumCellsUsed is incremented by exactly 1 when, durin g a negotiated cell to the selected parent, either of the following happens: NumCellsUsed is incremented by exactly 1 when, durin g a negotiated cell to the selected parent, either of the following happens:
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="secti
<li> on-5.1-5.4.2">
<li pn="section-5.1-5.4.2.1">
The node sends a frame to the parent. The node sends a frame to the parent.
The counter increments regardless of whether a l ink-layer acknowledgment was received or not. The counter increments regardless of whether a l ink-layer acknowledgment was received or not.
</li> </li>
<li> <li pn="section-5.1-5.4.2.2">
The node receives a valid frame from the parent. The node receives a valid frame from the parent.
The counter increments only when the frame is a valid IEEE802.15.4 frame. The counter increments only when a valid frame p er <xref target="IEEE802154" format="default" sectionFormat="of" derivedContent= "IEEE802154"/> is received by the node from its parent.
</li> </li>
</ul> </ul>
</dd> </dd>
</dl> </dl>
<t> <t indent="0" pn="section-5.1-6">
The cell option of cells listed in CellList in 6P Request fr The cell option of cells listed in CellList in a 6P Request
ame SHOULD be either (Tx=1, Rx=0) only or (Tx=0, Rx=1) only. frame <bcp14>SHOULD</bcp14> be either (Tx=1, Rx=0) only or (Tx=0, Rx=1) only.
Both NumCellsElapsed and NumCellsUsed counters can be used f Both NumCellsElapsed and NumCellsUsed counters can be used f
or both type of negotiated cells. or both types of negotiated cells.
</t> </t>
<t> <t indent="0" pn="section-5.1-7">
As there is no negotiated Rx Cell installed at initial time, As there is no negotiated Rx cell installed at initial time,
the AutoRxCell is taken into account as well for downstream traffic adaptation. the AutoRxCell is taken into account as well for downstream traffic adaptation.
In this case: In this case:
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5
<li> .1-8">
<li pn="section-5.1-8.1">
NumCellsElapsed is incremented by exactly 1 when the cur rent cell is AutoRxCell. NumCellsElapsed is incremented by exactly 1 when the cur rent cell is AutoRxCell.
</li> </li>
<li> <li pn="section-5.1-8.2">
NumCellsUsed is incremented by exactly 1 when the node r eceives a frame from the selected parent on AutoRxCell. NumCellsUsed is incremented by exactly 1 when the node r eceives a frame from the selected parent on AutoRxCell.
</li> </li>
</ul> </ul>
<t> <t indent="0" pn="section-5.1-9">
Implementors MAY choose to create the same counters for each Implementors <bcp14>MAY</bcp14> choose to create the same co
neighbor, and add them as additional statistics in the neighbor table. unters for each neighbor and add them as additional statistics in the neighbor t
</t> able.
<t> </t>
<t indent="0" pn="section-5.1-10">
The counters are used as follows: The counters are used as follows:
</t> </t>
<ol spacing="compact" type="1"> <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-5.
<li> 1-11">
<li pn="section-5.1-11.1" derivedCounter="1.">
Both NumCellsElapsed and NumCellsUsed are initialized to 0 when the node boots. Both NumCellsElapsed and NumCellsUsed are initialized to 0 when the node boots.
</li> </li>
<li> <li anchor="counter_step2" pn="section-5.1-11.2" derivedCounter="2.">
<t> <t indent="0" pn="section-5.1-11.2.1">
When the value of NumCellsElapsed reaches MAX_NUM_CE LLS: When the value of NumCellsElapsed reaches MAX_NUM_CE LLS:
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="secti
<li>If NumCellsUsed &gt; LIM_NUMCELLSUSED_HIGH, trig on-5.1-11.2.2">
ger 6P to add a single cell to the selected parent</li> <li pn="section-5.1-11.2.2.1">If NumCellsUsed is greater than LIM_
<li>If NumCellsUsed &lt; LIM_NUMCELLSUSED_LOW, trig NUMCELLSUSED_HIGH, trigger 6P to add a single cell to the selected parent.</li>
ger 6P to remove a single cell to the selected parent</li> <li pn="section-5.1-11.2.2.2">If NumCellsUsed is less than LIM_NUM
<li>Reset both NumCellsElapsed and NumCellsUsed to CELLSUSED_LOW, trigger 6P to remove a single cell to the selected parent.</li>
0 and go to step 2.</li> <li pn="section-5.1-11.2.2.3">Reset both NumCellsElapsed and NumCe
</ul> llsUsed to 0 and restart <xref target="counter_step2" format="none" sectionForma
</li> t="of" derivedContent="">#2</xref>.</li>
</ol> </ul>
<t> </li>
</ol>
<t indent="0" pn="section-5.1-12">
The value of MAX_NUM_CELLS is chosen according to the traffi c type of the network. The value of MAX_NUM_CELLS is chosen according to the traffi c type of the network.
Generally speaking, the larger the value MAX_NUM_CELLS is, t Generally speaking, the larger the value MAX_NUM_CELLS is, t
he more accurate the cell usage is calculated. he more accurately the cell usage is calculated.
The 6P traffic overhead using a larger value of MAX_NUM_CELL By using a larger value of MAX_NUM_CELLS, the 6P traffic ove
S could be reduced as well. rhead could be reduced as well.
Meanwhile, the latency won't increase much by using a larger value of MAX_NUM_CELLS for periodic traffic type. Meanwhile, the latency won't increase much by using a larger value of MAX_NUM_CELLS for periodic traffic type.
For bursty traffic, larger value of MAX_NUM_CELLS indeed int For bursty traffic, a larger value of MAX_NUM_CELLS indeed i
roduces higher latency. ntroduces higher latency.
The latency caused by slight changes of traffic load can be The latency caused by slight changes of traffic load can be
absolved by the additional scheduled cells. alleviated by the additional scheduled cells.
In this sense, MSF is a scheduling function trading latency In this sense, MSF is a Scheduling Function that trades late
with energy by scheduling more cells than needed. ncy with energy by scheduling more cells than needed.
Setting MAX_NUM_CELLS to a value at least 4x of the recent m Setting MAX_NUM_CELLS to a value at least four times the rec
aximum number of cells used in a slot frame is RECOMMENDED. ent maximum number of cells used in a slotframe is <bcp14>RECOMMENDED</bcp14>.
For example, a 2 packets/slotframe traffic load results an a For example, a two packets/slotframe traffic load results in
verage 4 cells scheduled (2 cells are used), using at least the value of double an average of four cells scheduled (two cells are used), using at least the val
number of scheduled cells (which is 8) as MAX_NUM_CELLS gives a good resolution ue of double the number of scheduled cells (which is eight) as MAX_NUM_CELLS giv
on cell usage calculation. es a good resolution on the cell usage calculation.
</t> </t>
<t> <t indent="0" pn="section-5.1-13">
In case that a node booted or disappeared from the network, In the case that a node has booted or has disappeared from t
the cell reserved at the selected parent may be kept in the schedule forever. he network, the cell reserved at the selected parent may be kept in the schedule
A clean-up mechanism MUST be provided to resolve this issue. forever.
The clean-up mechanism is implementation-specific. A cleanup mechanism <bcp14>MUST</bcp14> be provided to resol
The goal is to confirm those negotiated cells are not used a ve this issue.
nymore by the associated neighbors and remove them from the schedule. The cleanup mechanism is implementation-specific.
</t> The goal is to confirm that those negotiated cells are not u
</section> sed anymore by the associated neighbors and remove them from the schedule.
<section anchor="sec_switching_parent" numbered="true" toc="default" </t>
> </section>
<name>Switching Parent</name> <section anchor="sec_switching_parent" numbered="true" toc="include" remov
<t> eInRFC="false" pn="section-5.2">
A node implementing MSF SHOULD implement the behavior descri <name slugifiedName="name-switching-parent">Switching Parent</name>
bed in this section. <t indent="0" pn="section-5.2-1">
</t> A node implementing MSF <bcp14>SHOULD</bcp14> implement the
<t> behavior described in this section.
Part of its normal operation, the RPL routing protocol can h </t>
ave a node switch parent. <t indent="0" pn="section-5.2-2">
The procedure for switching from the old parent to the new p As part of its normal operation, RPL can have a node switch
arent is: parent.
</t> The procedure for switching from the old parent to the new p
<ol spacing="compact" type="1"> arent is the following:
<li>the node counts the number of negotiated cells it has pe </t>
r slotframe to the old parent</li> <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-5.
<li>the node triggers one or more 6P ADD commands to schedul 2-3">
e the same number of negotiated cells with same cell options to the new parent</ <li pn="section-5.2-3.1" derivedCounter="1.">The node counts
li> the number of negotiated cells it has per slotframe to the old parent.</li>
<li>when that successfully completes, the node issues a 6P C <li pn="section-5.2-3.2" derivedCounter="2.">The node triggers one or
LEAR command to its old parent</li> more 6P ADD commands to schedule the same number of negotiated cells with same c
</ol> ell options to the new parent.</li>
<t> <li pn="section-5.2-3.3" derivedCounter="3.">When that successfully co
For what type of negotiated cell should be installed first, mpletes, the node issues a 6P CLEAR command to its old parent.</li>
it depends on which traffic has the higher priority, upstream or downstream, whi </ol>
ch is application-specific and out-of-scope of MSF. <t indent="0" pn="section-5.2-4">
</t> The type of negotiated cell that should be installed first de
</section> pends on which traffic has the higher priority, upstream or downstream, which is
<section anchor="sec_collision" numbered="true" toc="default"> application-specific and out of scope of MSF.
<name>Handling Schedule Collisions</name> </t>
<t> </section>
A node implementing MSF SHOULD implement the behavior descri <section anchor="sec_collision" numbered="true" toc="include" removeInRFC=
bed in this section. "false" pn="section-5.3">
Other schedule collisions handling algorithm can be an alter <name slugifiedName="name-handling-schedule-collision">Handling Schedule
native of the algorithm proposed in this section. Collisions</name>
</t> <t indent="0" pn="section-5.3-1">
<t> A node implementing MSF <bcp14>SHOULD</bcp14> implement the
Since scheduling is entirely distributed, there is a non-zer behavior described in this section.
o probability that two pairs of nearby neighbor nodes schedule a negotiated cell Other algorithms for handling schedule collisions can be an
at the same [slotOffset,channelOffset] location in the TSCH schedule. alternative to the algorithm proposed in this section.
</t>
<t indent="0" pn="section-5.3-2">
Since scheduling is entirely distributed, there is a nonzero
probability that two pairs of nearby neighbor nodes schedule a negotiated cell
at the same [slotOffset,channelOffset] location in the TSCH schedule.
In that case, data exchanged by the two pairs may collide on that cell. In that case, data exchanged by the two pairs may collide on that cell.
We call this case a "schedule collision". We call this case a "schedule collision".
</t> </t>
<t> <t indent="0" pn="section-5.3-3">
The node MUST maintain the following counters for each negot The node <bcp14>MUST</bcp14> maintain the following counters
iated Tx cell to the selected parent: for each negotiated Tx cell to the selected parent:
</t> </t>
<dl newline="false" spacing="compact" indent="4"> <dl newline="false" indent="3" spacing="normal" pn="section-5.3-4">
<dt>NumTx:</dt> <dt pn="section-5.3-4.1">NumTx:</dt>
<dd> <dd pn="section-5.3-4.2">
Counts the number of transmission attempts on that cell. Counts the number of transmission attempts on that cell.
Each time the node attempts to transmit a frame on that cell, NumTx is incremented by exactly 1. Each time the node attempts to transmit a frame on that cell, NumTx is incremented by exactly 1.
</dd> </dd>
<dt>NumTxAck:</dt> <dt pn="section-5.3-4.3">NumTxAck:</dt>
<dd> <dd pn="section-5.3-4.4">
Counts the number of successful transmission attempts on that cell. Counts the number of successful transmission attempts on that cell.
Each time the node receives an acknowledgment for a tran smission attempt, NumTxAck is incremented by exactly 1. Each time the node receives an acknowledgment for a tran smission attempt, NumTxAck is incremented by exactly 1.
</dd> </dd>
</dl> </dl>
<t> <t indent="0" pn="section-5.3-5">
Since both NumTx and NumTxAck are initialized to 0, we neces Since both NumTx and NumTxAck are initialized to 0, we neces
sarily have NumTxAck &lt;= NumTx. sarily have NumTxAck less than or equal to NumTx.
We call Packet Delivery Ratio (PDR) the ratio NumTxAck/NumTx We call Packet Delivery Ratio (PDR) the ratio NumTxAck/NumTx
; and represent it as a percentage. and represent it as a percentage.
A cell with PDR=50% means that half of the frames transmitte A cell with a PDR equal to 50% means that half of the frames
d are not acknowledged. transmitted are not acknowledged.
</t> </t>
<t> <t indent="0" pn="section-5.3-6">
Each time the node switches parent (or during the join proce Each time the node switches parent (or during the join proce
ss when the node selects a parent for the first time), both NumTx and NumTxAck M ss when the node selects a parent for the first time), both NumTx and NumTxAck <
UST be reset to 0. bcp14>MUST</bcp14> be reset to 0.
They increment over time, as the schedule is executed and th They increment over time, as the schedule is executed, and t
e node sends frames to that parent. he node sends frames to that parent.
When NumTx reaches MAX_NUMTX, both NumTx and NumTxAck MUST b When NumTx reaches MAX_NUMTX, both NumTx and NumTxAck <bcp14
e divided by 2. >MUST</bcp14> be divided by 2.
MAX_NUMTX needs to be a power of two to avoid division error . MAX_NUMTX needs to be a power of two to avoid division error .
For example, when MAX_NUMTX is set to 256, from NumTx=255 an For example, when MAX_NUMTX is set to 256, and NumTx=255 and
d NumTxAck=127, the counters become NumTx=128 and NumTxAck=64 if one frame is se NumTxAck=127, the counters become NumTx=128 and NumTxAck=64 if one frame is sen
nt to the parent with an Acknowledgment received. t to the parent with an acknowledgment received.
This operation does not change the value of the PDR, but all This operation does not change the value of the PDR but allo
ows the counters to keep incrementing. ws the counters to keep incrementing.
The value of MAX_NUMTX is implementation-specific. The value of MAX_NUMTX is implementation-specific.
</t> </t>
<t> <t indent="0" pn="section-5.3-7">
The key for detecting a schedule collision is that, if a nod e has several cells to the selected parent, all cells should exhibit the same PD R. The key for detecting a schedule collision is that, if a nod e has several cells to the selected parent, all cells should exhibit the same PD R.
A cell which exhibits a PDR significantly lower than the oth A cell that exhibits a PDR significantly lower than the othe
ers indicates than there are collisions on that cell. rs indicates that there are collisions on that cell.
</t> </t>
<t> <t indent="0" pn="section-5.3-8">
Every HOUSEKEEPINGCOLLISION_PERIOD, the node executes the fo llowing steps: Every HOUSEKEEPINGCOLLISION_PERIOD, the node executes the fo llowing steps:
</t> </t>
<ol spacing="compact" type="1"> <ol spacing="normal" indent="adaptive" start="1" type="1" pn="section-5.
<li> 3-9">
<li pn="section-5.3-9.1" derivedCounter="1.">
It computes, for each negotiated Tx cell with the parent (not for the autonomous cell), that cell's PDR. It computes, for each negotiated Tx cell with the parent (not for the autonomous cell), that cell's PDR.
</li> </li>
<li> <li pn="section-5.3-9.2" derivedCounter="2.">
Any cell that hasn't yet had NumTx divided by 2 since it was last reset is skipped in steps 3 and 4. Any cell that hasn't yet had NumTx divided by 2 since it was last reset is skipped in steps 3 and 4.
This avoids triggering cell relocation when the values o f NumTx and NumTxAck are not statistically significant yet. This avoids triggering cell relocation when the values o f NumTx and NumTxAck are not statistically significant yet.
</li> </li>
<li> <li pn="section-5.3-9.3" derivedCounter="3.">
It identifies the cell with the highest PDR. It identifies the cell with the highest PDR.
</li> </li>
<li> <li pn="section-5.3-9.4" derivedCounter="4.">
For any other cell, it compares its PDR against that of the cell with the highest PDR. For any other cell, it compares its PDR against that of the cell with the highest PDR.
If the subtraction difference between the PDR of the cel l and the highest PDR is larger than RELOCATE_PDRTHRES, it triggers the relocati on of that cell using a 6P RELOCATE command. If the subtraction difference between the PDR of the cel l and the highest PDR is larger than RELOCATE_PDRTHRES, it triggers the relocati on of that cell using a 6P RELOCATE command.
</li> </li>
</ol> </ol>
<t> <t indent="0" pn="section-5.3-10">
The RELOCATION for negotiated Rx cells is not supported by M SF. The RELOCATION for negotiated Rx cells is not supported by M SF.
</t> </t>
</section> </section>
</section> </section>
<section anchor="sec_signal" numbered="true" toc="default"> <section anchor="sec_signal" numbered="true" toc="include" removeInRFC="fals
<name>6P SIGNAL command</name> e" pn="section-6">
<t> <name slugifiedName="name-6p-signal-command">6P SIGNAL Command</name>
<t indent="0" pn="section-6-1">
The 6P SIGNAL command is not used by MSF. The 6P SIGNAL command is not used by MSF.
</t> </t>
</section> </section>
<section anchor="sec_sfid" numbered="true" toc="default"> <section anchor="sec_sfid" numbered="true" toc="include" removeInRFC="false"
<name>Scheduling Function Identifier</name> pn="section-7">
<t> <name slugifiedName="name-scheduling-function-identif">Scheduling Function
The Scheduling Function Identifier (SFID) of MSF is IANA_6TISCH_ Identifier</name>
SFID_MSF. <t indent="0" pn="section-7-1">
How the value of IANA_6TISCH_SFID_MSF is chosen is described in The Scheduling Function Identifier (SFID) of MSF is 0.
<xref target="sec_iana" format="default"/>. How the value of 0 was chosen is described in <xref target="sec_
</t> iana" format="default" sectionFormat="of" derivedContent="Section 17"/>.
</section> </t>
<section anchor="sec_celllist" numbered="true" toc="default"> </section>
<name>Rules for CellList</name> <section anchor="sec_celllist" numbered="true" toc="include" removeInRFC="fa
<t> lse" pn="section-8">
MSF uses 2-step 6P Transactions exclusively. <name slugifiedName="name-rules-for-celllist">Rules for CellList</name>
6P transactions are only initiated by a node towards its parent. <t indent="0" pn="section-8-1">
As a result, the cells to put in the CellList of a 6P ADD comman MSF uses two-step 6P Transactions exclusively.
d, and in the candidate CellList of a RELOCATE command, are chosen by the node i 6P Transactions are only initiated by a node towards its parent.
nitiating the 6P transaction. As a result, the cells to put in the CellList of a 6P ADD comman
d, and in the candidate CellList of a RELOCATE command, are chosen by the node i
nitiating the 6P Transaction.
In both cases, the same rules apply: In both cases, the same rules apply:
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-8-2
<li>The CellList is RECOMMENDED to have 5 or more cells.</li> ">
<li>Each cell in the CellList MUST have a different slotOffset v <li pn="section-8-2.1">The CellList is <bcp14>RECOMMENDED</bcp14> to hav
alue.</li> e five or more cells.</li>
<li>For each cell in the CellList, the node MUST NOT have any sc <li pn="section-8-2.2">Each cell in the CellList <bcp14>MUST</bcp14> hav
heduled cell on the same slotOffset.</li> e a different slotOffset value.</li>
<li>The slotOffset value of any cell in the CellList MUST NOT be <li pn="section-8-2.3">For each cell in the CellList, the node <bcp14>MU
the same as the slotOffset of the minimal cell (slotOffset=0).</li> ST NOT</bcp14> have any scheduled cell on the same slotOffset.</li>
<li>The slotOffset of a cell in the CellList SHOULD be random <li pn="section-8-2.4">The slotOffset value of any cell in the CellList
ly and uniformly chosen among all the slotOffset values that satisfy the restric <bcp14>MUST NOT</bcp14> be the same as the slotOffset of the minimal cell (slotO
tions above.</li> ffset=0).</li>
<li>The channelOffset of a cell in the CellList SHOULD be random <li pn="section-8-2.5">The slotOffset of a cell in the CellList <bcp1
ly and uniformly chosen in [0..numFrequencies], where numFrequencies represents 4>SHOULD</bcp14> be randomly and uniformly chosen among all the slotOffset value
the number of frequencies a node can communicate on.</li> s that satisfy the restrictions above.</li>
</ul> <li pn="section-8-2.6">The channelOffset of a cell in the CellList <bcp1
<t> 4>SHOULD</bcp14> be randomly and uniformly chosen from [0..numFrequencies], wher
As a consequence of random cell selection, there is a non-zero c e numFrequencies represents the number of frequencies a node can communicate on.
hance that nodes in the vicinity installed cells with same slotOffset and channe </li>
lOffset. </ul>
An implementer MAY implement a strategy to monitor the candidate <t indent="0" pn="section-8-3">
cells before adding them in CellList to avoid collision. As a consequence of random cell selection, there is a nonzero ch
For example, a node MAY maintain a candidate cell pool for the C ance that nodes in the vicinity have installed cells with same slotOffset and ch
ellList. annelOffset.
The candidate cells in the pool are pre-configured as Rx cells t An implementer <bcp14>MAY</bcp14> implement a strategy to monito
o promiscuously listen to detect transmissions on those cells. r the candidate cells before adding them in CellList to avoid collision.
If IEEE802.15.4 transmissions are observed on one cell over mult For example, a node <bcp14>MAY</bcp14> maintain a candidate cell
iple iterations of the schedule, that cell is probably used by a TSCH neighbor. pool for the CellList.
It is moved out from the pool and a new cell is selected as a ca The candidate cells in the pool are preconfigured as Rx cells to
ndidate cell. promiscuously listen to detect transmissions on those cells.
If transmissions that rely on <xref target="IEEE802154" format="
default" sectionFormat="of" derivedContent="IEEE802154"/> are observed on one ce
ll over multiple iterations of the schedule, that cell is probably used by a TSC
H neighbor.
It is moved out from the pool, and a new cell is selected as a c
andidate cell.
The cells in CellList are picked from the candidate pool directl y when required. The cells in CellList are picked from the candidate pool directl y when required.
</t> </t>
</section> </section>
<section anchor="sec_timeout" numbered="true" toc="default"> <section anchor="sec_timeout" numbered="true" toc="include" removeInRFC="fal
<name>6P Timeout Value</name> se" pn="section-9">
<t> <name slugifiedName="name-6p-timeout-value">6P Timeout Value</name>
<t indent="0" pn="section-9-1">
The timeout value is calculated for the worst case that a 6P res ponse is received, which means the 6P response is sent out successfully at the v ery latest retransmission. The timeout value is calculated for the worst case that a 6P res ponse is received, which means the 6P response is sent out successfully at the v ery latest retransmission.
And for each retransmission, it backs-off with largest value. And for each retransmission, it backs off with largest value.
Hence the 6P timeout value is calculated as ((2^MAXBE)-1)*MAXRET Hence the 6P timeout value is calculated as ((2<sup>MAXBE</sup>)
RIES*SLOTFRAME_LENGTH, where: - 1) * MAXRETRIES * SLOTFRAME_LENGTH, where:
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9-2
<li>MAXBE, defined in IEEE802.15.4, is the maximum backoff expo ">
nent used</li> <li pn="section-9-2.1">MAXBE, defined in <xref target="IEEE802154" forma
<li>MAXRETRIES, defined in IEEE802.15.4, is the maximum retransm t="default" sectionFormat="of" derivedContent="IEEE802154"/>, is the maximum ba
ission times</li> ckoff exponent used.</li>
<li>SLOTFRAME_LENGTH represents the length of slotframe</li> <li pn="section-9-2.2">MAXRETRIES, defined in <xref target="IEEE802154"
</ul> format="default" sectionFormat="of" derivedContent="IEEE802154"/>, is the maximu
</section> m retransmission times.</li>
<section anchor="sec_ordering" numbered="true" toc="default"> <li pn="section-9-2.3">SLOTFRAME_LENGTH represents the length of slotfra
<name>Rule for Ordering Cells</name> me.</li>
<t> </ul>
Cells are ordered slotOffset first, channelOffset second. </section>
</t> <section anchor="sec_ordering" numbered="true" toc="include" removeInRFC="fa
<t> lse" pn="section-10">
The following sequence is correctly ordered (each element repres <name slugifiedName="name-rule-for-ordering-cells">Rule for Ordering Cells
ents the [slottOffset,channelOffset] of a cell in the schedule): </name>
</t> <t indent="0" pn="section-10-1">
<t> Cells are ordered by slotOffset first, channelOffset second.
</t>
<t indent="0" pn="section-10-2">
The following sequence is correctly ordered (each element repres
ents the [slotOffset,channelOffset] of a cell in the schedule):
</t>
<t indent="0" pn="section-10-3">
[1,3],[1,4],[2,0],[5,3],[6,0],[6,3],[7,9] [1,3],[1,4],[2,0],[5,3],[6,0],[6,3],[7,9]
</t> </t>
</section> </section>
<section anchor="sec_metadata" numbered="true" toc="default"> <section anchor="sec_metadata" numbered="true" toc="include" removeInRFC="fa
<name>Meaning of the Metadata Field</name> lse" pn="section-11">
<t> <name slugifiedName="name-meaning-of-the-metadata-fie">Meaning of the Meta
data Field</name>
<t indent="0" pn="section-11-1">
The Metadata field is not used by MSF. The Metadata field is not used by MSF.
</t> </t>
</section> </section>
<section anchor="sec_error" numbered="true" toc="default"> <section anchor="sec_error" numbered="true" toc="include" removeInRFC="false
<name>6P Error Handling</name> " pn="section-12">
<t> <name slugifiedName="name-6p-error-handling">6P Error Handling</name>
Section 6.2.4 of <xref target="RFC8480" format="default"/> lists <t indent="0" pn="section-12-1">
the 6P Return Codes. <xref target="RFC8480" section="6.2.4" sectionFormat="of" format
<xref target="tab_error" format="default"/> lists the same error ="default" derivedLink="https://rfc-editor.org/rfc/rfc8480#section-6.2.4" derive
codes, and the behavior a node implementing MSF SHOULD follow. dContent="RFC8480"/> lists the 6P return codes.
</t> <xref target="tab_error" format="default" sectionFormat="of" der
<figure anchor="tab_error"> ivedContent="Table 1"/> lists the same error codes and the behavior a node imple
<name>Recommended behavior for each 6P Error Code.</name> menting MSF <bcp14>SHOULD</bcp14> follow.
<artwork name="" type="" align="left" alt=""><![CDATA[ </t>
+-----------------+----------------------+ <table anchor="tab_error" align="center" pn="table-1">
| Code | RECOMMENDED behavior | <name slugifiedName="name-recommended-behavior-for-ea">Recommended Behav
+-----------------+----------------------+ ior for Each 6P Error Code</name>
| RC_SUCCESS | nothing | <thead>
| RC_EOL | nothing | <tr>
| RC_ERR | quarantine | <th align="left" colspan="1" rowspan="1">Code</th>
| RC_RESET | quarantine | <th align="left" colspan="1" rowspan="1">
| RC_ERR_VERSION | quarantine | <bcp14>RECOMMENDED</bcp14> Behavior</th>
| RC_ERR_SFID | quarantine | </tr>
| RC_ERR_SEQNUM | clear | </thead>
| RC_ERR_CELLLIST | clear | <tbody>
| RC_ERR_BUSY | waitretry | <tr>
| RC_ERR_LOCKED | waitretry | <td align="left" colspan="1" rowspan="1"> RC_SUCCESS
+-----------------+----------------------+ </td>
]]></artwork> <td align="left" colspan="1" rowspan="1"> nothing</td>
</figure> </tr>
<t> <tr>
The meaning of each behavior from <xref target="tab_error" forma <td align="left" colspan="1" rowspan="1"> RC_EOL
t="default"/> is: </td>
</t> <td align="left" colspan="1" rowspan="1"> nothing</td>
<dl newline="false" spacing="compact" indent="4"> </tr>
<dt>nothing:</dt> <tr>
<dd> <td align="left" colspan="1" rowspan="1"> RC_ERR
Indicates that this Return Code is not an error. </td>
<td align="left" colspan="1" rowspan="1"> quarantine</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> RC_RESET
</td>
<td align="left" colspan="1" rowspan="1"> quarantine </td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> RC_ERR_VERSION</td>
<td align="left" colspan="1" rowspan="1"> quarantine</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> RC_ERR_SFID</td>
<td align="left" colspan="1" rowspan="1"> quarantine</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> RC_ERR_SEQNUM</td>
<td align="left" colspan="1" rowspan="1"> clear</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> RC_ERR_CELLLIST </td>
<td align="left" colspan="1" rowspan="1"> clear</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> RC_ERR_BUSY</td>
<td align="left" colspan="1" rowspan="1"> waitretry</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> RC_ERR_LOCKED</td>
<td align="left" colspan="1" rowspan="1"> waitretry</td>
</tr>
</tbody>
</table>
<t indent="0" pn="section-12-3">
The meaning of each behavior from <xref target="tab_error" forma
t="default" sectionFormat="of" derivedContent="Table 1"/> is:
</t>
<dl newline="false" indent="3" spacing="normal" pn="section-12-4">
<dt pn="section-12-4.1">nothing:</dt>
<dd pn="section-12-4.2">
Indicates that this return code is not an error.
No error handling behavior is triggered. No error handling behavior is triggered.
</dd> </dd>
<dt>clear:</dt> <dt pn="section-12-4.3">clear:</dt>
<dd> <dd pn="section-12-4.4">
Abort the 6P Transaction. Abort the 6P Transaction.
Issue a 6P CLEAR command to that neighbor (this command may fail at the link layer). Issue a 6P CLEAR command to that neighbor (this command may fail at the link layer).
Remove all cells scheduled with that neighbor from the local schedule. Remove all cells scheduled with that neighbor from the local schedule.
</dd> </dd>
<dt>quarantine:</dt> <dt pn="section-12-4.5">quarantine:</dt>
<dd> <dd pn="section-12-4.6">
Same behavior as for "clear". Same behavior as for "clear".
In addition, remove the node from the neighbor and routing t ables. In addition, remove the node from the neighbor and routing t ables.
Place the node's identifier in a quarantine list for QUARANT INE_DURATION. Place the node's identifier in a quarantine list for QUARANT INE_DURATION.
When in quarantine, drop all frames received from that node. When in quarantine, drop all frames received from that node.
</dd> </dd>
<dt>waitretry:</dt> <dt pn="section-12-4.7">waitretry:</dt>
<dd> <dd pn="section-12-4.8">
Abort the 6P Transaction. Abort the 6P Transaction.
Wait for a duration randomly and uniformly chosen in [WAIT_D URATION_MIN,WAIT_DURATION_MAX]. Wait for a duration randomly and uniformly chosen from [WAIT _DURATION_MIN,WAIT_DURATION_MAX].
Retry the same transaction. Retry the same transaction.
</dd> </dd>
</dl> </dl>
</section> </section>
<section anchor="sec_inconsistency" numbered="true" toc="default"> <section anchor="sec_inconsistency" numbered="true" toc="include" removeInRF
<name>Schedule Inconsistency Handling</name> C="false" pn="section-13">
<t> <name slugifiedName="name-schedule-inconsistency-hand">Schedule Inconsiste
The behavior when schedule inconsistency is detected is explaine ncy Handling</name>
d in <xref target="tab_error" format="default"/>, for 6P Return Code RC_ERR_SEQN <t indent="0" pn="section-13-1">
UM. The behavior when schedule inconsistency is detected is explaine
</t> d in <xref target="tab_error" format="default" sectionFormat="of" derivedContent
</section> ="Table 1"/>, for 6P return code RC_ERR_SEQNUM.
<section anchor="sec_constants" numbered="true" toc="default"> </t>
<name>MSF Constants</name> </section>
<t> <section anchor="sec_constants" numbered="true" toc="include" removeInRFC="f
<xref target="tab_constants" format="default"/> lists MSF Consta alse" pn="section-14">
nts and their RECOMMENDED values. <name slugifiedName="name-msf-constants">MSF Constants</name>
</t> <t indent="0" pn="section-14-1">
<figure anchor="tab_constants"> <xref target="tab_constants" format="default" sectionFormat="of"
<name>MSF Constants and their RECOMMENDED values.</name> derivedContent="Table 2"/> lists MSF constants and their <bcp14>RECOMMENDED</bc
<artwork name="" type="" align="left" alt=""><![CDATA[ p14> values.
+------------------------------+-------------------+ </t>
| Name | RECOMMENDED value | <table anchor="tab_constants" align="center" pn="table-2">
+------------------------------+-------------------+ <name slugifiedName="name-msf-constants-and-their-rec">MSF Constants and
| SLOTFRAME_LENGTH | 101 slots | Their <bcp14>RECOMMENDED</bcp14> Values</name>
| NUM_CH_OFFSET | 16 | <thead>
| MAX_NUM_CELLS | 100 | <tr>
| LIM_NUMCELLSUSED_HIGH | 75 | <th align="left" colspan="1" rowspan="1">Name</th>
| LIM_NUMCELLSUSED_LOW | 25 | <th align="left" colspan="1" rowspan="1">
| MAX_NUMTX | 256 | <bcp14>RECOMMENDED</bcp14> value</th>
| HOUSEKEEPINGCOLLISION_PERIOD | 1 min | </tr>
| RELOCATE_PDRTHRES | 50 % | </thead>
| QUARANTINE_DURATION | 5 min | <tbody>
| WAIT_DURATION_MIN | 30 s | <tr>
| WAIT_DURATION_MAX | 60 s | <td align="left" colspan="1" rowspan="1"> SLOTFRAME_LENGTH</td>
+------------------------------+-------------------+ <td align="left" colspan="1" rowspan="1">101 slots</td>
]]></artwork> </tr>
</figure> <tr>
</section> <td align="left" colspan="1" rowspan="1"> NUM_CH_OFFSET </td>
<section anchor="sec_stats" numbered="true" toc="default"> <td align="left" colspan="1" rowspan="1">16</td>
<name>MSF Statistics</name> </tr>
<t> <tr>
<xref target="tab_stats" format="default"/> lists MSF Statistics <td align="left" colspan="1" rowspan="1"> MAX_NUM_CELLS</td>
and their RECOMMENDED width. <td align="left" colspan="1" rowspan="1">100</td>
</t> </tr>
<figure anchor="tab_stats"> <tr>
<name>MSF Statistics and their RECOMMENDED width.</name> <td align="left" colspan="1" rowspan="1"> LIM_NUMCELLSUSED_HIGH</td>
<artwork name="" type="" align="left" alt=""><![CDATA[ <td align="left" colspan="1" rowspan="1">75</td>
+-----------------+-------------------+ </tr>
| Name | RECOMMENDED width | <tr>
+-----------------+-------------------+ <td align="left" colspan="1" rowspan="1"> LIM_NUMCELLSUSED_LOW </td>
| NumCellsElapsed | 1 byte | <td align="left" colspan="1" rowspan="1">25</td>
| NumCellsUsed | 1 byte | </tr>
| NumTx | 1 byte | <tr>
| NumTxAck | 1 byte | <td align="left" colspan="1" rowspan="1"> MAX_NUMTX</td>
+-----------------+-------------------+ <td align="left" colspan="1" rowspan="1">256</td>
]]></artwork> </tr>
</figure> <tr>
</section> <td align="left" colspan="1" rowspan="1"> HOUSEKEEPINGCOLLISION_PERI
<section anchor="sec_security" numbered="true" toc="default"> OD</td>
<name>Security Considerations</name> <td align="left" colspan="1" rowspan="1">1 min</td>
<t> </tr>
<tr>
<td align="left" colspan="1" rowspan="1"> RELOCATE_PDRTHRES</td>
<td align="left" colspan="1" rowspan="1">50 %</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> QUARANTINE_DURATION</td>
<td align="left" colspan="1" rowspan="1">5 min</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> WAIT_DURATION_MIN</td>
<td align="left" colspan="1" rowspan="1">30 s</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> WAIT_DURATION_MAX </td>
<td align="left" colspan="1" rowspan="1">60 s</td>
</tr>
</tbody>
</table>
</section>
<section anchor="sec_stats" numbered="true" toc="include" removeInRFC="false
" pn="section-15">
<name slugifiedName="name-msf-statistics">MSF Statistics</name>
<t indent="0" pn="section-15-1">
<xref target="tab_stats" format="default" sectionFormat="of" der
ivedContent="Table 3"/> lists MSF statistics and their <bcp14>RECOMMENDED</bcp14
> widths.
</t>
<table anchor="tab_stats" align="center" pn="table-3">
<name slugifiedName="name-msf-statistics-and-their-re">MSF Statistics an
d Their <bcp14>RECOMMENDED</bcp14> Widths</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Name</th>
<th align="left" colspan="1" rowspan="1">
<bcp14>RECOMMENDED</bcp14> width</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1"> NumCellsElapsed</td>
<td align="left" colspan="1" rowspan="1">1 byte</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> NumCellsUsed</td>
<td align="left" colspan="1" rowspan="1">1 byte</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> NumTx</td>
<td align="left" colspan="1" rowspan="1">1 byte</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1"> NumTxAck</td>
<td align="left" colspan="1" rowspan="1">1 byte</td>
</tr>
</tbody>
</table>
</section>
<section anchor="sec_security" numbered="true" toc="include" removeInRFC="fa
lse" pn="section-16">
<name slugifiedName="name-security-considerations">Security Considerations
</name>
<t indent="0" pn="section-16-1">
MSF defines a series of "rules" for the node to follow. MSF defines a series of "rules" for the node to follow.
It triggers several actions, that are carried out by the protoco It triggers several actions that are carried out by the protocol
ls defined in the following specifications: s defined in the following specifications:
the Minimal IPv6 over the TSCH Mode of IEEE 802.15.4e (6TiSCH) C "<xref target="RFC8180" format="title" sectionFormat="of" derive
onfiguration <xref target="RFC8180" format="default"/>, dContent="Minimal IPv6 over the TSCH Mode of IEEE 802.15.4e (6TiSCH) Configurati
the 6TiSCH Operation Sublayer Protocol (6P) <xref target="RFC848 on"/>" <xref target="RFC8180" format="default" sectionFormat="of" derivedContent
0" format="default"/>, and ="RFC8180"/>,
the Constrained Join Protocol (CoJP) for 6TiSCH <xref target="I- "<xref target="RFC8480" format="title" sectionFormat="of" derive
D.ietf-6tisch-minimal-security" format="default"/>. dContent="6TiSCH Operation Sublayer (6top) Protocol (6P)"/>" <xref target="RFC84
80" format="default" sectionFormat="of" derivedContent="RFC8480"/>, and
"<xref target="RFC9031" format="title" sectionFormat="of" derive
dContent="Constrained Join Protocol (CoJP) for 6TiSCH"/>" <xref target="RFC9031"
format="default" sectionFormat="of" derivedContent="RFC9031"/>.
Confidentiality and authentication of MSF control and data traff ic are provided by these specifications whose security considerations continue t o apply to MSF. Confidentiality and authentication of MSF control and data traff ic are provided by these specifications whose security considerations continue t o apply to MSF.
In particular, MSF does not define a new protocol or packet form at. In particular, MSF does not define a new protocol or packet form at.
</t> </t>
<t> <t indent="0" pn="section-16-2">
MSF uses autonomous cells for initial bootstrap and the transpor t of join traffic. MSF uses autonomous cells for initial bootstrap and the transpor t of join traffic.
Autonomous cells are computed as a hash of nodes’ EUI64 addresse Autonomous cells are computed as a hash of nodes' EUI-64 address
s. es.
This makes the coordinates of autonomous cell an easy target for This makes the coordinates of autonomous cell an easy target for
an attacker, as EUI64 addresses are visible on the wire and are not encrypted b an attacker, as EUI-64 addresses are visible on the wire and are not encrypted
y the link-layer security mechanism. by the link-layer security mechanism.
With the coordinates of autonomous cells available, the attacker With the coordinates of autonomous cells available, the attacker
can launch a selective jamming attack against any nodes’ AutoRxCell. can launch a selective jamming attack against any node's AutoRxCell.
If the attacker targets a node acting as a JP, it can prevent pl edges from using that JP to join the network. If the attacker targets a node acting as a JP, it can prevent pl edges from using that JP to join the network.
The pledge detects such a situation through the absence of a lin k-layer acknowledgment for its Join Request. The pledge detects such a situation through the absence of a lin k-layer acknowledgment for its Join Request.
As it is expected that each pledge will have more than one JP av As it is expected that each pledge will have more than one JP av
ailable to join the network, one available countermeasure for the pledge is to p ailable to join the network, one available countermeasure for the pledge is to p
seudo-randomly select a new JP when the link to the previous JP appears bad. seudorandomly select a new JP when the link to the previous JP appears bad.
Such strategy alleviates the issue of the attacker randomly jamm Such a strategy alleviates the issue of the attacker randomly ja
ing to disturb the network but does not help in case the attacker is targeting a mming to disturb the network but does not help in the case the attacker is targe
particular pledge. ting a particular pledge.
In that case, the attacker can jam the AutoRxCell of the pledge, In that case, the attacker can jam the AutoRxCell of the pledge
in order to prevent it from receiving the join response. in order to prevent it from receiving the join response.
This situation should be detected through the absence of a parti cular node from the network and handled by the network administrator through out -of-band means. This situation should be detected through the absence of a parti cular node from the network and handled by the network administrator through out -of-band means.
</t> </t>
<t> <t indent="0" pn="section-16-3">
MSF adapts to traffic containing packets from the IP layer. MSF adapts to traffic containing packets from the IP layer.
It is possible that the IP packet has a non-zero DSCP (Diffserv Code Point <xref target="RFC2474" format="default"/>) value in its IPv6 header. It is possible that the IP packet has a nonzero DSCP (Differenti ated Services Code Point) <xref target="RFC2474" format="default" sectionFormat= "of" derivedContent="RFC2474"/> value in its IPv6 header.
The decision how to handle that packet belongs to the upper laye r and is out of scope of MSF. The decision how to handle that packet belongs to the upper laye r and is out of scope of MSF.
As long as the decision is made to hand over to MAC layer to tra nsmit, MSF will take that packet into account when adapting to traffic. As long as the decision is made to hand over to MAC layer to tra nsmit, MSF will take that packet into account when adapting to traffic.
</t> </t>
<t> <t indent="0" pn="section-16-4">
Note that non-zero DSCP value may imply that the traffic is orig Note that nonzero DSCP values may imply that the traffic origina
inated at unauthenticated pledges, referring to <xref target="I-D.ietf-6tisch-mi ted at unauthenticated pledges (see <xref target="RFC9031" format="default" sect
nimal-security" format="default"/>. ionFormat="of" derivedContent="RFC9031"/>).
The implementation at IPv6 layer SHOULD rate-limit this join tra The implementation at the IPv6 layer <bcp14>SHOULD</bcp14> rate
ffic before it is passed to 6top sublayer where MSF can observe it. limit this join traffic before it is passed to the 6top sublayer where MSF can o
In case there is no rate limit for join traffic, intermediate no bserve it.
des in the 6TiSCH network may be prone to a resource exhaustion attack, with the If there is no rate limit for join traffic, intermediate nodes i
attacker injecting unauthenticated traffic from the network edge. n the 6TiSCH network may be prone to a resource exhaustion attack, with the atta
The assumption is that the rate limiting function is aware of th cker injecting unauthenticated traffic from the network edge.
e available bandwidth in the 6top L3 bundle(s) towards a next hop, not directly The assumption is that the rate-limiting function is aware of th
from MSF, but from an interaction with the 6top sublayer that manages ultimately e available bandwidth in the 6top Layer 3 bundle(s) towards a next hop, not dire
the bundles under MSF's guidance. ctly from MSF, but from an interaction with the 6top sublayer that ultimately ma
How this rate-limit is implemented is out of scope of MSF. nages the bundles under MSF's guidance.
</t> How this rate limit is implemented is out of scope of MSF.
</section> </t>
<section anchor="sec_iana" numbered="true" toc="default"> </section>
<name>IANA Considerations</name> <section anchor="sec_iana" numbered="true" toc="include" removeInRFC="false"
<section anchor="sec_iana_sfid" numbered="true" toc="default"> pn="section-17">
<name>MSF Scheduling Function Identifiers</name> <name slugifiedName="name-iana-considerations">IANA Considerations</name>
<t> <section anchor="sec_iana_sfid" numbered="true" toc="include" removeInRFC=
"false" pn="section-17.1">
<name slugifiedName="name-msf-scheduling-function-ide">MSF Scheduling Fu
nction Identifiers</name>
<t indent="0" pn="section-17.1-1">
This document adds the following number to the This document adds the following number to the
"6P Scheduling Function Identifiers" sub-registry, "6P Scheduling Function Identifiers" subregistry,
part of the "IPv6 over the TSCH mode of IEEE 802.15.4e (6TiS part of the "IPv6 Over the TSCH Mode of IEEE 802.15.4 (6TiSC
CH) parameters" registry, H)" registry,
as defined by <xref target="RFC8480" format="default"/>: as defined by <xref target="RFC8480" format="default" sectio
</t> nFormat="of" derivedContent="RFC8480"/>:
<figure anchor="fig_iana_sfid"> </t>
<name>New SFID in 6P Scheduling Function Identifiers subregi <table anchor="fig_iana_sfid" align="center" pn="table-4">
stry.</name> <name slugifiedName="name-new-sfid-in-the-6p-scheduli">New SFID in the
<artwork name="" type="" align="left" alt=""><![CDATA[ "6P Scheduling Function Identifiers" Subregistry</name>
+----------------------+-----------------------------+-------------+ <thead>
| SFID | Name | Reference | <tr>
+----------------------+-----------------------------+-------------+ <th align="left" colspan="1" rowspan="1">SFID</th>
| IANA_6TISCH_SFID_MSF | Minimal Scheduling Function | RFC_THIS | <th align="left" colspan="1" rowspan="1">Name</th>
| | (MSF) | | <th align="left" colspan="1" rowspan="1">Reference</th>
+----------------------+-----------------------------+-------------+ </tr>
]]></artwork> </thead>
</figure> <tbody>
<t> <tr>
IANA_6TISCH_SFID_MSF is chosen from range 0-127, which is us <td align="left" colspan="1" rowspan="1">0</td>
ed for IETF Review or IESG Approval. <td align="left" colspan="1" rowspan="1">Minimal Scheduling Functi
</t> on (MSF)</td>
</section> <td align="left" colspan="1" rowspan="1">RFC 9033</td>
</section> </tr>
<section anchor="sec_contributors" numbered="true" toc="default"> </tbody>
<name>Contributors</name> </table>
<ul spacing="compact"> <t indent="0" pn="section-17.1-3">
<li>Beshr Al Nahas (Chalmers University, beshr@chalmers.se)</li> The SFID was chosen from the range 0-127, which has the regi
<li>Olaf Landsiedel (Chalmers University, olafl@chalmers.se)</li stration procedure of IETF Review or IESG Approval <xref target="RFC8126" format
> ="default" sectionFormat="of" derivedContent="RFC8126"/>.
<li>Yasuyuki Tanaka (Inria-Paris, yasuyuki.tanaka@inria.fr)</li> </t>
</ul> </section>
</section> </section>
</middle> </middle>
<back> <back>
<references> <displayreference target="I-D.ietf-6tisch-dtsecurity-zerotouch-join" to="ZER
<name>References</name> OTOUCH-JOIN"/>
<references> <references pn="section-18">
<name>Normative References</name> <name slugifiedName="name-references">References</name>
<!-- RFC 6TiSCH--> <references pn="section-18.1">
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx <name slugifiedName="name-normative-references">Normative References</na
ml/reference.RFC.8180.xml"/> me>
<!-- Minimal IPv6 over the TSCH Mode of IEEE 802.15.4e (6TiSCH) <reference anchor="IEEE802154" target="https://ieeexplore.ieee.org/docum
Configuration --> ent/7460875" quoteTitle="true" derivedAnchor="IEEE802154">
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx <front>
ml/reference.RFC.8480.xml"/> <title>IEEE Standard for Low-Rate Wireless Networks</title>
<!-- 6TiSCH Operation Sublayer (6top) Protocol (6P) --> <author>
<!-- RFC others --> <organization showOnFrontPage="true">IEEE</organization>
<!-- RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks </author>
--> <date month="April" year="2016"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx </front>
ml/reference.RFC.6550.xml"/> <seriesInfo name="IEEE Standard" value="802.15.4-2015"/>
<!-- Key words for use in RFCs to Indicate Requirement Levels -- <seriesInfo name="DOI" value="10.1109/IEEESTD.2016.7460875"/>
> </reference>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2
ml/reference.RFC.2119.xml"/> 119" quoteTitle="true" derivedAnchor="RFC2119">
<!--Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words -- <front>
> <title>Key words for use in RFCs to Indicate Requirement Levels</tit
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx le>
ml/reference.RFC.8174.xml"/> <author initials="S." surname="Bradner" fullname="S. Bradner">
<!-- Definition of the Differentiated Services Field (DS Field) <organization showOnFrontPage="true"/>
in the IPv4 and IPv6 Headers --> </author>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx <date year="1997" month="March"/>
ml/reference.RFC.2474.xml"/> <abstract>
<!-- Registration Extensions for IPv6 over Low-Power Wireless Pe <t indent="0">In many standards track documents several words are
rsonal Area Network (6LoWPAN) Neighbor Discovery --> used to signify the requirements in the specification. These words are often ca
<!-- I-D 6TiSCH --> pitalized. This document defines these words as they should be interpreted in IE
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx TF documents. This document specifies an Internet Best Current Practices for th
ml3/reference.I-D.draft-ietf-6tisch-minimal-security-15.xml"/> e Internet Community, and requests discussion and suggestions for improvements.<
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx /t>
ml3/reference.I-D.draft-ietf-6tisch-enrollment-enhanced-beacon-14.xml"/> </abstract>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx </front>
ml3/reference.I-D.draft-ietf-6tisch-architecture-28.xml"/> <seriesInfo name="BCP" value="14"/>
<!-- I-D others --> <seriesInfo name="RFC" value="2119"/>
<!-- external --> <seriesInfo name="DOI" value="10.17487/RFC2119"/>
<reference anchor="IEEE802154" target='http://ieeexplore.ieee.or </reference>
g/document/7460875/'> <reference anchor="RFC2474" target="https://www.rfc-editor.org/info/rfc2
<front> 474" quoteTitle="true" derivedAnchor="RFC2474">
<title> <front>
IEEE Std 802.15.4 Standard for Low-Rate Wireless Per <title>Definition of the Differentiated Services Field (DS Field) in
sonal Area Networks (WPANs) the IPv4 and IPv6 Headers</title>
</title> <author initials="K." surname="Nichols" fullname="K. Nichols">
<author> <organization showOnFrontPage="true"/>
<organization>IEEE standard for Information Technolo </author>
gy</organization> <author initials="S." surname="Blake" fullname="S. Blake">
</author> <organization showOnFrontPage="true"/>
<date/> </author>
</front> <author initials="F." surname="Baker" fullname="F. Baker">
<seriesInfo name='DOI' value='10.1109/IEEE P802.15.4-REVd/D0 <organization showOnFrontPage="true"/>
1'/> </author>
</reference> <author initials="D." surname="Black" fullname="D. Black">
<reference anchor="SAX-DASFAA"> <organization showOnFrontPage="true"/>
<front> </author>
<title> Performance in Practice of String Hashing Functi <date year="1998" month="December"/>
ons</title> <abstract>
<seriesInfo name="DASFAA" value=""/> <t indent="0">This document defines the IP header field, called th
<author initials="M.V" surname="Ramakrishna"/> e DS (for differentiated services) field. [STANDARDS-TRACK]</t>
<author initials="J" surname="Zobel"/> </abstract>
<date year="1997"/> </front>
</front> <seriesInfo name="RFC" value="2474"/>
<seriesInfo name='DOI' value='10.1142/9789812819536_0023'/> <seriesInfo name="DOI" value="10.17487/RFC2474"/>
</reference> </reference>
</references> <reference anchor="RFC6550" target="https://www.rfc-editor.org/info/rfc6
<references> 550" quoteTitle="true" derivedAnchor="RFC6550">
<name>Informative References</name> <front>
<!-- RFC 6TiSCH--> <title>RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks</
<!-- Using IEEE 802.15.4e Time-Slotted Channel Hopping (TSCH) in title>
the Internet of Things (IoT): Problem Statement --> <author initials="T." surname="Winter" fullname="T. Winter" role="ed
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx itor">
ml/reference.RFC.7554.xml"/> <organization showOnFrontPage="true"/>
<!-- 6tisch Zero-Touch Secure Join protocol --> </author>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx <author initials="P." surname="Thubert" fullname="P. Thubert" role="
ml3/reference.I-D.draft-ietf-6tisch-dtsecurity-zerotouch-join-04.xml"/> editor">
<!-- RFC others --> <organization showOnFrontPage="true"/>
<!-- The Trickle Algorithm --> </author>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx <author initials="A." surname="Brandt" fullname="A. Brandt">
ml/reference.RFC.6206.xml"/> <organization showOnFrontPage="true"/>
<!-- 6LoWPAN Neighbor Discovery --> </author>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibx <author initials="J." surname="Hui" fullname="J. Hui">
ml/reference.RFC.8505.xml"/> <organization showOnFrontPage="true"/>
<!-- I-D 6TiSCH --> </author>
<!-- I-D others --> <author initials="R." surname="Kelsey" fullname="R. Kelsey">
<!-- external --> <organization showOnFrontPage="true"/>
</references> </author>
</references> <author initials="P." surname="Levis" fullname="P. Levis">
<section anchor="sec_hash_function" numbered="true" toc="default"> <organization showOnFrontPage="true"/>
<name>Example of Implementation of SAX hash function</name> </author>
<t> <author initials="K." surname="Pister" fullname="K. Pister">
Considering the interoperability, this section provides an examp <organization showOnFrontPage="true"/>
le of implemention SAX hash function <xref target="SAX-DASFAA" format="default"/ </author>
>. <author initials="R." surname="Struik" fullname="R. Struik">
<organization showOnFrontPage="true"/>
</author>
<author initials="JP." surname="Vasseur" fullname="JP. Vasseur">
<organization showOnFrontPage="true"/>
</author>
<author initials="R." surname="Alexander" fullname="R. Alexander">
<organization showOnFrontPage="true"/>
</author>
<date year="2012" month="March"/>
<abstract>
<t indent="0">Low-Power and Lossy Networks (LLNs) are a class of n
etwork in which both the routers and their interconnect are constrained. LLN ro
uters typically operate with constraints on processing power, memory, and energy
(battery power). Their interconnects are characterized by high loss rates, low
data rates, and instability. LLNs are comprised of anything from a few dozen t
o thousands of routers. Supported traffic flows include point-to-point (between
devices inside the LLN), point-to-multipoint (from a central control point to a
subset of devices inside the LLN), and multipoint-to-point (from devices inside
the LLN towards a central control point). This document specifies the IPv6 Rou
ting Protocol for Low-Power and Lossy Networks (RPL), which provides a mechanism
whereby multipoint-to-point traffic from devices inside the LLN towards a centr
al control point as well as point-to-multipoint traffic from the central control
point to the devices inside the LLN are supported. Support for point-to-point
traffic is also available. [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="6550"/>
<seriesInfo name="DOI" value="10.17487/RFC6550"/>
</reference>
<reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8
126" quoteTitle="true" derivedAnchor="RFC8126">
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs
</title>
<author initials="M." surname="Cotton" fullname="M. Cotton">
<organization showOnFrontPage="true"/>
</author>
<author initials="B." surname="Leiba" fullname="B. Leiba">
<organization showOnFrontPage="true"/>
</author>
<author initials="T." surname="Narten" fullname="T. Narten">
<organization showOnFrontPage="true"/>
</author>
<date year="2017" month="June"/>
<abstract>
<t indent="0">Many protocols make use of points of extensibility t
hat use constants to identify various protocol parameters. To ensure that the v
alues in these fields do not have conflicting uses and to promote interoperabili
ty, their allocations are often coordinated by a central record keeper. For IET
F protocols, that role is filled by the Internet Assigned Numbers Authority (IAN
A).</t>
<t indent="0">To make assignments in a given registry prudently, g
uidance describing the conditions under which new values should be assigned, as
well as when and how modifications to existing values can be made, is needed. T
his document defines a framework for the documentation of these guidelines by sp
ecification authors, in order to assure that the provided guidance for the IANA
Considerations is clear and addresses the various issues that are likely in the
operation of a registry.</t>
<t indent="0">This is the third edition of this document; it obsol
etes RFC 5226.</t>
</abstract>
</front>
<seriesInfo name="BCP" value="26"/>
<seriesInfo name="RFC" value="8126"/>
<seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>
<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8
174" quoteTitle="true" derivedAnchor="RFC8174">
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti
tle>
<author initials="B." surname="Leiba" fullname="B. Leiba">
<organization showOnFrontPage="true"/>
</author>
<date year="2017" month="May"/>
<abstract>
<t indent="0">RFC 2119 specifies common key words that may be used
in protocol specifications. This document aims to reduce the ambiguity by cla
rifying that only UPPERCASE usage of the key words have the defined special mea
nings.</t>
</abstract>
</front>
<seriesInfo name="BCP" value="14"/>
<seriesInfo name="RFC" value="8174"/>
<seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC8180" target="https://www.rfc-editor.org/info/rfc8
180" quoteTitle="true" derivedAnchor="RFC8180">
<front>
<title>Minimal IPv6 over the TSCH Mode of IEEE 802.15.4e (6TiSCH) Co
nfiguration</title>
<author initials="X." surname="Vilajosana" fullname="X. Vilajosana"
role="editor">
<organization showOnFrontPage="true"/>
</author>
<author initials="K." surname="Pister" fullname="K. Pister">
<organization showOnFrontPage="true"/>
</author>
<author initials="T." surname="Watteyne" fullname="T. Watteyne">
<organization showOnFrontPage="true"/>
</author>
<date year="2017" month="May"/>
<abstract>
<t indent="0">This document describes a minimal mode of operation
for an IPv6 over the TSCH mode of IEEE 802.15.4e (6TiSCH) network. This minimal
mode of operation specifies the baseline set of protocols that need to be suppo
rted and the recommended configurations and modes of operation sufficient to ena
ble a 6TiSCH functional network. 6TiSCH provides IPv6 connectivity over a Time-
Slotted Channel Hopping (TSCH) mesh composed of IEEE Std 802.15.4 TSCH links. T
his minimal mode uses a collection of protocols with the respective configuratio
ns, including the IPv6 Low-Power Wireless Personal Area Network (6LoWPAN) framew
ork, enabling interoperable IPv6 connectivity over IEEE Std 802.15.4 TSCH. This
minimal configuration provides the necessary bandwidth for network and security
bootstrapping and defines the proper link between the IETF protocols that inter
face to IEEE Std 802.15.4 TSCH. This minimal mode of operation should be implem
ented by all 6TiSCH-compliant devices.</t>
</abstract>
</front>
<seriesInfo name="BCP" value="210"/>
<seriesInfo name="RFC" value="8180"/>
<seriesInfo name="DOI" value="10.17487/RFC8180"/>
</reference>
<reference anchor="RFC8480" target="https://www.rfc-editor.org/info/rfc8
480" quoteTitle="true" derivedAnchor="RFC8480">
<front>
<title>6TiSCH Operation Sublayer (6top) Protocol (6P)</title>
<author initials="Q." surname="Wang" fullname="Q. Wang" role="editor
">
<organization showOnFrontPage="true"/>
</author>
<author initials="X." surname="Vilajosana" fullname="X. Vilajosana">
<organization showOnFrontPage="true"/>
</author>
<author initials="T." surname="Watteyne" fullname="T. Watteyne">
<organization showOnFrontPage="true"/>
</author>
<date year="2018" month="November"/>
<abstract>
<t indent="0">This document defines the "IPv6 over the TSCH mode o
f IEEE 802.15.4e" (6TiSCH) Operation Sublayer (6top) Protocol (6P), which enable
s distributed scheduling in 6TiSCH networks. 6P allows neighbor nodes to add/de
lete Time-Slotted Channel Hopping (TSCH) cells to/on one another. 6P is part of
the 6TiSCH Operation Sublayer (6top), the layer just above the IEEE Std 802.15.
4 TSCH Medium Access Control layer. 6top is composed of one or more Scheduling
Functions (SFs) and the 6top Protocol defined in this document. A 6top SF decid
es when to add/delete cells, and it triggers 6P Transactions. The definition of
SFs is out of scope for this document; however, this document provides the requ
irements for an SF.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="8480"/>
<seriesInfo name="DOI" value="10.17487/RFC8480"/>
</reference>
<reference anchor="RFC9030" target="https://www.rfc-editor.org/info/rfc9
030" quoteTitle="true" derivedAnchor="RFC9030">
<front>
<title>An Architecture for IPv6 over the Time-Slotted Channel Hoppin
g Mode of IEEE 802.15.4 (6TiSCH)</title>
<author initials="P" surname="Thubert" fullname="Pascal Thubert" rol
e="editor">
<organization showOnFrontPage="true"/>
</author>
<date month="May" year="2021"/>
</front>
<seriesInfo name="RFC" value="9030"/>
<seriesInfo name="DOI" value="10.17487/RFC9030"/>
</reference>
<reference anchor="RFC9031" target="https://www.rfc-editor.org/info/rfc9
031" quoteTitle="true" derivedAnchor="RFC9031">
<front>
<title>Constrained Join Protocol (CoJP) for 6TiSCH</title>
<author initials="M" surname="Vučinić" fullname="Mališa Vučinić" rol
e="editor">
<organization showOnFrontPage="true"/>
</author>
<author initials="J" surname="Simon" fullname="Jonathan Simon">
<organization showOnFrontPage="true"/>
</author>
<author initials="K" surname="Pister" fullname="Kris Pister">
<organization showOnFrontPage="true"/>
</author>
<author initials="M" surname="Richardson" fullname="Michael Richards
on">
<organization showOnFrontPage="true"/>
</author>
<date month="May" year="2021"/>
</front>
<seriesInfo name="RFC" value="9031"/>
<seriesInfo name="DOI" value="10.17487/RFC9031"/>
</reference>
<reference anchor="RFC9032" target="https://www.rfc-editor.org/info/rfc9
032" quoteTitle="true" derivedAnchor="RFC9032">
<front>
<title>Encapsulation of 6TiSCH Join and Enrollment Information Eleme
nts</title>
<author initials="D" surname="Dujovne" fullname="Diego Dujovne" role
="editor">
<organization showOnFrontPage="true"/>
</author>
<author initials="M" surname="Richardson" fullname="Michael Richards
on">
<organization showOnFrontPage="true"/>
</author>
<date month="May" year="2021"/>
</front>
<seriesInfo name="RFC" value="9032"/>
<seriesInfo name="DOI" value="10.17487/RFC9032"/>
</reference>
<reference anchor="SAX-DASFAA" quoteTitle="true" target="https://doi.org
/10.1142/9789812819536_0023" derivedAnchor="SAX-DASFAA">
<front>
<title>Performance in Practice of String Hashing Functions</title>
<author initials="M.V." surname="Ramakrishna"/>
<author initials="J" surname="Zobel"/>
<date year="1997"/>
</front>
<refcontent>DASFAA</refcontent>
<seriesInfo name="DOI" value="10.1142/9789812819536_0023"/>
</reference>
</references>
<references pn="section-18.2">
<name slugifiedName="name-informative-references">Informative References
</name>
<reference anchor="RFC6206" target="https://www.rfc-editor.org/info/rfc6
206" quoteTitle="true" derivedAnchor="RFC6206">
<front>
<title>The Trickle Algorithm</title>
<author initials="P." surname="Levis" fullname="P. Levis">
<organization showOnFrontPage="true"/>
</author>
<author initials="T." surname="Clausen" fullname="T. Clausen">
<organization showOnFrontPage="true"/>
</author>
<author initials="J." surname="Hui" fullname="J. Hui">
<organization showOnFrontPage="true"/>
</author>
<author initials="O." surname="Gnawali" fullname="O. Gnawali">
<organization showOnFrontPage="true"/>
</author>
<author initials="J." surname="Ko" fullname="J. Ko">
<organization showOnFrontPage="true"/>
</author>
<date year="2011" month="March"/>
<abstract>
<t indent="0">The Trickle algorithm allows nodes in a lossy shared
medium (e.g., low-power and lossy networks) to exchange information in a highly
robust, energy efficient, simple, and scalable manner. Dynamically adjusting t
ransmission windows allows Trickle to spread new information on the scale of lin
k-layer transmission times while sending only a few messages per hour when infor
mation does not change. A simple suppression mechanism and transmission point s
election allow Trickle's communication rate to scale logarithmically with densit
y. This document describes the Trickle algorithm and considerations in its use.
[STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="6206"/>
<seriesInfo name="DOI" value="10.17487/RFC6206"/>
</reference>
<reference anchor="RFC7554" target="https://www.rfc-editor.org/info/rfc7
554" quoteTitle="true" derivedAnchor="RFC7554">
<front>
<title>Using IEEE 802.15.4e Time-Slotted Channel Hopping (TSCH) in t
he Internet of Things (IoT): Problem Statement</title>
<author initials="T." surname="Watteyne" fullname="T. Watteyne" role
="editor">
<organization showOnFrontPage="true"/>
</author>
<author initials="M." surname="Palattella" fullname="M. Palattella">
<organization showOnFrontPage="true"/>
</author>
<author initials="L." surname="Grieco" fullname="L. Grieco">
<organization showOnFrontPage="true"/>
</author>
<date year="2015" month="May"/>
<abstract>
<t indent="0">This document describes the environment, problem sta
tement, and goals for using the Time-Slotted Channel Hopping (TSCH) Medium Acces
s Control (MAC) protocol of IEEE 802.14.4e in the context of Low-Power and Lossy
Networks (LLNs). The set of goals enumerated in this document form an initial
set only.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="7554"/>
<seriesInfo name="DOI" value="10.17487/RFC7554"/>
</reference>
<reference anchor="RFC8505" target="https://www.rfc-editor.org/info/rfc8
505" quoteTitle="true" derivedAnchor="RFC8505">
<front>
<title>Registration Extensions for IPv6 over Low-Power Wireless Pers
onal Area Network (6LoWPAN) Neighbor Discovery</title>
<author initials="P." surname="Thubert" fullname="P. Thubert" role="
editor">
<organization showOnFrontPage="true"/>
</author>
<author initials="E." surname="Nordmark" fullname="E. Nordmark">
<organization showOnFrontPage="true"/>
</author>
<author initials="S." surname="Chakrabarti" fullname="S. Chakrabarti
">
<organization showOnFrontPage="true"/>
</author>
<author initials="C." surname="Perkins" fullname="C. Perkins">
<organization showOnFrontPage="true"/>
</author>
<date year="2018" month="November"/>
<abstract>
<t indent="0">This specification updates RFC 6775 -- the Low-Power
Wireless Personal Area Network (6LoWPAN) Neighbor Discovery specification -- to
clarify the role of the protocol as a registration technique and simplify the r
egistration operation in 6LoWPAN routers, as well as to provide enhancements to
the registration capabilities and mobility detection for different network topol
ogies, including the Routing Registrars performing routing for host routes and/o
r proxy Neighbor Discovery in a low-power network.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="8505"/>
<seriesInfo name="DOI" value="10.17487/RFC8505"/>
</reference>
<reference anchor="I-D.ietf-6tisch-dtsecurity-zerotouch-join" quoteTitle
="true" target="https://tools.ietf.org/html/draft-ietf-6tisch-dtsecurity-zerotou
ch-join-04" derivedAnchor="ZEROTOUCH-JOIN">
<front>
<title>6tisch Zero-Touch Secure Join protocol</title>
<author fullname="Michael Richardson">
<organization showOnFrontPage="true">Sandelman Software Works</org
anization>
</author>
<date month="July" day="8" year="2019"/>
<abstract>
<t indent="0"> This document describes a Zero-touch Secure Join
(ZSJ) mechanism to
enroll a new device (the "pledge") into a IEEE802.15.4 TSCH network
using the 6tisch signaling mechanisms. The resulting device will
obtain a domain specific credential that can be used with either
802.15.9 per-host pair keying protocols, or to obtain the network-
wide key from a coordinator. The mechanism describe here is an
augmentation to the one-touch mechanism described in
[I-D.ietf-6tisch-minimal-security], and is a profile of the
constrained voucher mechanism [I-D.ietf-anima-constrained-voucher].
</t>
</abstract>
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-6tisch-dtsecurity-
zerotouch-join-04"/>
<format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-
6tisch-dtsecurity-zerotouch-join-04.txt"/>
<refcontent>Work in Progress</refcontent>
</reference>
</references>
</references>
<section anchor="sec_hash_function" numbered="true" toc="include" removeInRF
C="false" pn="section-appendix.a">
<name slugifiedName="name-example-implementation-of-t">Example Implementat
ion of the SAX Hash Function</name>
<t indent="0" pn="section-appendix.a-1">
To support interoperability, this section provides an example i
mplementation of the SAX hash function <xref target="SAX-DASFAA" format="default
" sectionFormat="of" derivedContent="SAX-DASFAA"/>.
The input parameters of the function are: The input parameters of the function are:
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-app
<li>T, which is the hashing table length</li> endix.a-2">
<li>c, which is the characters of string s, to be hashed</li> <li pn="section-appendix.a-2.1">T, which is the hashing table length.</l
</ul> i>
<t> <li pn="section-appendix.a-2.2">c, which is the characters of string s,
to be hashed.</li>
</ul>
<t indent="0" pn="section-appendix.a-3">
In MSF, the T is replaced by the length of slotframe 1. In MSF, the T is replaced by the length of slotframe 1.
String s is replaced by the mote EUI64 address. The characters o String s is replaced by the node EUI-64 address. The characters
f the string c0, c1, ..., c7 are the 8 bytes of EUI64 address. of the string, c0 through c7, are the eight bytes of the EUI-64 address.
</t> </t>
<t> <t indent="0" pn="section-appendix.a-4">
The SAX hash function requires shift operation which is defined The SAX hash function requires shift operation, which is defined
as follow: as follow:
</t> </t>
<ul spacing="compact"> <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-app
<li>L_shift(v,b), which refers to left shift variable v by b bi endix.a-5">
ts</li> <li pn="section-appendix.a-5.1">L_shift(v,b), which refers to the left s
<li>R_shift(v,b), which refers to right shift variable v by b bi hift of variable v by b bits</li>
ts</li> <li pn="section-appendix.a-5.2">R_shift(v,b), which refers to the right
</ul> shift of variable v by b bits</li>
<t> </ul>
<t indent="0" pn="section-appendix.a-6">
The steps to calculate the hash value of SAX hash function are: The steps to calculate the hash value of SAX hash function are:
</t> </t>
<ol spacing="compact" type="1"> <ol spacing="normal" indent="adaptive" start="1" type="1" pn="section-appe
<li>initialize variable h to h0 and variable i to 0, where h is ndix.a-7">
the intermediate hash value and i is the index of the bytes of EUI64 address</li <li anchor="sax_step1" pn="section-appendix.a-7.1" derivedCounte
> r="1.">Initialize variable h, which is the intermediate hash value, to h0 and va
<li>sum the value of L_shift(h,l_bit), R_shift(h,r_bit) and ci</ riable i, which is the index of the bytes of the EUI-64 address, to 0.</li>
li> <li anchor="sax_step2" pn="section-appendix.a-7.2" derivedCounter="2.">S
<li>calculate the result of exclusive or between the sum value i um the value of L_shift(h,l_bit), R_shift(h,r_bit), and ci.</li>
n Step 2 and h</li> <li anchor="sax_step3" pn="section-appendix.a-7.3" derivedCounter="3.">C
<li>modulo the result of Step 3 by T</li> alculate the result of the exclusive OR between the sum value in <xref target="s
<li>assign the result of Step 4 to h</li> ax_step2" format="none" sectionFormat="of" derivedContent="">Step 2</xref> and h
<li>increase i by 1</li> .</li>
<li>repeat Step2 to Step 6 until i reaches to 8 </li> <li anchor="sax_step4" pn="section-appendix.a-7.4" derivedCounter="4.">M
</ol> odulo the result of <xref target="sax_step3" format="none" sectionFormat="of" de
<t> rivedContent="">Step 3</xref> by T.</li>
The value of variable h is the hash value of SAX hash function. <li anchor="sax_step5" pn="section-appendix.a-7.5" derivedCounter="5.">A
</t> ssign the result of <xref target="sax_step4" format="none" sectionFormat="of" de
<t> rivedContent="">Step 4</xref> to h.</li>
The values of h0, l_bit and r_bit in Step 1 and 2 are configured <li anchor="sax_step6" pn="section-appendix.a-7.6" derivedCounter="6.">I
as: ncrease i by 1.</li>
</t> <li anchor="sax_step7" pn="section-appendix.a-7.7" derivedCounter="7.">R
<ul spacing="compact"> epeat <xref target="sax_step2" format="none" sectionFormat="of" derivedContent="
<li>h0 = 0</li> ">Step 2</xref> to <xref target="sax_step6" format="none" sectionFormat="of" der
<li>l_bit = 0</li> ivedContent="">Step 6</xref> until i reaches to 8. </li>
<li>r_bit = 1</li> </ol>
</ul> <t indent="0" pn="section-appendix.a-8">
<t> The value of variable h is the hash value of the SAX hash functi
The appropriate values of l_bit and r_bit could vary depending o on.
n the the set of motes' EUI64 address. </t>
<t indent="0" pn="section-appendix.a-9">
The values of h0, l_bit, and r_bit in <xref target="sax_step1" f
ormat="none" sectionFormat="of" derivedContent="">Step 1</xref> and <xref target
="sax_step2" format="none" sectionFormat="of" derivedContent="">Step 2</xref> ar
e configured as:
</t>
<t indent="6" pn="section-appendix.a-10">h0 = 0</t>
<t indent="6" pn="section-appendix.a-11">l_bit = 0</t>
<t indent="6" pn="section-appendix.a-12">r_bit = 1</t>
<t indent="0" pn="section-appendix.a-13">
The appropriate values of l_bit and r_bit could vary depending o
n the set of nodes' EUI-64 address.
How to find those values is out of the scope of this specificati on. How to find those values is out of the scope of this specificati on.
</t> </t>
</section> </section>
</back> <section anchor="sec_contributors" numbered="false" removeInRFC="false" toc=
"include" pn="section-appendix.b">
<name slugifiedName="name-contributors">Contributors</name>
<contact fullname="Beshr Al Nahas">
<organization showOnFrontPage="true">Chalmers University</organization>
<address>
<email>beshr@chalmers.se</email>
</address>
</contact>
<contact fullname="Olaf Landsiedel">
<organization showOnFrontPage="true">Chalmers University</organization>
<address>
<email>olafl@chalmers.se</email>
</address>
</contact>
<contact fullname="Yasuyuki Tanaka">
<organization showOnFrontPage="true">Toshiba</organization>
<address>
<email>yatch1.tanaka@toshiba.co.jp</email>
</address>
</contact>
</section>
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc
="include" pn="section-appendix.c">
<name slugifiedName="name-authors-addresses">Authors' Addresses</name>
<author initials="T" surname="Chang" fullname="Tengfei Chang" role="editor
">
<organization showOnFrontPage="true">Inria</organization>
<address>
<postal>
<street>2 rue Simone Iff</street>
<city>Paris</city>
<code>75012</code>
<country>France</country>
</postal>
<email>tengfei.chang@gmail.com</email>
</address>
</author>
<author initials="M." surname="Vučinić" fullname="Mališa Vučinić">
<organization showOnFrontPage="true">Inria</organization>
<address>
<postal>
<street>2 rue Simone Iff</street>
<city>Paris</city>
<code>75012</code>
<country>France</country>
</postal>
<email>malisa.vucinic@inria.fr</email>
</address>
</author>
<author initials="X" surname="Vilajosana" fullname="Xavier Vilajosana">
<organization showOnFrontPage="true">Universitat Oberta de Catalunya</or
ganization>
<address>
<postal>
<street>156 Rambla Poblenou</street>
<city>Barcelona</city>
<region>Catalonia</region>
<code>08018</code>
<country>Spain</country>
</postal>
<email>xvilajosana@uoc.edu</email>
</address>
</author>
<author initials="S" surname="Duquennoy" fullname="Simon Duquennoy">
<organization showOnFrontPage="true">RISE SICS</organization>
<address>
<postal>
<street>Isafjordsgatan 22</street>
<city>Kista</city>
<code>164 29</code>
<country>Sweden</country>
</postal>
<email>simon.duquennoy@gmail.com</email>
</address>
</author>
<author initials="D" surname="Dujovne" fullname="Diego Dujovne">
<organization showOnFrontPage="true">Universidad Diego Portales</organiz
ation>
<address>
<postal>
<street>Escuela de Informática y Telecomunicaciones</street>
<street>Av. Ejército 441</street>
<city>Santiago</city>
<region>Región Metropolitana</region>
<country>Chile</country>
</postal>
<phone>+56 (2) 676-8121</phone>
<email>diego.dujovne@mail.udp.cl</email>
</address>
</author>
</section>
</back>
</rfc> </rfc>
 End of changes. 92 change blocks. 
1054 lines changed or deleted 2046 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/