<?xml version='1.0' ?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd' [      
	<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
	<!ENTITY RFC3234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3234.xml">
    <!ENTITY stackevo SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-trammell-stackevo-explicit-coop-00.xml">
	<!ENTITY spud-req SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-trammell-spud-req-01.xml">
]>


<?xml-stylesheet type="text/xsl" href="rfc2629.xslt"?> 
<rfc ipr="trust200902" docName="draft-marjou-spud-traceroute-use-cases-00" category="info" xml:lang="en">
<?rfc toc='yes'?>
<?rfc compact='yes'?>
<?rfc sortrefs='yes'?>

  
<front>
	<title abbrev='Traceroute Use Case for SPUD'>
    Traceroute Use Case for SPUD
	</title>
	
	<author initials='X.' surname='Marjou' fullname='Xavier Marjou' role="editor">
	<organization>Orange</organization>
	<address>
		<postal>
			<street>2, avenue Pierre Marzin</street>
			<city>Lannion</city> 
			<code>22307</code>
			<country>France</country>
		</postal> 
      <email>xavier.marjou@orange.com</email>
	</address>
	</author>
	
	<author initials='A.' surname='Braud' fullname='Arnaud Braud'>
	<organization>Orange</organization>
	<address>
		<postal>
			<street>2, avenue Pierre Marzin</street>
			<city>Lannion</city> 
			<code>22307</code>
			<country>France</country>
		</postal> 
      <email>arnaud.braud@orange.com</email>
	</address>
	</author>
	
	<author initials='R.' surname='Romuald' fullname='Romuald Corbel'>
	<organization>Telecom Bretagne</organization>
	<address>
		<postal>
			<street>655 Avenue du Technopole</street>
			<city>Plouzane</city> 
			<code>29200</code>
			<country>France</country>
		</postal> 
      <email>romuald.corbel@telecom-bretagne.eu</email>
	</address>
	</author>
	
	<date month='June' year='2016' />
	
	<area>Transport Area</area>
	<keyword>SPUD</keyword>
	
	<abstract>
	<t>In the context of the Substrate Protocol for User Datagrams (SPUD), this document proposes a new use case and its derived requirements: a traceroute function allowing users
	to explicitly ask middleboxes (a.k.a. network devices) to provide their geospatial information.</t>
	</abstract>
</front>

<middle>

	<section title="Introduction">
		<t>The IAB is currently working on the evolution of the IP stack program, as captured in <xref target="I-D.trammell-stackevo-explicit-coop"/> to de-ossify the IP stack. 
		The Substrate Protocol for User Datagrams (SPUD) is a candidate for solving some of the needs identified by this work. 
        A first set of SPUD use-cases has already been identified as described in <xref target="I-D.trammell-spud-req"/>.</t>
		
        <t>This document proposes an additional use-case and the derived requirements: a traceroute function allowing users
	    to explicitly ask middleboxes (a.k.a. network devices) to provide their geospatial information.</t>
	 
	</section>

    <section title="Terminology">
	
	<t>Middlebox: As defined in <xref target="RFC3234"/>, a middlebox is any
      intermediary device performing functions other than the normal,
      standard functions of an IP router on the datagram path between a
      source host and destination host; e.g. making decisions about
      forwarding behavior based on other than addressing information,
      and/or modifying a packet before forwarding.</t>
	
	<t>Geospatial information: A set of coordinates containing a longitude, 
	a latitude and possibly a timestamp which describes the 
	location of the middlebox.</t>
	
	</section>

	<section anchor="usecase" title="Use case">
		<section title="Global Traceroute">
            <section title="User Initiative">
			<t>A user wishes to obtain hints about the route taken by its IP flows. 
            More precisely, the user wishes to get the geospatial information of the middleboxes located on the path between his device and the remote server.</t>
            </section>
            <section title="Server Initiative">
            <t>A service provider like an online bank service wishes to obtain hints about the route taken by the IP flows of their users in order to increase the probabilities that the remote device is under control of the real user and not under control of a fake user. The activation of the traceroute requires the consent of the user.</t>
            </section>
		</section>
		<section title="Traceroute, First Network Device Only">
			<t>A user wishes to activate the traceroute function on the first encountered middlebox to get an approximate location for his device.</t>
		</section>
		<section title="Do Not Traceroute">
			<t>At any time, the user can require the middleboxes to stop providing geospatial information.</t>
		</section>	
	</section>

	<section anchor="reqs" title="Requirements">
		<section title="Traceroute">
			<t>REQ-1: A server endpoint MAY propose the traceroute activation. It will be up to the user to accept or reject the proposal.</t>
			<t>REQ-2: A SPUD client MUST be able to request one or more middleboxes to provide their geospatial information.</t>
			<t>REQ-3: The geospatial information provided by a middlebox MUST be non repudiable.</t>
			<t>REQ-4: Providing geospatial information MUST not add significant delay to the packets of the flow.</t>
		</section>
		<section title="Do Not Traceroute">	
			<t>REQ-5: A SPUD client MUST be able to request the middleboxes not to provide geospatial information.</t>
			<t>REQ-6: A middlebox MUST NOT provide geospatial information without an explicit consent of the user.</t>
		</section>
	</section>	
    
	<section title="Security Considerations"> 
		<t>When there is a Graphical User Interface (GUI), the user needs an explicit notification indicating whether the traceroute mechanism is used or not.</t>
	</section>

	<section title="IANA Considerations">
		<t>None.</t>
	</section> 

	<section title="Acknowledgements">
		<t>To do.</t>
	</section> 
  
</middle>

<back>
<references title="Informative references">
    &RFC3234;
	&stackevo;
	&spud-req;
</references>
</back>
</rfc>