<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
 <!-- xml2rfc2 -->
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc rfcedstyle="yes"?>

<!-- [rfced] FYI, we have used xml2rfc v2 (available from 
http://xml.resource.org) to convert this document to text.
-->

<rfc category="std" number="6977" submissionType="IETF" consensus="yes"
     ipr="trust200902">
  <front>
    <title abbrev="DHCPv6 Relay-Triggered Reconfiguration">Triggering DHCPv6
Reconfiguration from Relay Agents</title>

    <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization>France Telecom</organization>

      <address>
        <postal>
          <street></street>

          <city>Rennes</city>

          <region></region>

          <code>35000</code>

          <country>France</country>
        </postal>

        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>

    <author fullname="Xavier Pougnard" initials="X." surname="Pougnard">
      <organization>France Telecom</organization>

      <address>
        <postal>
          <street></street>

          <city>Lannion</city>

          <region></region>

          <code></code>

          <country>France</country>
        </postal>

        <phone></phone>

        <email>xavier.pougnard@orange.com</email>
      </address>
    </author>

    <date month="July" year="2013" />

    <workgroup>DHC Working Group</workgroup>

<!-- [rfced] Please insert any keywords (beyond those that appear in 
the title) for use on http://www.rfc-editor.org/search/rfc_search.php.

<keyword>example</keyword>
-->

    <abstract>
      <t>This document defines two new DHCPv6 messages: Reconfigure-Request and
      Reconfigure-Reply. The Reconfigure-Request message is sent by a DHCPv6 relay
      agent to notify a DHCPv6 server about a configuration information
      change, so that the DHCPv6 server can send a Reconfigure message
      accordingly. The Reconfigure-Reply message is used by the server to
      acknowledge the receipt of the Reconfigure-Request message.</t>
    </abstract>
  </front>

<!-- [rfced] Throughout the text, the following terminology was used 
inconsistently:

Reconfigure-Request / RECONFIGURE-REQUEST
Reconfigure-Reply / RECONFIGURE-REPLY

Note that we have used Reconfigure-Request and Reconfigure-Reply in running 
text, and the all capitalized forms where the text referred to the message type 
codes or the contents of the "msg-type" field.  We believe this aligns with how
similar message names were treated in RFC 3315.  Please let us know any 
objections. 
-->


  <middle>
    <section title="Introduction">
      <t>This document specifies two new DHCPv6 messages <xref
      target="RFC3315"></xref>: Reconfigure-Request and Reconfigure-Reply.</t>

      <t><xref target="problem"></xref> describes a typical problem scenario
      encountered that triggers the DHCPv6 server to issue a Reconfigure message
      when the configuration data is supplied by the relay agent. This problem
      may be encountered in other contexts. It is out of scope of this
      document to list all these cases.</t>

      <t><xref target="solution"></xref> describes the proposed solution that
      relies on the use of Reconfigure-Request and Reconfigure-Reply messages.
      The Reconfigure-Request message is sent by a DHCPv6 relay agent to notify a
      DHCPv6 server about a configuration-information change, so that the
      DHCPv6 server can send a Reconfigure message accordingly.
      The Reconfigure-Reply message is used by the server to acknowledge the
      receipt of Reconfigure-Request.</t>

<t><xref target="lloption"></xref> specifies the Link Address Option used by the
relay agent to indicate the link on which the client is located
to the server.</t>

      <t><xref target="spec"></xref> provides the detailed specification of
      the procedure to trigger Reconfigure messages by DHCPv6 relay
      agents.</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"></xref>.</t>
    </section>

    <section anchor="problem" title="Problem Statement">
      <t>For cases where the DHCPv6 relay agent possesses some information
      that would be useful to the DHCPv6 client, <xref
      target="RFC6422"></xref> specifies a mechanism whereby the DHCPv6 relay
      agent can provide such information to the DHCPv6 server, which can, in
      turn, pass this information on to the DHCP client. This is achieved
      by use of RSOO (Relay-Supplied Options option), which carries
      configuration data to the DHCPv6 server. The data conveyed in an RSOO is
      then sent back by the DHCPv6 server to the requesting DHCPv6 client.</t>

      <t>An example of RSOO usage is shown in <xref target="ex1"></xref>;
      only a subset of exchanged DHCPv6 and RADIUS messages is represented.
      <xref target="ex1"></xref> shows a broadband network scenario in which
      the Network Access Server (NAS) embeds a DHCPv6 relay agent.</t>

      <t><figure align="center" anchor="ex1"
          title="An Example of the RSOO Usage">

          <artwork><![CDATA[   +-------+                   +-------+                    +-------+
   |DHCPv6 |                   |  NAS  |                    |Radius |
   |Client |                   |(DHCPv6|                    |Server |
   |       |                   | Relay)|                    |       |
   +-------+                   +-------+                    +-------+
       |                           |                            |
       |---Solicit---------------->|                            |
       |                           |---Access-Request---------->|
                                   |<--Access-Accept------------|
                                   | (e.g., DS-Lite-Tunnel-Name)|
                                 ....
                                   |                        +-------+
                                   |                        |DHCPv6 |
                                   |                        |Server |
                                   |                        |       |
                                   |                        +-------+
                                   |                            |
                                   |---Relay-Forward----------->|
                                   |  (RSOO(OPTION_AFTR_NAME))  |
                                   |                            |
       |                           |<--Relay-Reply--------------|
       |<--Advertise---------------|  (e.g., OPTION_AFTR_NAME)  |
       |  (e.g., OPTION_AFTR_NAME) |
                                  ....]]></artwork>
        </figure></t>

      <t>A configuration change may result in an exchange of CoA
      (Change-of-Authorization) <xref target="RFC5176"></xref> messages
      between the NAS/DHCPv6 relay agent and Dynamic Authorization Client
      (DAC) server as shown in <xref target="ex2"></xref>. In this example,
      the NAS answers with a CoA-Ack message to notify the DAC that the CoA-Request
      has been successfully handled.</t>

      <t>Note that the change of the configuration in the DHCPv6 relay agent can be
      triggered by any other out-of-band mechanism.</t>

      <t><figure align="center" anchor="ex2" title="Change of Configuration">
          <artwork><![CDATA[   +-------+                   +-------+                    +-------+
   |DHCPv6 |                   |  NAS  |                    |Radius |
   |Client |                   |(DHCPv6|                    |Server/|
   |       |                   | Relay)|                    |  DAC  |
   +-------+                   +-------+                    +-------+
       |                           |                            |
                                   |<-----CoA-Request-----------|
                                   |(e.g., DS-Lite-Tunnel-Name) |
                                   |------CoA-Ack-------------->|
                                 ....

]]></artwork>
        </figure></t>

      <t>Whenever the configuration information sent by the DHCPv6 relay agent
      to the DHCPv6 server changes, the DHCPv6 server has no means of detecting
      the change so that it can send a Reconfigure message accordingly. A
      solution is sketched in <xref target="solution"></xref>.</t>
    </section>

    <section anchor="solution" title="Solution Overview">
      <t>To solve the problem described in <xref target="problem"></xref>,
      this document proposes a new DHCP message called Reconfigure-Request. In
      the example depicted in <xref target="ex3"></xref>, a
      Reconfigure-Request message is sent by the DHCPv6 relay agent to a
      DHCPv6 server as soon as the configuration data conveyed in an RSOO
      has changed. 

Upon receipt of this message, and if it is
      configured to support such a mode, the DHCPv6 server must build
      Reconfigure-Reply and Reconfigure messages. Reconfigure-Reply is used to
      acknowledge the receipt of Reconfigure-Request. The Reconfigure message
      encapsulated in Relay-Reply is sent to the DHCPv6 relay, which in turn
      will forward the message to the appropriate DHCPv6 client.</t>

      <t>This setup assumes the relay has a record of the client, so that it
      has enough information to send the Reconfigure-Request message to the
      server. How the state is recorded in the relay is out of scope of this document. For
      better resilience of the proposed solution, means to recover state in
      the event of failure (e.g., use of stable storage, DHCPv6 Bulk Leasequery
      <xref target="RFC5460"></xref>) need to be supported. These state
      recovery solutions are not discussed in this document.</t>

      <t><figure align="center" anchor="ex3"
          title="Flow Example with Reconfigure-Request">
          <artwork><![CDATA[   +-------+                   +-------+                    +-------+
   |DHCPv6 |                   |  NAS  |                    |Radius |
   |Client |                   |(DHCPv6|                    |Server/|
   |       |                   | Relay)|                    | DAC   |
   +-------+                   +-------+                    +-------+
       |                           |                            |
                                   |<-----CoA-Request-----------|
                                   |(e.g., DS-Lite-Tunnel-Name) |
                                   |                            |
                                   |------CoA-Ack-------------->|
                                 ....
                                   |                        +-------+
                                   |                        |DHCPv6 |
                                   |                        |Server |
                                   |                        |       |
                                   |                        +-------+
                                   |                            | 
                                   |---Reconfigure-Request----->|
                                   |<--Reconfigure-Reply--------| 
                                   |                            |
       |                           |<--Relay-Reply -------------|
       |<--Reconfigure-------------|   (Reconfigure)            |
       |                           |                            |
                                 ....]]></artwork>
        </figure></t>

      <t>The support of Reconfigure-Reply messages simplifies the retransmission
      procedure of the relay as it provides an explicit indication from the
      server (see <xref target="retr"></xref> for more details). An
      alternative approach is the relay monitors' Reconfigure messages received
      from the server to conclude whether or not the Reconfigure-Request was successfully
      handled. Nevertheless, this implicit approach may fail to achieve
      its goals in some cases: for example, the server accepts the request but it
      delays generating the corresponding Reconfigure messages due to its
      rate-limiting policies, the request was partially failed for some
      clients, etc. To avoid useless reconfigure cycles (e.g., due to the loss
      of Reconfigure-Reply messages), the approach adopted in this document allows the
      relay to correct the content of a retransmitted Reconfigure-Request
      based on some observed events (e.g., the client has retrieved the
      updated configuration). If the relay has no client to be reconfigured,
      it stops sending Reconfigure-Request messages.</t>

      <t>The Reconfigure-Request message can also be used in scenarios other
      than those that assume the use of RSOO. It is out of scope of this
      document to describe all these scenarios.</t>
    </section>

    <section anchor="lloption" title="Link Address Option">
      <t><xref target="llfig"></xref> shows the format of the Link Address
      Option.</t>

      <t><figure align="center" anchor="llfig"
          title="Message Format of Link Address Option">
          <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       OPTION_LINK_ADDRESS     |         option-len            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 |                  link-address (IPv6 address)                  |
 |                                                               |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        </figure>The description of the fields are as follows:</t>

      <t><list style="empty">
          <t>option-code: OPTION_LINK_ADDRESS (80)</t>

          <t>option-len: 16 (octets)</t>

          <t>link-address: An IPv6 address used by the server to identify the
          link on which the client is located.</t>
        </list></t>

      <t>The Link Address Option is used by the relay agent to indicate to the
      server the link on which the client is located. The relay agent MUST use
      a link-address value that is equivalent to the value used when relaying
      messages from the client to the server. Two link-address values are said
      to be equivalent if both values are IPv6 addresses that are on-link for
      the network link to which the client is connected.</t>

      <t>To defend against poor implementations that do not correctly evaluate
      equivalence, the relay agent SHOULD use the same value that was sent to
      the DHCPv6 server when relaying messages from the client to the server,
      as in Section 20.1.1 of <xref target="RFC3315"></xref>.</t>
    </section>

    <section anchor="spec" title="Detailed Specification">
      <t></t>

      <section title="Messages Format">
        <t>Two new message type codes are defined:<list style="symbols">
            <t>RECONFIGURE-REQUEST (18)</t>

            <t>RECONFIGURE-REPLY (19)</t>
          </list></t>

        <t>Reconfigure-Request and Reconfigure-Reply use the same format as
        defined in Section 6 of <xref target="RFC3315"></xref>.</t>
      </section>

      <section anchor="validation" title="Messages Validation">
        <t></t>

        <section anchor="reqvalidation" title="Reconfigure-Request">
          <t>Clients MUST silently discard any received Reconfigure-Request
          messages.</t>

          <t>Servers MUST discard any received Reconfigure-Request messages
          that meet any of the following conditions:<list style="symbols">
              <t>the message does not include a Client Identifier Option <xref
              target="RFC3315"></xref>.</t>

              <t>the message does not include a Link Address Option (<xref
              target="lloption"></xref>).</t>

              <t>the message includes a Server Identifier Option <xref
              target="RFC3315"></xref> but the contents of the Server
              Identifier Option do not match the server's identifier.</t>
            </list></t>

          <t></t>
        </section>

        <section title="Reconfigure-Reply">
          <t>Clients and servers MUST silently discard any received
          Reconfigure-Reply messages.</t>

          <t>The relay MUST silently discard any received Reconfigure-Reply
          messages that meet any of the following conditions:<list
              style="symbols">
              <t>the "transaction-id" field in the message does not match the
              value used in the original message.</t>

              <t>the message does not include a Server Identifier Option.</t>

              <t>the message does not include a Status Code Option <xref
              target="RFC3315"></xref>.</t>
            </list></t>
        </section>
      </section>

      <section anchor="retr"
               title="Creation and Transmission of a Reconfigure-Request">
        <t>For any event (e.g., modification of the configuration information)
        that requires the server to issue a Reconfigure message, the relay
        agent determines the client(s) affected by the change and then builds
        a Reconfigure-Request message: the relay agent sets the "msg-type"
        field to RECONFIGURE-REQUEST, generates a transaction ID, and inserts
        it in the "transaction-id" field.</t>

        <t>The relay agent MUST include one or more Client Identifier Options
        <xref target="RFC3315"></xref> and a Link Address Option (<xref
        target="lloption"></xref>) so that the DHCPv6 server can identify the
        corresponding client and the link on which the client is located.</t>

        <t>The relay agent MAY include a Relay Identifier Option <xref
        target="RFC5460"></xref>.</t>

        <t>The relay agent MAY supply the updated configuration in the RSOO
        <xref target="RFC6422"></xref>. The relay agent MAY supply a
        Reconfigure Message Option to indicate which form of Reconfigure to
        use. The relay agent MAY include any option (e.g., Interface
        Identifier <xref target="RFC3315"></xref>) that it might insert when
        relaying a message received from a client.</t>

        <t>When several clients on the same link are affected by a
        configuration change, the relay MUST include several Client Identifier
        Options; each of these options identifies a specific client. If including the
        Client Identifier Options of all impacted clients exceeds the maximum
        message size (see <xref target="rate"></xref>), the relay MUST
        generate several Reconfigure-Request messages required to carry all
        Client Identifier Options. Rate-limit considerations are discussed in
        <xref target="rate"></xref>.</t>

        <t>The relay sets the destination address of the Reconfigure-Request
        message to the IP address it would have sent a Relay-Forward message (see
        Section 20 of <xref target="RFC3315"></xref>).</t>

        <t>In case multiple servers are configured to the relay agent, several
        Reconfigure-Request messages are to be built. The behavior of the
        relay agent to disambiguate responses when multiple servers are
        configured is implementation specific. For example, an implementation
        may generate a distinct "transaction-id" per server while another
        implementation may use the content of the "transaction-id" field and
        the Server Identifier Option to disambiguate the responses.</t>

        <t>The relay transmits Reconfigure-Request messages according to
        Section 14 of <xref target="RFC3315"></xref>, using the following
        parameters:</t>

        <t><figure>
            <artwork><![CDATA[  
  IRT (Initial retransmission time):      1 sec
  MRT (Maximum retransmission time):     10 secs
  MRC (Maximum retransmission count):     5
  MRD (Maximum retransmission duration):  0]]></artwork>
          </figure></t>

        <t>The relay MAY remove clients from the client identifier list in
        subsequent retransmissions, but MUST NOT add clients to the client
        identifier list. This decision is local to the relay (e.g., it may be
        based on observed events such as one or more clients were reconfigured
        on their own).</t>

        <t>The relay may receive Reconfigure encapsulated in Relay-Reply
        before Reconfigure-Reply. The relay SHOULD NOT interpret it as if the
        Reconfigure-Request was successfully handled by the server. The relay
        SHOULD use Reconfigure-Reply, not the Reconfigure message, to
        determine if the request was successful (see the discussion in <xref
        target="solution"></xref>).</t>
      </section>

      <section title="Intermediate Relay Agents Behavior">
        <t>The relay agent MUST be configurable to accept or reject
        Reconfigure-Request messages received from other relay agents. If no
        indication is explicitly configured to the relay, the default behavior
        is to accept Reconfigure-Request messages.</t>

        <t>If the relay is configured not to allow Reconfigure-Request
        messages, the relay MUST silently discard any Reconfigure-Request
        message it receives. If the relay is configured to accept
        Reconfigure-Request messages, these messages are relayed as specified
        in <xref target="RFC3315">Section 20.1.1 of</xref>.</t>
      </section>

      <section anchor="server" title="Server Behavior">
        <t>The server MUST be configurable to accept or reject
        Reconfigure-Request messages. If no indication is explicitly
        configured to the server, the default behavior is to reject
        Reconfigure-Request messages.</t>

        <t>Upon receipt of a valid Reconfigure-Request message from a DHCPv6
        relay agent (see <xref target="validation"></xref>), the server
        determines the client(s) for which a Reconfigure message is to be
        sent.</t>

        <t>The server constructs a Reconfigure-Reply message by setting the
        "msg-type" field to RECONFIGURE-REPLY and copying the transaction ID
        from the Reconfigure-Request message into the "transaction-id" field.
        The server includes its server identifier in a Server Identifier
        Option. The server MUST include a Status Code Option <xref
        target="RFC3315"></xref> indicating whether the request has been successfully processed, failed, or partially failed. <list
            style="symbols">
            <t>If the server fails to process the request, the server MUST set
            the Status Code Option to the appropriate status code (e.g.,
            UnspecFail, NotAllowed, etc.). In particular,<list style="symbols">
                <t>UnspecFail MUST be returned if the Reconfigure-Request message
                is malformed.</t>

                <t>NotAllowed MUST be returned if the server is not configured
                to allow Reconfigure-Request.</t>

                <t>NotConfigured MUST be returned if the server has no record
                of the link <xref target="RFC5007"></xref>.</t>
              </list></t>

            <t>If the Reconfigure-Request is successfully validated, the
            server MUST return a Status Code Option indicating "Success". In
            addition, the server MUST include a list of all the Client
            Identifier Options of the clients to which Reconfigure messages
            will not be sent (e.g., the server has no record of the client or
            the client did not negotiate for Reconfigure support). Note that
            this means that "Success" will be returned even if Reconfigure
            messages will not be sent to any of the clients.</t>
          </list></t>

        <t>If RSOO is supplied, the server might use its content to double
        check whether a Reconfigure is required to be sent to the client. This
        assumes the server stored the content of RSOO it used to generate the
        configuration data sent to requesting clients.</t>

        <t>The server might use the content of the Reconfigure Message Option
        supplied by the relay agent to determine which form of Reconfigure to
        use.</t>

        <t>Then, the server MUST follow the procedure defined in Section 19.1
        of <xref target="RFC3315"></xref> to construct a Reconfigure
        message.</t>

        <t>Rate-limit considerations are discussed in <xref
        target="rate"></xref>.</t>
      </section>

      <section title="Receipt of a Reconfigure-Reply">
        <t>Depending on the status code enclosed in a received
        Reconfigure-Reply message, the relay may decide to terminate the
        request (e.g., NotAllowed, NotConfigured, and Success) or try a
        different corrected Reconfigure-Request (e.g., UnspecFail).</t>

        <t>When multiple servers are configured, the relay should expect to
        receive several Reconfigure-Reply messages. As mentioned in <xref
        target="retr"></xref>, the relay should be able to disambiguate these
        responses and associate them with a given server. The relay agent
        assumes the request is successfully handled for a client if there is
        at least one Reconfigure-Reply message in which the corresponding
        Client Identifier Option does not appear.</t>
      </section>
    </section>

    <section anchor="rate" title="Rate-Limiting Considerations">
      <t>The relay MUST rate-limit Reconfigure-Request messages to be sent to
      the server. The relay MUST be configured with required rate-limit
      parameters. The maximum Reconfigure-Request packet size SHOULD be
      configurable and the default value MUST be 1280 octets.</t>

      <t>The server MUST rate-limit Reconfigure messages triggered by
      Reconfigure-Request messages. The server MUST be configured with
      required rate-limit parameters.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>IANA has assigned the following new DHCPv6 Message types in
      the registry maintained in
      http://www.iana.org/assignments/dhcpv6-parameters:</t>

      <t><list style="empty">
          <t>RECONFIGURE-REQUEST</t>

          <t>RECONFIGURE-REPLY</t>
        </list></t>

      <t>IANA has assigned the following new DHCPv6 Option Codes in
      the registry maintained in
      http://www.iana.org/assignments/dhcpv6-parameters:<list style="empty">
          <t>OPTION_LINK_ADDRESS</t>
        </list></t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>Security considerations elaborated in <xref target="RFC3315"></xref>
      (in particular Section 21.1) and <xref target="RFC6422"></xref> must be
      taken into account. In addition, DHCPv6 servers MAY be configured to
      reject relayed Reconfigure-Request messages or restrict relay chaining
      (see <xref target="RFC5007"></xref> for more discussion about the
      rationale of this recommended behavior). <xref target="server"></xref>
      specifies the error code to return when the server is configured to
      reject Reconfigure-Request messages.</t>

      <t>Relay agents SHOULD implement appropriate means to prevent using
      Reconfigure-Request messages as a denial-of-service attack on the DHCPv6
      servers.</t>

      <t>Because the Reconfigure-Request message provides a mechanism for
      triggering the DHCPv6 Reconfigure message, and the DHCPv6 Reconfigure
      message can raise security threats (e.g., to control the timing of a
      DHCPv6 renewal), the DHCPv6 server MUST have some mechanism for
      determining that the relay agent is a trusted entity. DHCPv6 servers and
      relay agents MUST implement relay message authentication as described in
      Section 21.1 of <xref target="RFC3315"></xref>. DHCPv6 servers MAY also
      implement a control policy based on the content of a received Relay
      Identifier Option <xref target="RFC5460"></xref>. Administrators are
      strongly advised to configure one of these security mechanisms.</t>

      <t>In an environment where the network connecting the relay agent to the
      DHCPv6 server is physically secure and does not contain devices not
      controlled by the server administrator, it may be sufficient to trust
      the Relay Agent Identifier provided by the relay agent. In networks
      where the security of the machines with access to the data path is not
      under the control of the server administrator, IPsec <xref
      target="RFC4301"></xref> is necessary to prevent spoofing of
      Reconfigure-Request messages. DHCPv6 servers MUST silently discard
      Reconfigure-Request messages originating from unknown
relay agents.</t>
</section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Many thanks to R. Maglione, A. Kostur, G. Halwasia, C. Jacquenet, B.
      Leiba, R. Sparks, A. Farrel, B. Claise, J. Jaeggli, and P. Resnick for
      the comments and review.</t>

      <t>Special thanks to T. Lemon, B. Volz, and T. Mrugalski who provided a
      detailed review.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"
?>

      <?rfc include='reference.RFC.6422'?>

      <?rfc include='reference.RFC.3315'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.5007'?>

      <?rfc include='reference.RFC.4301'?>

      <?rfc include='reference.RFC.5176'?>

      <?rfc include='reference.RFC.5460'?>
    </references>
  </back>
</rfc>
