<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.2 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xu-savax-control-06" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="savax-control">Control Plane of Inter-Domain Source Address Validation Architecture</title>
    <seriesInfo name="Internet-Draft" value="draft-xu-savax-control-06"/>
    <author initials="K." surname="Xu" fullname="Ke Xu">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>xuke@tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="J." surname="Wu" fullname="Jianping Wu">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>jianping@cernet.edu.cn</email>
      </address>
    </author>
    <author initials="X." surname="Wang" fullname="Xiaoliang Wang">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>wangxiaoliang0623@foxmail.com</email>
      </address>
    </author>
    <author initials="Y." surname="Guo" fullname="Yangfei Guo">
      <organization>Zhongguancun Laboratory</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>guoyangfei@zgclab.edu.cn</email>
      </address>
    </author>
    <date year="2023" month="November" day="22"/>
    <abstract>
      <?line 55?>

<t>Because the Internet forwards packets according to the IP destination address, packet forwarding typically takes place without inspection of the source address and malicious attacks have been launched using spoofed source addresses. The inter-domain source address validation architecture is an effort to enhance the Internet by using state machines to generate consistent tags. When communicating between two end hosts at different ADs of the IPv6 network, tags will be added to the packets to identify the authenticity of the IPv6 source address.</t>
    </abstract>
  </front>
  <middle>
    <?line 61?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Inter-Domain Source Address Validation (SAVA-X) mechanism establishes a trust alliance among Address Domains (AD), maintains a one-to-one state machine among ADs with AD Control Server (ACS), generates a consistent tag, and deploys the tag to the ADs' border router (AER). The AER of the source AD adds a tag to identify the identity of the AD to the packet originating from one AD and sinking in another AD. The AER of the destination AD verifies the source address by validating the correctness of the tag to determine whether it is a packet with a forged source address.</t>
      <t>In the process of packet forwarding, if the source address and the destination address of this packet both belong to the trust alliance, but the tag is not added or incorrectly added, the AER of the destination AD determines that the source address is forged and directly discards this packet. The destination AD forwards the packet directly for packets whose source address is an address outside the trust alliance.</t>
      <t>This document mainly studies the relevant specifications of the control plane of the inter-domain source address validation architecture mechanism between ADs, which will protect IPv6 networks from being forged source addresses. See <xref target="RFC8200"/> for more details about IPv6. It stipulates the design of the consortium blockchain, the nodes' joining and exiting, the maintenance of trust alliance information based on the consortium blockchain, and the maintenance of the state machine. Its promotion and application can realize the standardization of the control plane in the SAVA-X to facilitate the related equipment developed by different manufacturers and organizations to cooperate to accomplish the inter-domain source address validation jointly.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<section anchor="terminology-and-abbreviation">
        <name>Terminology and Abbreviation</name>
        <table>
          <thead>
            <tr>
              <th align="left">Abbreviation</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ACS</td>
              <td align="left">AD Control Server. The server maintains the state machine with other ACS and distributes information to AER.</td>
            </tr>
            <tr>
              <td align="left">AD</td>
              <td align="left">Address Domain. The unit of a trust alliance. It is an address set consisting of all IPv6 addresses corresponding to an IPv6 address prefix.</td>
            </tr>
            <tr>
              <td align="left">ADID</td>
              <td align="left">The identity of an AD.</td>
            </tr>
            <tr>
              <td align="left">ADID_Rec</td>
              <td align="left">The record of a number of an AD.</td>
            </tr>
            <tr>
              <td align="left">AER</td>
              <td align="left">AD border router, which is placed at the boundary of an AD of STA.</td>
            </tr>
            <tr>
              <td align="left">API_Rec</td>
              <td align="left">The record of the prefix of an AD or STA.</td>
            </tr>
            <tr>
              <td align="left">ARI_Rec</td>
              <td align="left">The record with relevant information of an AD or STA.</td>
            </tr>
            <tr>
              <td align="left">CSR</td>
              <td align="left">Certificate Signing Request, which is used for an AD or STA to join or exit the consortium blockchain.</td>
            </tr>
            <tr>
              <td align="left">SM</td>
              <td align="left">State Machine, which is maintained by a pair of ACS to generate tags.</td>
            </tr>
            <tr>
              <td align="left">STA</td>
              <td align="left">sub-Trust Alliance, parts of TA.</td>
            </tr>
            <tr>
              <td align="left">STA-admin</td>
              <td align="left">STA Administrator, the administrator of STA.</td>
            </tr>
            <tr>
              <td align="left">TA</td>
              <td align="left">Trust Alliance. The IPv6 network that uses the SAVA-X mechanism.</td>
            </tr>
            <tr>
              <td align="left">Tag</td>
              <td align="left">The authentic identification of the source address of a packet.</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="the-design-of-the-consortium-blockchain">
      <name>The design of the Consortium Blockchain</name>
      <t>As discussed in the introduction, consortium blockchain will be used in the SAVA-X mechanism.</t>
      <section anchor="trust-alliance">
        <name>Trust Alliance</name>
        <t>Trust Alliance (TA) is a hierarchical structure. Address domains (AD) are assigned into different sub-trust alliances (STA) according to geographic location, economic relationship, political relationship, social relationship, and military relationship. AD is the minimum unit for trust. The one-to-one maintenance state machine between ADs located in the same layer of sub-trust alliance generates consistent tags and deploys the tags to their AERs. The ADs in each sub-trust alliance elect a master AD node. The master AD node represents the sub-trust alliance and maintains the alliance-level state machine with other master AD nodes to generate alliance-level tags. When communicating across sub-trust alliances, it is necessary to achieve the feature of tag replacement.</t>
        <t>The AD in the SAVA-X must be located in a specific sub-trust alliance. According to its position in the SAVA-X, AD can be divided into three roles: primary address domain, boundary address domain, and ordinary address domain which is neither primary nor boundary address domain.</t>
        <ul spacing="normal">
          <li>
            <t>The primary address domain is the representative node of the aforementioned sub-trust alliance and is used to establish a connection with the primary address domain of other sub-trust alliances. In this way, the relationship between trust alliances finally forms a tree-like relationship, and there will be no direct relationship between address domains under the same branch.</t>
          </li>
          <li>
            <t>The boundary address domain is the address domain located at the boundary of the sub-trust alliance. It sends the packet to other sub-trust alliances or outside the trust alliance.</t>
          </li>
          <li>
            <t>The ordinary address domain is neither the primary address domain nor the address domain of the boundary address domain.</t>
          </li>
        </ul>
        <t>Due to the uncontrollable packet forwarding path, in SAVA-X, a virtual address domain needs to be set up as a non-boundary AD to communicate with the sub-trust alliance outside or receive packets sent from outside the sub-trust alliance to maintain the state machine. The virtual AD is recorded as AD_V (Virtual Address Domain). When a packet from an AD in a sub-trust alliance needs to be sent outside the sub-trust alliance, but there are multiple paths to the destination AD in the sub-trust alliance, the sub-trust alliance may have multiple boundary ADs to reach the destination AD. The sub-trust alliance does not know which boundary AD will be selected during the packet forwarding. Therefore, the primary function of AD_V is to prevent this by specifying the specific tag that should be added to the packet sent to the external address domain of the sub-trust alliance.</t>
        <t>What's more, the tag needs to be verified by the boundary address domain of the sub-trust alliance. Therefore, the boundary AD also needs to receive the tags maintained by the AD and AD_V in the trust alliance. As a tag for communicating data between the non-primary address domain and the external address domain of the sub-trust alliance.</t>
      </section>
      <section anchor="consortium-blockchain">
        <name>Consortium Blockchain</name>
        <t>To simplify the control plane's design and avoid the single-point failure to subvert the SAVA-X, we design the SAVA-X with a decentralized infrastructure that will store the information of the trust alliance.</t>
        <t>The consortium blockchain is composed of the trust alliance management committee chain and several sub-chains. Among them, the management committee chain is composed of several nodes to manage the administrator nodes of each sub-chain. The consortium blockchain records information of the sub-trust alliance administrator node, named STA-admin (Sub Trust Alliance administrator), and the member list of each sub-chain which is packaged and submitted by the STA-admin. Each sub-trust alliance has one STA-admin that is assumed by a specific elected AD in the sub-trust alliance. The AD in the same sub-trust alliance forms a private chain to maintain the information of the members of the sub-trust alliance jointly. The STA-admin in each sub-trust alliance is responsible for managing the joining and exiting of the sub-trust alliance node. The STA-admin of each sub-trust alliance maintains the relationship of the members in each sub-trust alliance through the trust alliance management committee chain.</t>
      </section>
      <section anchor="joining-and-exiting">
        <name>Joining and Exiting</name>
        <section anchor="node-joining">
          <name>Node Joining</name>
          <t>This is the admission of joining the sub-trust alliance member AD. The prerequisite for the AD to join the sub-trust alliance is to have a certificate issued by the STA-admin first. AD's Address Control Server (ACS), which will maintain the state machine with other ACS and distribute alliance information and other information to AER, submits a Certificate Signing Request file to the STA-admin of the sub-trust alliance that it wants to join to request the certificate. The CSR file includes ADID, ACS address information, IPv6 address prefix information, and its public key information. If the file is valid, STA-admin verifies the file, generates a node certificate, packages the AD's information into a block, and updates the list of members of the sub-consortium. STA-admin submits the latest block to the consortium blockchain, and the consortium blockchain updates the list of alliance members of the entire trust alliance.</t>
          <t>When a sub-trust alliance wants to join the trust alliance, STA-admin submits a CSR file to the consortium blockchain, including the member information list in the sub-chain and the information of the STA-admin. It requires offline negotiation and cooperation to apply for joining the consortium blockchain. The consortium blockchain management committee verifies the validity of the request, issues administrator certificates, and updates block information. The STA-admins in the current trust alliance jointly maintain a management committee chain, manage the administrator certificates of each sub-trust alliance, and use the certificates for encrypted communication. STA-admin submits the list of members of the sub-trust alliance to the consortium blockchain and joins the entire trust alliance.</t>
          <t>After a node joins the consortium blockchain, there is an Effecting Time and an Expiration Time in the CSR file. STA-admin will assign the sub-trust alliance member with an ADID number if it does not contain the ADID information in the submitted information. The consortium blockchain will give the permitted sub-trust alliance a sub-trust alliance number if the information submitted by the sub-trust alliance does not have the sub-trust alliance number. If there is a conflict between the submitted information and the returned information, the returned ADID or sub-trust alliance number will be selected.</t>
        </section>
        <section anchor="node-exiting">
          <name>Node Exiting</name>
          <t>The member node needs to submit the CSR file again to delete its relevant information. Its STA-admin decides whether to allow it to exit or not. After passing the validation, nodes of the sub-blockchain delete the relevant member information. It also needs to submit a CSR file for the exit of the sub-trust alliance node, which the alliance management committee decides whether to allow it. After validating the receiving exit request, other sub-trust alliance administrator nodes need to delete their maintenance-related sub-alliance node information.</t>
        </section>
      </section>
    </section>
    <section anchor="alliance-information-and-state-machine-maintenance-based-on-the-consortium-blockchain">
      <name>Alliance Information and State Machine Maintenance based on the Consortium Blockchain</name>
      <t>On the AER of the destination AD, to validate the tag, it is first necessary to find out the sub-trust alliance number from the source address of the arriving packet and find its corresponding source Address Domain Identity (ADID) number. Then find the currently valid tag according to the ADID number. The generation of the tag requires the maintenance of the state machine between the ACSes. In SAVA-X, member ADs need to inform each other of their sub-trust alliance number, ADID number, AD role, ACS address, and IPv6 address prefix. The members interact with each other with the state machine information according to the hierarchical division structure after obtaining the basic information of the other members. And use the tags generated by the state machine during the packet forwarding after the specified time to add and validate the tags.</t>
      <t>The relevant information needs to be stored in the sub-chains, where the node is located after joining the consortium blockchain. The information stored on the consortium blockchain needs the content specified in the following three message formats, namely ADID_Rec, ARI_Rec, and API_Rec. We give the packet format required by SAVA-X in the control plane as follows.</t>
      <section anchor="address-domain-identity-record">
        <name>Address Domain Identity Record</name>
        <t>Address Domain Identity Record (ADID_Rec) is used to identify an address domain uniquely in the trust alliance.</t>
        <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
 +-+-+-+-+-+-+-+-+
 |   ADID Type   |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~              Address Domain Identity (ADID)                   ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <dl>
          <dt>ADID Type:</dt>
          <dd>
            <t>8-bit Type of ADID, 1 for 16-bit AS number, 2 for 32-bit AS number, 3 for 32-bit AD number, and other unassigned.</t>
          </dd>
          <dt>ADID:</dt>
          <dd>
            <t>The 16-bit or 32-bit ADID number. Its value can be the AS number or the number assigned by the consortium blockchain, and the specific length is determined by the ADID Type field. When each bit of ADID is 1, it represents that the AER requests the information of all members from ACS.</t>
          </dd>
        </dl>
      </section>
      <section anchor="ad-registration-information-record">
        <name>AD Registration Information Record</name>
        <t>AD Registration Information Record (ARI_Rec) is the registration information record of AD, which is used to record the necessary information required to register a specific member AD. The ACS and AD establish connections.</t>
        <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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     Action    |     AD Type   |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~                            ADID_Rec                           ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                          ACS Address                          |
 |                                                               |
 |                                                               |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         Effecting Time                        |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <dl>
          <dt>Action:</dt>
          <dd>
            <t>8-bit instruction to add (ADD=1) or delete (DEL=2) this record. Others are unassigned.</t>
          </dd>
          <dt>AD Type:</dt>
          <dd>
            <t>8-bit unsigned number indicating the role of AD. 0 for ordinary AD, 1 for primary AD, and 2 for boundary AD. Others are unassigned.</t>
          </dd>
          <dt>ADID_Rec:</dt>
          <dd>
            <t>Reference the ADID_Rec packet.</t>
          </dd>
          <dt>ACS Address:</dt>
          <dd>
            <t>128-bit the IPv6 address of ACS.</t>
          </dd>
          <dt>Effecting Time:</dt>
          <dd>
            <t>64-bit time specifies when this record is applied. It is recommended to use the 64-bit struct timeval format for the effecting time of the execution of this record. If all bits of this field are 0 or earlier than the current time, it means that it takes effect immediately.</t>
          </dd>
        </dl>
        <t>The role of the address domain is essential, and each address domain needs to be assigned a corresponding role according to its position in the sub-trust alliance. A sub-trust alliance needs to set one (and only one) primary address domain. It serves as the representative of the sub-trust alliance. The tag generated by its ACS and the ACSes of other sub-trust alliances' primary address domain maintains the state machine to generate the tag of the sub-trust alliance, and it issues the tag to the boundary address domain of the sub-trust alliance. A specific recommendation of a consensus algorithm could generate the primary address domain or be directly specified by the operator of the address domain with offline negotiation. The boundary address domain means that packets forwards outside the address domain are no longer in the current sub-trust alliance. The primary address domain can be a boundary address domain or not. The tag replacement may occur in the boundary address domain. The ordinary address domain is neither a primary address domain nor a boundary address domain.</t>
      </section>
      <section anchor="ad-prefix-information-record">
        <name>AD Prefix Information Record</name>
        <t>AD Prefix Information Record (API_Rec) is the prefix information corresponding to the prefix of a specific AD. An AD may have more than one prefix, so registration information and prefix information records must be separated.</t>
        <figure anchor="fig-api-rec">
          <name>Format of AD Prefix Information Record</name>
          <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Action    |   Alliance    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                            ADID_Rec                           ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         IPv6 Address                          |
|                                                               |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Effecting Time                        |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <dl>
          <dt>Action:</dt>
          <dd>
            <t>8-bit instruction to add (ADD=1) or delete (DEL=2) this record. Others are unassigned.</t>
          </dd>
          <dt>Alliance:</dt>
          <dd>
            <t>8-bit the sub-trust alliance number.</t>
          </dd>
          <dt>ADID_Rec:</dt>
          <dd>
            <t>Reference the ADID_Rec packet.</t>
          </dd>
          <dt>Prefix Length:</dt>
          <dd>
            <t>8-bit the length of the IPv6 prefix.</t>
          </dd>
          <dt>IPv6 Address:</dt>
          <dd>
            <t>128-bit indicates a certain address prefix operated by the corresponding member AD using together with Prefix Length.</t>
          </dd>
          <dt>Effecting Time:</dt>
          <dd>
            <t>64-bit time specifies when this record is applied. It is recommended to use the 64-bit struct timeval format for the effecting time of the execution of this record. If all bits of this field are 0 or earlier than the current  time, it means that it takes effect immediately.</t>
          </dd>
        </dl>
        <t>ARI_Rec and API_Rec are required to store the AD information in the consortium blockchain and send it to all AERs of their AD with the communication protocol between ACS and AER.</t>
      </section>
    </section>
    <section anchor="time-synchronization">
      <name>Time Synchronization</name>
      <t>Due to the time error between the border routers of the member ADs, to ensure the correct operation of the tag validation, it is necessary to make each device including ACS and AER in the trust alliance calibrate to the same clock reference. The NTP protocol could achieve this goal. You could see <xref target="RFC5905"/> for more details.</t>
      <t>Although the NTP protocol can guarantee the time synchronization between AERs, there may inevitably still be a slight time difference between AERs and ACSes. Therefore, each AER sets a shared time slice. With this time slice, both the expired tag and the new tag are considered valid. That is, more than one tag is valid for a while. The destination AD needs to validate all valid tags belonging to a specific source AD. The tag is correct if one of the tags is validated.</t>
      <t>Assuming that the maximum time difference between AER and ACS is <tt>te</tt>, we set a shared time slice with a length of <tt>2te</tt> between two adjacent tags. In this shared time slice, the two tags before and after are valid. The validity period of the tag with the shared time slice is shown below, see <xref target="figure1"/>.</t>
      <figure anchor="figure1">
        <name>Validity period of tag with the shared time slice</name>
        <artwork><![CDATA[
     +----------------------+
     |      Tag_(n-1)       |
     +----------------------+
                         +----------------------+
                         |         Tag_n        |
                         +----------------------+
                         |  |
                         |  |
                         |  |
     --------------------|--|------------------------------> Time Line
                         2te
]]></artwork>
      </figure>
      <t>In addition to the time difference, we should also take into account the packet transmission delay in the network. Set the minimum delay to <tt>td_min</tt> and the maximum delay to <tt>td_max</tt>. The expiration of <tt>Tag_n</tt> should be extended to <tt>td_max</tt> later, and the beginning of <tt>Tag_(n+1)</tt> validity period should be delayed to <tt>td_min</tt> later. The shared time slice and tag validity period corrected according to transmission delay is shown as follows, see <xref target="figure2"/>.</t>
      <figure anchor="figure2">
        <name>Validity period of tag with the shared time slice after modified</name>
        <artwork><![CDATA[
+----------------------+
|      Tag_(n-1)       |
+----------------------+
                     +----------------------+
                     |        Tag_n         |
                     +----------------------+
                     | |
                     | |
---------------------|-|------------------------------> Time Line
                     2te-td_min+td_max
]]></artwork>
      </figure>
      <t>The expiration of the <tt>Tag_n</tt> is extended to <tt>te+td_max</tt>, and the beginning of the <tt>Tag_(n+1)</tt> is extended to <tt>te-td_min</tt>.  The parameters such as <tt>te</tt>, <tt>td_min</tt>, <tt>td_max</tt>, the period of the shared time slice, and the tag validity period are determined by the destination based on the actual network environment. Therefore, the lifecycle of a tag is as: <tt>lifecycle = Transition Interval + 2te - td_min + td_max</tt>.</t>
    </section>
    <section anchor="security-consideration">
      <name>Security Consideration</name>
      <t>TBD.</t>
    </section>
    <section anchor="iana-consideration">
      <name>IANA Consideration</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC5210">
        <front>
          <title>A Source Address Validation Architecture (SAVA) Testbed and Deployment Experience</title>
          <author fullname="J. Wu" initials="J." surname="Wu"/>
          <author fullname="J. Bi" initials="J." surname="Bi"/>
          <author fullname="X. Li" initials="X." surname="Li"/>
          <author fullname="G. Ren" initials="G." surname="Ren"/>
          <author fullname="K. Xu" initials="K." surname="Xu"/>
          <author fullname="M. Williams" initials="M." surname="Williams"/>
          <date month="June" year="2008"/>
          <abstract>
            <t>Because the Internet forwards packets according to the IP destination address, packet forwarding typically takes place without inspection of the source address and malicious attacks have been launched using spoofed source addresses. In an effort to enhance the Internet with IP source address validation, a prototype implementation of the IP Source Address Validation Architecture (SAVA) was created and an evaluation was conducted on an IPv6 network. This document reports on the prototype implementation and the test results, as well as the lessons and insights gained from experimentation. This memo defines an Experimental Protocol for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5210"/>
        <seriesInfo name="DOI" value="10.17487/RFC5210"/>
      </reference>
      <reference anchor="RFC5905">
        <front>
          <title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
          <author fullname="D. Mills" initials="D." surname="Mills"/>
          <author fullname="J. Martin" initials="J." role="editor" surname="Martin"/>
          <author fullname="J. Burbank" initials="J." surname="Burbank"/>
          <author fullname="W. Kasch" initials="W." surname="Kasch"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet. This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family. NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs. It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required. It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5905"/>
        <seriesInfo name="DOI" value="10.17487/RFC5905"/>
      </reference>
      <reference anchor="RFC8200">
        <front>
          <title>Internet Protocol, Version 6 (IPv6) Specification</title>
          <author fullname="S. Deering" initials="S." surname="Deering"/>
          <author fullname="R. Hinden" initials="R." surname="Hinden"/>
          <date month="July" year="2017"/>
          <abstract>
            <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="86"/>
        <seriesInfo name="RFC" value="8200"/>
        <seriesInfo name="DOI" value="10.17487/RFC8200"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 305?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
q0u2evb87Dms2d2pJsn/Aac9uX0xWQAA

-->

</rfc>
