<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" 
[
    <!ENTITY rfc2119 PUBLIC '' 
      'reference.RFC.2119.xml'>
    <!ENTITY rfc2460 PUBLIC '' 
      'reference.RFC.2460.xml'>
    <!ENTITY rfc4861 PUBLIC '' 
      'reference.RFC.4861.xml'>
    <!ENTITY rfc3315 PUBLIC '' 
      'reference.RFC.3315.xml'>
    <!ENTITY rfc5214 PUBLIC '' 
      'reference.RFC.5214.xml'>
    <!ENTITY rfc7083 PUBLIC '' 
      'reference.RFC.7083.xml'>
]>

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

<?rfc rfcedstyle="yes"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<rfc number="7559" category="std" ipr="trust200902" submissionType="IETF"
     consensus="yes" updates="4861">
<front>
<title abbrev="Resilient RS Retransmission">Packet-Loss Resiliency for Router Solicitations</title>
    <author initials="S.K." surname="Krishnan" fullname='Suresh Krishnan'>
        <organization>Ericsson</organization>
        <address>
            <postal>
                <street>8400 Decarie Blvd.</street>
                <city>Town of Mount Royal</city>
                <region>QC</region>
                <country>Canada</country>
            </postal>
            <phone>+1 514 345 7900 x42871</phone>
            <email>suresh.krishnan@ericsson.com</email>
        </address>
    </author>

    <author initials="D.A." surname="Anipko" fullname='Dmitry Anipko'>
        <organization>Unaffiliated</organization>
        <address>
            <phone>+1 425 442 6356</phone>
            <email>dmitry.anipko@gmail.com</email>
        </address>
     </author>

    <author initials="D." surname="Thaler" fullname='Dave Thaler'>
        <organization>Microsoft</organization>
        <address>
            <postal>
                <street>One Microsoft Way</street>
                <city>Redmond</city>
                <region>WA</region>
                <country>United States</country>
            </postal>
            <email>dthaler@microsoft.com</email>
        </address>
     </author>

<date/><area>Internet</area><workgroup>6MAN</workgroup>


 <abstract>
    <t>When an interface on a host is initialized, the host transmits 
       Router Solicitations in order to minimize the amount of time it 
       needs to wait until the next unsolicited multicast Router 
       Advertisement is received.  In certain scenarios, these Router 
       Solicitations transmitted by the host might be lost.  This document 
       specifies a mechanism for hosts to cope with the loss of the 
       initial Router Solicitations.
    </t>
 </abstract>
</front>
<middle>
<section anchor="intro" title="Introduction">
    <t>As specified in <xref target="RFC4861"/>, when an interface on 
       a host is initialized, in order to obtain Router Advertisements 
       quickly, a host transmits up to MAX_RTR_SOLICITATIONS (3) Router 
       Solicitation (RS) messages, each separated by at least 
       RTR_SOLICITATION_INTERVAL (4) seconds.  In certain scenarios, 
       these Router Solicitations transmitted by the host might be 
       lost. For example, the host is connected to a bridged residential gateway 
            over Ethernet or Wi-Fi.  LAN connectivity is achieved at interface 
            initialization, but the upstream WAN connectivity is not active 
            yet.  In this case, the host just gives up after the initial RS 
            retransmits.
        </t>
    <t>Once the initial RSs are lost, the host gives up and assumes
    that there are no routers on the link as specified in Section
    6.3.7 of <xref target="RFC4861"/>.  The host will not have any
    form of Internet connectivity until the next unsolicited multicast
    Router Advertisement is received.  These Router Advertisements are
    transmitted at most MaxRtrAdvInterval seconds apart (maximum value
    1800 seconds).  Thus, in the worst-case scenario a host would be
    without any connectivity for 30 minutes.  This delay may be
    unacceptable in some scenarios.
    </t>

    <section title="Conventions Used in This Document">
        <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>
    </section>
</section>

<section anchor="algo" title="Proposed Algorithm">
    <t>To achieve resiliency to packet loss, the host needs to
       continue retransmitting the Router Solicitations until it receives
       a Router Advertisement, or until it is willing to accept that no
       router exists.  If the host continues retransmitting the RSs at
       RTR_SOLICITATION_INTERVAL second intervals, it may cause
       excessive network traffic if a large number of such hosts 
       exists.  To achieve resiliency while keeping
       the aggregate network traffic low, the host can use some form of
       exponential backoff algorithm to retransmit the RSs.
    </t>

    <t>Hosts complying to this specification MUST use the exponential 
       backoff algorithm for retransmits that is described in Section 14 
       of <xref target="RFC3315"/> in order to continuously retransmit 
       the Router Solicitations until a Router Advertisement is 
       received.  The hosts SHOULD use the following variables as input 
       to the retransmission algorithm:
    </t>

<figure><artwork>
     IRT (Initial Retransmission Time):     4 seconds 
     MRT (Maximum Retransmission Time):  3600 seconds
     MRC (Maximum Retransmission Count):    0
     MRD (Maximum Retransmission Duration): 0
     </artwork></figure>

    <t>The initial value IRT was chosen to be in line with the
       current retransmission interval (RTR_SOLICITATION_INTERVAL)
       that is specified by <xref target="RFC4861"/>, and the maximum
       retransmission time MRT was chosen to be in line with the new
       value of SOL_MAX_RT as specified by <xref
       target="RFC7083"/>. This is to ensure that the short-term
       behavior of the RSs is similar to what is experienced in
       current networks, and that longer-term persistent retransmission
       behavior trends towards being similar to that of DHCPv6 <xref
       target="RFC3315"/> <xref target="RFC7083"/>.
    </t> 
<section anchor="stop" title="Stopping the Retransmissions">
<t>On multicast-capable links, the hosts following this specification
SHOULD stop retransmitting the RSs when Router Discovery is successful
(i.e., an RA with a non-zero Router Lifetime that results in a default
route is received). If an RA is received from a router and it does not result in a
default route (i.e., Router Lifetime is zero), the host MUST continue
retransmitting the RSs.
</t>
<t>On non-multicast links, the hosts following this specification MUST
continue retransmitting the RSs even after an RA that results in a default
route is received. This is required because, in such links, sending an RA can
only be triggered by an RS. Please note that such links have special
mechanisms for sending RSs as well. For example, the mechanism specified in
Section 8.3.4 of the Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) <xref target="RFC5214"/> unicasts the RSs to specific routers.
</t>
</section>
</section>

<section anchor="conf" title="Configuring the Use of Retransmissions">
<t>
Implementations of this specification are encouraged to provide a
configuration option to enable or disable potentially infinite RS
retransmissions. If a configuration option is provided, it MUST enable
RS retransmissions by default. 

   Providing an option to enable/disable 
   retransmissions on a per-interface basis allows network
   operators to configure RS behavior in the most applicable way 
   for each connected link.

</t>
</section>

<section anchor="open" title="Known Limitations">
    <t>When an IPv6-capable host attaches to a network that does not 
       have IPv6 enabled, it transmits 3 (MAX_RTR_SOLICITATIONS) 
       Router Solicitations as specified in <xref target="RFC4861"/>.  If 
       it receives no Router Advertisements, it assumes that there are 
       no routers present on the link and it ceases to send further 
       RSs.  With the mechanism specified in this document, the host 
       will continue to retransmit RSs indefinitely at the rate of 
       approximately 1 RS per hour.  It is unclear how to differentiate 
       between such a network with no IPv6 routers and a link where an 
       IPv6 router is temporarily unreachable but could become reachable 
       in the future.
    </t>
</section>

<section anchor="security" title="Security Considerations">
    <t>This document does not present any additional security issues
    beyond those discussed in <xref target="RFC4861"/> and those RFCs
    that update <xref target="RFC4861"/>.
    </t>
</section>


</middle>

<back>

<references title="Normative References">
  &rfc2119;&rfc4861;&rfc3315;
  &rfc7083;
</references>
<references title="Informative References">
&rfc5214;
</references>

<section anchor="acks" title="Acknowledgements" numbered="no">
    <t>The authors would like to thank Steve Baillargeon, Erik Kline,
    Andrew Yourtchenko, Ole Troan, Erik Nordmark, Lorenzo Colitti,
    Thomas Narten, Ran Atkinson, Allison Mankin, Les Ginsberg, Brian
    Carpenter, Barry Leiba, Brian Haberman, Spencer Dawkins, Alia
    Atlas, Stephen Farrell, and Mehmet Ersue for their reviews and
    suggestions that made this document better.
    </t>
</section>

</back>
</rfc>
