One document matched: draft-thubert-roll-flow-label-00.xml


<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc    SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2460 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2460.xml">
<!ENTITY RFC5673 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5673.xml">
<!ENTITY RFC6437 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6437.xml">
<!ENTITY RFC6550 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6550.xml">
<!ENTITY RFC6553 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6553.xml">
	

<!ENTITY I-D.ietf-roll-terminology SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-roll-terminology.xml">


]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->

<rfc category="std" ipr="trust200902" docName="draft-thubert-roll-flow-label-00">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>

    <front>
        <title>Use of the IPv6 Flow Label within an LLN</title>
        <author initials="P" surname="Thubert" fullname="Pascal Thubert" role="editor">
          <organization abbrev="Cisco">
             Cisco Systems
          </organization>
          <address>
            <postal>
             <street>Village d'Entreprises Green Side</street>
             <street>400, Avenue de Roumanille</street>
	     <street>Batiment T3</street>
             <city>Biot - Sophia Antipolis</city>
             <code>06410</code>
             <country>FRANCE</country>
            </postal>
            <phone>+33 4 97 23 26 34</phone>
            <email>pthubert@cisco.com</email>
	  </address>
        </author>
	<!--author fullname="Michael Richardson" initials="M.C." surname="Richardson">
          <organization abbrev="Sandelman">
			Sandelman Software Works
          </organization>
	  <address>
            <postal>
              <street>  </street>
              <city>Ottawa</city>
              <region>Ontario</region>
              <code>  </code>
              <country>Canada</country>
            </postal>
            <email>mcr+ietf@sandelman.ca</email>
	  </address>
	</author-->
        <date/>

	<area>Routing</area>

	<workgroup>ROLL</workgroup>

        <abstract>
	  <t>
		In a Low Power Lossy Network, the traditional tuple of source,
		destination and ports might not be the proper indication to isolate
		a meaningful flow. For instance, it can be a requirement for the 
		aggregation of related measurements from multiple sources  
		to be treated as a single flow following a same path in order to
		experience similar jitter and latency.	
		In that case, the Flow Label in packets outgoing a RPL domain
		could and sometimes should be set by the root of the RPL structure.
		It derives that the Flow Label could be reused inside the RPL domain.
		This document present how the Flow Label can be used inside a LLN as
		a replacement to the RPL option and provides rules for the root to set
		and reset the Flow Label when forwarding between the inside of RPL 
		domain and the larger Internet, in both direction.
	  </t>
	</abstract>
    </front>

    <middle>

	<!-- **************************************************************** -->
	<!-- **************************************************************** -->
	<!-- **************************************************************** -->
	<!-- **************************************************************** -->
	<section anchor='introduction' title="Introduction">

	<t>
	    In some Low Power and Lossy Network (LLN) applications such as control systems <xref target="RFC5673"/>,
		a packet loss is usually acceptable but jitter and latency must be strictly controlled 
		as they can play a critical role in the interpretation of the measured information.
		Sensory systems are often distributed, and the control information can
		in fact be aggregated from multiple source. 
	</t>
	<t>
		If this aggregated control information is transported across the Internet, it should be
		treated as a single flow for two reasons:
		<list>
		<t>
		The bulk of the traffic consists of small chunks of data (in the order 
		few bytes to a few tens of bytes) at a time. 
		In industrial applications, a typical frequency is 4Hz but it can be a
		lot slower than that for, say, environmental monitoring. The granularity 
		of that traffic is too small to make a lot of sense in load balancing 
		application.
		</t>
		<t>
		The control system may be fooled into misbehaviors if the latency and
		jitter of packets vary from a source to another source for a related measurement. 
		
		</t>
		</list>This is a case where related packets from multiple sources should not 
		be load-balanced along their path in the Internet; this is discouraged by tagging
		those packets with a same Flow Label in the <xref target="RFC2460"> IPv6 
		</xref> header.
	 </t>
	  
	   <t> <xref target="RFC6550">
		The Routing Protocol for Low Power and Lossy Networks (RPL) </xref> specification
		defines a generic Distance Vector protocol that is adapted to a variety of LLNs.
		RPL forms Destination Oriented Directed Acyclic Graphs (DODAGs) which root
		often acts as the Border Router to connect the RPL domain to the Internet.
		The root is responsible to select the RPL Instance that is used to forward
		a packet coming from the Internet into the RPL domain.
	  </t>
	  
	  <t>
	    A classical RPL implementation will use the <xref target="RFC6553"> RPL Option for Carrying 
		RPL Information in Data-Plane Datagrams </xref> to tag a packet with the Instance ID and 
		other information that RPL requires for its operation within the RPL domain. Sadly, the 
		Option must be placed in a Hop-by-Hop option that must be inserted or removed as the 
		packet crosses the border of the RPL domain. This operation may involve an extra encapsulation
		that is detrimental to the network operation, in particular with regards to bandwidth and 
		battery constraints.
	  </t>
	  
	    <t>
		All the packets that are leaving a DODAG of a RPL domain towards the Internet will transit via a 
		same root. The root is an ideal place to set the IPv6 Flow Label to a same value across multiple 
		sources of a same flow when that operation is needed, ensuring complience with the rules defined 
		by <xref target="RFC6437">the IPv6 Flow Label Specification </xref> within the Internet. At the
		same time, the root	segragates the Internet and the RPL domain, allowing to reuse the Flow Label
		within the RPL domain. </t>
		<t>
		This document specifies how the Flow Label can be reused within the RPL domain as a 
		replacement to the RPL option. The use of the Flow Label within a RPL domain is an instance of
		the stateful scenarios decribed in <xref target="RFC6437"/>	where the states include the rank 
		of a node and the RPLInstanceID that identifies the routing topology.
		 </t>
		 
		<t></t>
    </section>

	<!-- **************************************************************** -->
	<!-- **************************************************************** -->
	<!-- **************************************************************** -->
	<!-- **************************************************************** -->

        <section title="Terminology">
            <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
            "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
            and "OPTIONAL" in this document are to be interpreted as
            described in <xref target="RFC2119"/>.</t>

      <t>The Terminology used in this document is consistent with and
      incorporates that described in `Terminology in Low power And Lossy
      Networks' <xref target="I-D.ietf-roll-terminology"></xref>
	  and <xref target="RFC6550"/>.</t>
        </section>
	
    <section title="Flow Label Format Within the RPL Domain">
	<t>
	<xref target="RFC6550"/> section 11.2 specifies the fields that are 
	to be placed into the packets for the purpose of Instance Identification, 
	as well as Loop Avoidance and Detection. Those fields include an 'O', and 'R'
	and an 'F' bits, the 8-bit RPLInstanceID, and the 16-bit SenderRank.
	SenderRank is the result of the DAGRank operation on the rank of the sender,	
	where the DAGRank operation is defined in section 3.5.1 as:
	<list><t>DAGRank(rank) = floor(rank/MinHopRankIncrease)</t></list>
	</t>
	<t>If MinHopRankIncrease is set to a multiple of 256, it appears that
	the most significant 8 bits of the SenderRank will be all zeroes and 
	could be ommitted. In that case, the Flow Label MAY be used as a 
	replacement to the <xref target="RFC6553"/> RPL option. To achive this, the 
	SenderRank is expressed with 8 least significant bits, and the information
	carried within the Flow Label in a packet is constructed follows: </t>

<figure anchor="flowlabel" title="The RPL Flow Label">
              <artwork>

        0                   1                   2
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               | |O|R|F|  SenderRank   | RPLInstanceID |
               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 </artwork>
</figure>
	<t>The first (leftmost) bit of the Flow Label is reserved and should be set to zero.
	</t>
	</section>
	
    <section title="Root Operation">
	<section title="Incoming Packets">
	<t>
	When routing a packet towards the RPL domain, the root applies a policy to determine whether
	the Flow Label is to be used to carry the RPL information. If so, the root MUST reset the Flow Label and
	then it MUST set all the fields in the Flow Label as prescribed by <xref target="RFC6553"/> using the
	format specified in <xref target="flowlabel"/>. In particular, the root selects the Instance that will
	be used to forward the packet within the RPL domain.
	</t>
	</section>
	<section title="Outgoing Packets">
	<t>
	When routing a packet outside the RPL domain, the root applies a policy to determine whether
	the Flow Label was used to carry the RPL information. If so, the root MUST reset the Flow Label.
	The root SHOULD recompute a Flow Label following the rules prescribed by <xref target="RFC6553"/>.
	In particular, the root MAY ignore the source address but it SHOULD use the RPLInstanceID for the computation.
	</t>
	</section>
	</section>
    <section title="Security Considerations">
	<t>	The process of using the Flow Label as opposed to the RPL option
	does not appear to create any opening for new threat compared to
	<xref target="RFC6553"/>.
	</t>
        </section>
        <section title="IANA Considerations">
        <t>No IANA action is required for this specification.
		</t>
        </section>


<section title="Acknowledgments">
<t></t>
</section>

    </middle>

    <back>
    <references title='Normative References'>
       &RFC2119;
       &RFC2460;
       &RFC6550;
       &RFC6553;
	   
    </references>
    <references title='Informative References'>

       &RFC5673;
       &RFC6437;
	   &I-D.ietf-roll-terminology;

    </references>
    </back>

</rfc>

PAFTECH AB 2003-20262026-04-22 03:10:30