<?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" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->

<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY RFC5052 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5052.xml">
<!ENTITY RFC6363 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6363.xml">
<!ENTITY I-D.detchart-nwcrg-tetrys SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.detchart-nwcrg-tetrys.xml">
<!ENTITY I-D.adjih-dragoncast      SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.adjih-dragoncast.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" docName="draft-montpetit-dynamic-nc-00" ipr="full3978"> -->
<rfc category="exp" docName="draft-montpetit-dynamic-nc-00" ipr="trust200902">
<!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->


<!-- ***** FRONT MATTER ***** -->
<front>
	<!-- The abbreviated title is used in the page header - it is only necessary if the 
		   full title is longer than 39 characters -->

	<title>Dynamic Network Coding</title>

	<!-- add 'role="editor"' below for the editors if appropriate -->

	<!-- Another author who claims to be an editor -->

	<author fullname="Marie-Jose Montpetit" initials="M.J." surname="Montpetit">
		<organization>MIT</organization>
		<address>
		  <postal>
		    <street></street>
		    <!-- Reorder these if your country does things differently -->
		    <city>Cambridge</city>
		    <region>MA</region>
		    <code>02138</code>
		    <country>USA</country>
		  </postal>
		  <phone></phone>
		  <email>mariejo@mit.edu</email>
		  <!-- uri and facsimile elements may also be added -->
		</address>
	</author>

	<author fullname="Vincent Roca" initials="V." surname="Roca">
		<organization>INRIA</organization>
		<address>
		  <postal>
		    <street>655, av. de l'Europe</street>
		    <street>Inovallee; Montbonnot</street>
		    <city>ST ISMIER cedex</city>
		    <code>38334</code>
		    <country>France</country>
		  </postal>
		  <email>vincent.roca@inria.fr</email>
		  <uri>http://privatics.inrialpes.fr/people/roca/</uri>
		</address>
	</author>

    <author fullname="Jonathan Detchart" initials="J." surname="Detchart">
       <organization>ISAE</organization>
       <address>
           <postal>
               <street>10, avenue Edouard-Belin</street>
               <street>BP 54032</street>
               <city>Toulouse CEDEX 4</city>
               <code>31055</code>
           <country>France</country>
           </postal>
           <email>jonathan.detchart@isae.fr</email>
       </address>
   </author>


	<!-- <date month="February" year="2015" /> -->
	<date />

	<!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
		   in the current day for you. If only the current year is specified, xml2rfc will fill 
 in the current day and month for you. If the year is not the current one, it is 
 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
 specify just the year. -->

	<!-- Meta-data Declarations -->

	<area></area>

	<workgroup>IRTF Network Coding Working Group</workgroup>
	<!-- WG name at the upperleft corner of the doc,
		   IETF is fine for individual submissions.  
 If this element is not present, the default is "Network Working Group",
		   which is used by the RFC Editor as a nod to the history of the IETF. -->

	<keyword>Network Coding</keyword>
	<!-- Keywords will be incorporated into HTML output
		   files in a meta tag but they have no effect on text or nroff
		   output. If you submit your draft to the RFC Editor, the
		   keywords will be used for the search engine. -->

	<abstract>
	  <t>This document presents a network coding approach that allows coding decisions to be based on the instantaneous conditions at the network nodes. It uses dynamic rates and coefficients to constantly adapt to local conditions and to allow for provider and application differentiation.</t>
	</abstract>
</front>



<!--  ***** MAIN MIDDLE MATTER ***** -->
<middle>
	<section title="Introduction">
	<!-- =============================================================== -->

		<t>Network Coding has proven to be an efficient mechanism to provide increased quality of experience for applications depending on Internet Protocols. Current implementations, be them end-to-end or hop-by-hop, depend on a global decision on the type and applicability of the code. However, the heterogeneous nature of IP networks, the differences between transported traffics and the rise of Information Centric Networks (ICN) and multiple in network caches require to define alternatives to current solutions.</t>

		<t>Dynamic Network Coding (DNC) intends to use the characteristics of the rising Internet traffic (Internet of Things, streaming, progressive downloads etc.), the use of in-network caching opportunities, customer and policy management and the changing dynamics on wireless links. These characteristics will be used to adapt the network coding scheme, rate and coefficients to provide adaptive behavior, differentiation and varying quality of experience. In addition, it will also allow to support emerging Internet Architectures such as the ICN that are considering network coding solutions <xref target="ICN"/>.</t>

		<t>This draft provides the basic elements of such a dynamic code.</t>
	</section>

	<section title="Requirements Language">
		<!-- ==================== -->
		<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">
		RFC 2119</xref>.</t>
	</section>


	<section title= "Definitions, Notations and Abbreviations">
	<!-- =============================================================== -->

		<section title="Definitions">
		<!-- ==================== -->

<t>This document uses the following definitions, that are mostly inspired from from <xref target="RFC5052"/>, <xref target="RFC6363"/>.</t>

<t><list style="empty">
<t> -- Editor's note: most of the definitions should be moved to the future NC Architectural document. -- </t>
</list></t>

<t><list style="empty">
<t>Input Symbol:		a unit of data that is provided as an input to the coding process, in a given coding node. It may be a source symbol or an already encoded repair symbol</t>
<t>Output Symbol:		a unit of data that is produced as an output of the coding process, in a given coding node</t>
<t>Source Symbol:		an original unit of data, before any coding process is applied</t>
<t>Repair Symbol:		an Output Symbol that is not a Source Symbol</t>
<t>Code Rate:			the ratio between the number of Input Symbols and the number of Output Symbols at given coding node.
				The Code Rate belongs to a ]0; 1] interval. A Code Rate close to 1 indicates
				that a small number of Output Symbols have been produced during the encoding process</t>
<t>Systematic Code:		NC code in which the Source Symbols are part of the Output Symbols</t>
<t>DNC Packet:			a packet (e.g., carried as the payload of a UDP datagram) containing a given Output Symbol plus its associated DNC header.</t>
<t>Packet Erasure Channel:	a communication path where packets are either dropped (e.g., by a congested router or because the
				number of transmission errors exceeds the correction capabilities of the physical layer codes) or
				received. When a packet is received, it is assumed that this packet is not corrupted</t>
<!--
<t>FEC Encoding ID:		identifies the type of coding scheme to be used at each node</t>

<t>CodePoint:			numerical value that initialize the different codes; will be based on the FEC Encoding ID. At the destination the CodePoint allows to uniquely recover the different codes used</t>
-->
<!-- MJM: je suis pas sure qu'on est 100 d'accord avec l'usage du CodePoint. -->

<t>To Be Completed</t>
</list></t>

<t><list style="empty">
<t> -- Editor's note: Should we consider the possibility of having several symbols per packet? The DNC packet should be updated accordingly in that case. -- </t>
</list></t>

		</section>

		<section title="Notations">
		<!-- ====================== -->

<t>This document uses the following notations:</t>

<t>
<list style="empty">
<t>CR		denotes the Code Rate</t>
<t>To Be Completed</t>
<!--
<t>L		denotes the object transfer length in bytes.</t>
<t>k		denotes the source block length in symbols,
		i.e., the number of source symbols of a source block.</t>
<t>n		denotes the encoding block length, i.e., the number of
		encoding symbols generated for a source block.</t>
<t>E		denotes the encoding symbol length in bytes.</t>
<t>B		denotes the maximum source block length in symbols,
		i.e., the maximum number of source symbols per source block.</t>
<t>max_n	denotes the maximum number of encoding symbols generated
		for any source block.
		This is in particular the number of encoding symbols
		generated for a source block of size B.</t>
-->
</list></t>
		</section>

		<section title="Abbreviations">
		<!-- ====================== -->

<t>This document uses the following abbreviations:</t>

<t><list style="empty">
		<t>The following definitions are compatible with the FECFRAME framework <xref target="RFC6363"/> and the NC architecture (COMMENT: reference to be added when available).</t>

<t>NC:		Network Coding</t>
<t>DNC:		Dynamic Network Coding</t>
<t>PRNG:	Pseudo-Random Number Generator</t>
<t>TS:		Time Stamp</t>
<t>ESI:		Encoding Symbol ID</t>
<t>To Be Completed</t>
<!--
<t>FEC OTI:	FEC Object Transmission Information</t>
<t>FPI:		FEC Payload ID</t>
-->
</list></t>
		</section>

	</section>


	<section title="Dynamic Network Coding (DNC) Principles">
	<!-- =============================================================== -->

		<t>Network Coding is based on the linear combination of a number of input symbols (at least 1) into a number of output symbols (at least 1), between the ingress and egress of the network.
		Several such encoding operations can happen in case of in-network re-coding, or there can be a single encoding operation, especially when it is applied end-to-end.
		In the RLNC <xref target="RLNC"/>, Tetrys <xref target="I-D.detchart-nwcrg-tetrys"/>, and Dragoncast <xref target="I-D.adjih-dragoncast"/> instances of Network Coding, the linear combination consists in applying a set of coding coefficients to each input symbol of the current encoding window.
		Here the coding vectors are chosen in a deterministic manner at each encoding node, for instance based on local criteria, or are generated using a PRNG seed chosen locally and carried along with the output symbol.</t>

		<t>
		The DNC proposal extends this process as follows: the set of coding coefficients is determined based on the FEC_Encoding ID, Codepoint, and TS header fields of the various input packets present in the encoding window, plus the local time.
		The coding decision therefore depends on time, among other pieces of information.
		</t>

		<section title= "About the Use of Timestamps in DNC">
		<!-- =============================================================== -->
			  
			<t>Each DNC Packet contains timing information: this can be the TS field of the DNC header, or the timestamp field of an NTP header if already present in the packet.
			This timing information (noted TS hereafter, no matter its origin) is used to determine the coding coefficients in a coding node.
			When several DNC packets are present in the encoding window, originating from one or several sources, a decision on which TS will be sent downstream in the network must be taken.
			Options include keeping the oldest TS value, the newest TS value, or generating a local TS value.
			It is assumed that the granularity of the TS in choosing the coding coefficients would be to the second tin order to react to instantaneous condition. </t>

			<t> It is also possible to use the TS in a wider sense, to link to network operations and coding based police management.
			This includes the determination of the coding window, Code Rate, Galois field, etc. </t>

<t><list style="empty">
<t> -- Editor's note: This extension is left for future specifications as it requires closer coordination between network management. policy and coding. -- </t>
</list></t>

		</section>

		<section title= "About the FEC Encoding ID, Codepoint and Coding Decisions">
		<!-- =============================================================== -->

			<t>The FEC Encoding ID is used to identify the type of code (i.e., FEC Scheme) to use at each coding node.
			This is an integer identifier assigned by IANA.
			The value of the FEC Encoding ID MAY vary over the time, within the same flow, and/or across the same path between several coding nodes.
			Different coding decisions can be made by different management entities with different operating constraints (for instance content provider versus network operator).</t>

<t><list style="empty">
<t> -- Editor's note: Having the possibility to change the coding decisions can have major practical technical implications that are not considered for the moment. -- </t>
</list></t>
			<t>
			The Codepoint is an opaque value to be used along with the FEC Encoding ID and TS.
			The {FEC Encoding ID, Codepoint, TS} tuple identifies uniquely the FEC Scheme used and the set of coding coefficients.
			Examples are provided below on how to do that.
			</t>

		</section>

	</section>


	<section title="Dynamic Network Coding (DNC) Procedures">
	<!-- =============================================================== -->

		<section title= "Input Symbol Creation" anchor="input_symbol_creation">
		<!-- =============================================================== -->

			<t>Incoming DNC packets at a coding node are not necessarily of the same fixed size.
			This size may largely vary over the time, up to a maximum size that is related to the Link MTU and/or Path MTU.
			This is a problem when Repair Symbols need to be produced by a coding node.</t>

			<t>Let us consider the simple case where the FEC Scheme is such that a Repair Symbol necessarily spans the payload of the largest Incoming DNC Packet at the encoding window of the coding node.
			Let L be equal to the maximum size of the DNC packets in the encoding window plus 2 bytes.
			The 2 bytes are used to store the original size of the packets.
			Any DNC packet of size inferior to L-2 bytes MUST be zero padded to achieve the desired length of L bytes.
			Then any Repair Symbol within the set of Output Symbols is L bytes long.
			When a Source Symbol is erased and later decoded, the first two bytes of the decoded symbol, that contain the symbol_len field, allows to drop the potential padding.
			</t>

			<figure anchor="packet_format" title="Symbol Format, Case of a Single Flow">
				<artwork align="center"><![CDATA[
+------------+-----------------------+------------------------------+
| symbol_len | symbol value          | optional padding             |
+------------+-----------------------+------------------------------+
  2 bytes      symbol_len bytes        L - 2 - symbol_len bytes
<------------------------------- L bytes --------------------------->]]></artwork>
			</figure>

<t><list style="empty">
<t> -- Editor's note: in presence of multiple flows, an additional FlowID field may be prepended in order to identify the flow this Input Symbol belongs to. The details are TBD. -- </t>
</list></t>

		</section>

		<section title= "Other Procedures TBD">
		<!-- =============================================================== -->

			<t>TBD</t>
			<t>For instance it may be interesting to have a feedback flow to enable a receiver to adjust its encoding window according to the received or decoded Source Symbols.</t>

		</section>
			      
	</section>


	<section title="Application of Dynamic Network Coding to Various Use-cases">
	<!-- =============================================================== -->

<t><list style="empty">
<t> -- Editor's note: This section contains material that may be more appropriate in a future NC Architecture document. -- </t>
</list></t>

		<t>Several technical aspects need to be considered:
		<list style="symbols">
			<t>Intra-flow encoding: (single flow) here all the Source Symbols belong to the same and unique flow;</t>

			<t>Inter-flow encoding: (multiple flows) here the Source Symbols belong to two or more flows.
			This situation is more complex, in particular because it requires to remember the flow a given source symbol belongs to in case this latter gets lost and is recovered by a decoding node;</t>

			<t>End to end: (single coding node) here there is a single coding node and a single decoding node.
			However the coding and/or decoding nodes are not necessarily the source and destination nodes.
			For instance these operations can be performed by middle boxes, or coding may be done in a middle box while decoding is performed at the destination node, or vice-versa.
            The nature of the coding and decoding nodes should not significantly impact the way DNC operates;

<list style="empty">
<t> -- Editor's note: This claim is TBC. -- </t>
</list></t>

			<t>In network re-coding: (composability) here several coding nodes exist along the path.
			This situation significantly impacts the way DNC operates, in particular in terms of signaling.
			Indeed a decoding node MUST be able to identify the exact manner in which a given Repair Symbol has been generated, recursively since this Repair Symbol MAY be the result of several coding operations, at different coding nodes;</t>

			<t>Multi-source: here several traffic sources exist.
			They either jointly contribute to the same data flow, all sources sending traffic related to the same content, or they contribute to multiple data flows, sources sending traffic for different contents;</t>

			<t>Multi-paths: here the traffic follows multiple paths.
			This traffic can be originated from a unique source (e.g., with multi-path TCP, MPTCP), or with multiple sources which is the more general case;</t>
		</list></t>

		<t>The above taxonomy can be used to identify several types of use-cases.
		In the following we consider some of the potential use-cases and explain how DNC can be applied.
		This is in no case an exhaustive list and will be adapted in the future as we get more insights on the code usage.</t>


		<section title="Single Flow, Single Source, End-to-end, Single Path or Multi Paths Use-Case">
		<!-- =============================================================== -->

			<t>In this use-case, there is a single flow originated by a single source, with intra stream coding that takes place at a single coding node.
			There can be either a single path or multiple paths, since this situation does not impact the way DNC operates.
			</t>

			<t>This is the simplest use-case, that is very much inline with currently proposed scenarios for end to end streaming.</t>


			<section title="Example of DNC Implementation for this Use-Case">
			<!-- =============================================================== -->

			<t>The following DNC approach / FEC Scheme is appropriate for this simple use-case.
			However this is only an example and other approaches may be considered, for instance differing in the way the {FEC Encoding ID, Codepoint, TS} tuple is used.</t>

			<t>
			Let us consider a FEC Scheme that defines the G table containing NL lists, each list being populated with NC coefficients over a given Finite Field, say GF(2^^4).
			This table, G, is contained in the FEC Scheme specification.
			Each coding and decoding node supports this FEC Scheme (and potentially a certain number of additional FEC Schemes), this latter being identified by an IANA FEC Encoding ID value.
			</t>

			<t><list style="symbols">
				<t>
				Encoding process: 
				Let W be the encoding window, containing K Input Symbols (constructed as specified in <xref target="input_symbol_creation"/>).
				It is required that K be at most equal to the number of coefficients in each row of G.
				If this is not the case, an appropriate number of symbols are removed from window W until this property holds.
				Let TS be the timestamp corresponding to the current time at the coding node.
				Let Codepoint be the current integer value of a counter that is managed sequentially, starting a 0 upon initializing the DNC coding node instance, and wrapping to 0 upon reaching the maximum counter value.
<list style="empty">
<t> -- Editor's note: The counter field size, in bits, is not specified in this version of the document. 32 bits or 16 bits are two possible values. -- </t>
</list>
				Let r be an integer calculated as r=f(Codepoint, TS, K); where f is a deterministic function that produces an integer in the {0; K-1} range.
				This function is for instance the result of a hash over {Codepoint, TS} modulo K.
<list style="empty">
<t> -- Editor's note: The FEC Scheme specification fully specifies this f function. -- </t>
</list>
				The output Repair Symbol is computed as the XOR sum of each Input Symbol in W multiplied by the corresponding coefficient in row r of G (i.e., the first symbol is multiplied by G[r][0], the second symbol is multiplied by G[r][1], etc. til the last symbol of W).
				</t>

				<t>
				Transmitted Output Symbol:
				The FEC Encoding ID is communicated in the DNC packet header.
				The {Codepoint, TS} tuple can be used to uniquely identify the Repair Symbol produced by the coding process.
				This tuple is communicated in the DNC packet header.
				The ESI of each packet currently in W is communicated in the DNC packet header.
				This information can consist of a list of ESIs, or in the simple case where they are all in sequence, the {first ESI, K} tuple can be communicated, or a sequence of such tuples can be sent in the case where ESIs are mostly in sequence with a limited number of gaps, of the first ESI along with a bit field (e.g., of size 64 bits if K is at most 64) can be communicated.
<list style="empty">
<t> -- Editor's note: Many other pieces of information will be transmitted for other features. The DNC header format also remains TBD. -- </t>
</list>
				</t>

				<t>
				Processing at the decoding node: 
				Upon receiving this Repair Symbol, an additional equation is added to the current linear system.
				The FEC Encoding ID enables the decoding node to identify the FEC Scheme used by the coding node, as well as the G matrix.
				The {Codepoint, TS} tuple enables the decoding node to identify the set of coding coefficients used by the coding node.
				</t>

				<t>
				Decoding process: 
				If the linear system enables it, a decoding process is used to recover an erased Source Symbol.
				The first two bytes of the decoded symbol is read and used to identify the initial length of the Source Symbol and to remove padding if needed.
				The decoded Source Symbol is then communicated to the receiving node (or receiving application).
				</t>
			</list></t>
			</section>

		</section>

		<section title="Single Flow with In-network Re-Coding">
		<!-- =============================================================== -->

			<t>In this use-case, there is a single flow, originated either by a single source or by multiple source for the same content, with in-network re-coding capabilities.
			There can be either a single path or multiple paths (e.g., if there are multiple sources).
			There are multiple sub use-cases, among which the following three ones.</t>

			<t>
			<figure anchor="use-case-1" title=""><artwork align="center"><![CDATA[
S ==> CN_1 ==> Router  ==> D_1
                 |         | source symbols
        erasures |         v
                 +======> CN_2 ==> D_2]]></artwork>
			</figure>
			In this first scenario CN_1 et CN_2 are two NC encoders.
			The flow arriving in CN_2 from the router is impacted by erasures.
			However this is not the case of the links to destination D_1, that has decoded the packets and this node retransmits the source symbols received or recovered towards D_2.
			In CN_2 all symbols are recombined and sent to D_2.
			This could be a scenario that combines wired and wireless paths.
			</t>

			<t>Another scenario is the following, where two sources generate some traffic for the same content:
			<figure anchor="use-case-2" title=""><artwork align="center"><![CDATA[
S_1 ==> CN_1 ==> CN_3 ==> D_1
                  ^
                  |
S_2 ==> CN_2 =====+]]></artwork>
			</figure>
			Here S_1 and S_2 are transmitting the same content.
			The flow coming from S_1 (resp. S_2) is encoded at CN_1 (resp. CN_2), and the two encoded flows are later re-encoded in CN_3, a third NC encoder, on their way to D_1.</t>

			<t> Finally, with a single flow passing through wired and wireless paths, the following scenario is likely.
			<figure anchor="use-case-3" title=""><artwork align="center"><![CDATA[
S ==> CN_1 ==> low losses ==> CN_2 ==> high losses ==> D_1]]></artwork>
			</figure>
			Between CN_1 and CN_2, the network is a wired internet and a high rate code (i.e., adding a limited number of encoded packets) can be used (e.g., it may be a simple XOR of packets as in QUIC <xref target="QUIC"/>).
			Between CN_2 et D_1 the link can be a WIFI or LTE wireless network, potentially experiencing higher losses.
			Consequently a higher number of Repair Symbols (i.e., lower code rate) can be needed, with potentially a local feedback loop that enables to adapt the code rate based on the instantaneous conditions observed over that lossy link.</t>

		</section>


		<section title="Other Use Cases">
		<!-- =============================================================== -->
			<t>Many use-cases remain TBD, for instance to cover the Peer to peer, complex multipath, or storage use-cases.</t>
		</section>

	</section>

	<section anchor="Acknowledgements" title="Acknowledgements">
	<!-- =============================================================== -->
		<t> M-J. Montpetit would like to thank Huawei and in particular Shucheng Liu for supporting the work leading to this draft.</t>
	</section>

	<!-- Possibly a 'Contributors' section ... -->

	<section anchor="IANA" title="IANA Considerations">
	<!-- =============================================================== -->
		<!-- <t>This memo includes no request to IANA.</t> -->
		<t>TBD</t>
	</section>

	<section anchor="Security" title="Security Considerations">
	<!-- =============================================================== -->
		<t>TBD, see <xref target="RFC3552">RFC 3552</xref>.</t>
	</section>

</middle>

<!--  *****BACK MATTER ***** -->
<back>
	<!-- References split into informative and normative -->

	<!-- There are 2 ways to insert reference entries from the citation libraries:
		1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
		2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
		  (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

		Both are cited textually in the same manner: by using xref elements.
		If you use the PI option, xml2rfc will, by default, try to find included files in the same
		directory as the including file. You can also define the XML_LIBRARY environment variable
		with a value containing a set of directories to search.  These can be either in the local
		filing system or remote ones accessed by http (http://domain/dir/... ).-->

	<references title="Normative References">
		<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
		&RFC2119;

		<!-- the following is the minimum to make xml2rfc happy 
		<reference anchor="min_ref">
		  <front>
		    <title>Minimal Reference</title>
		    <author initials="authInitials" surname="authSurName">
		      <organization></organization>
		    </author>
		    <date year="2006" />
		  </front>
		</reference>
		-->
	</references>

	<references title="Informative References">
		<!-- Here we use entities that we defined at the beginning. -->

		&RFC3552;

		&I-D.detchart-nwcrg-tetrys;

		&I-D.adjih-dragoncast;

		&RFC5052;

		&RFC6363;
 
        <reference anchor="ICN">
            <front>
                <title>Network coding meets information-centric networking: an architectural case for information dispersion through native network coding</title>
                <author initials="M" surname="Montpetit">
                </author>
                <author initials="C" surname="Wesphal">
                </author>
                <author initials="D" surname="Trossen">
                </author>
                <date month="June" year="2012" />
            </front>
            <seriesInfo name="Proceedings of the" value="1st ACM workshop on Emerging Name-Oriented Mobile Networking Design - Architecture, Algorithms, and Applications (NOM'2012)" />
        </reference>

		<reference anchor="QUIC">
		  <front>
		    <title>QUIC: Quick UDP Internet Connections Multiplexed Stream Transport</title>
		    <author initials="JR" surname="Roskind">
		      <organization>Google</organization>
		    </author>
		    <date month="November" year="2013" />
		  </front>
		  <seriesInfo name="IETF-88" value="TSV Area Presentation" />
		  <format target="http://www.ietf.org/proceedings/88/slides/slides-88-tsvarea-10.pdf" type="HTML" />
		</reference>
        
        <reference anchor="RLNC">
            <front>
                <title>A Random Linear Network Coding Approach to Multicast</title>
                <author initials="T" surname="Ho">
                </author>
                <author initials="R" surname="Koetter">
                </author>
                <author initials="M" surname="Medard">
                </author>
                <author initials="D" surname="Karger">
                </author>
                <author initials="M" surname="Effros">
                </author>
                <author initials="J" surname="Shi">
                </author>
                <author initials="B" surname="Leung">
                </author>
                <date month="October" year="2006" />
            </front>
            <seriesInfo name="IEEE Transactions on Information Theory" value="Vol. 52 No. 10" />
        </reference>
        
        <!-- A reference written by an organization not a person. -->
		<!--
		<reference anchor="DOMINATION"
			   target="http://www.example.com/dominator.html">
		  <front>
		    <title>Ultimate Plan for Taking Over the World</title>

		    <author>
		      <organization>Mad Dominators, Inc.</organization>
		    </author>

		    <date year="1984" />
		  </front>
		</reference>
		-->
	</references>

	<section anchor="app-additional" title="Appendix: IPR aspects">
		<t>IPR aspects if any to be provided later</t>
	</section>

	<!-- Change Log
	-->
</back>
</rfc>
