<?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.6.34 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xu-savax-control-05" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.1 -->
  <front>
    <title abbrev="savax-control">Control Plane of Inter-Domain Source Address Validation Architecture</title>
    <seriesInfo name="Internet-Draft" value="draft-xu-savax-control-05"/>
    <author initials="K." surname="Xu" fullname="Ke Xu">
      <organization abbrev="Tsinghua University">Computer Science, Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>xuke@tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="J." surname="Wu" fullname="Jianping Wu">
      <organization abbrev="Tsinghua University">Computer Science, Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>jianping@cernet.edu.cn</email>
      </address>
    </author>
    <author initials="X." surname="Wang" fullname="Xiaoliang Wang">
      <organization abbrev="Tsinghua University">Computer Science, Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>wangxiaoliang0623@foxmail.com</email>
      </address>
    </author>
    <author initials="Y." surname="Guo" fullname="Yangfei Guo">
      <organization abbrev="ZGC Lab">Zhongguancun Laboratory</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>guoyangfei@zgclab.edu.cn</email>
      </address>
    </author>
    <date year="2023" month="May" day="22"/>
    <abstract>
      <?line 62?>

<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 machine to generate consistent tags. When communicating between two end hosts at different ADs of IPv6 network, tags will be added to the packets to identify the authenticity of the IPv6 source address.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/BasilGuo/savax-control"/>.</t>
    </note>
  </front>
  <middle>
    <?line 68?>

<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 are addresses in the trust alliance, however the tag is not added or incorrectly added, 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 address. You could 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">AD</td>
              <td align="left">Address Domain, the unit of a trust alliance, which is an address set consisting of all IPv6 addresses corresponding to an IPv6 address prefix.</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">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">ACS</td>
              <td align="left">AD Control Server, the server that matains state machine with other ACS and distribute information to AER.</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">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">ARI_Rec</td>
              <td align="left">The record with relavent information of an AD or STA.</td>
            </tr>
            <tr>
              <td align="left">API_Rec</td>
              <td align="left">The record of prefix 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">Tag</td>
              <td align="left">The authentic identification of 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 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>The primary address domain is the representative node of the aforementioned sub-trust alliance and is used to establish 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.</li>
          <li>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.</li>
          <li>The ordinary address domain is neither the primary address domain nor the address domain of the boundary address domain.</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 doesnot 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 which 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 as STA-admin (Sub Trust Alliance administrator), and member list of each sub-chain which are 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 of the sub-trustalliance member AD. The prerequisite for the AD to join the sub-trust alliance is to have a certificate issued by the STA-admin firstly. AD's Address Control Server (ACS), which will maintain 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 want 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 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 out 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 alliacne.</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-bits AS number, 2 for 32-bits AS 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 bits 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 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 packet forwards outside the address domain is 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 corresponds 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 bits 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 have 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 <tt>td_max</tt> later, and the beginning of <tt>Tag_(n+1)</tt> validity period should be delayed <tt>td_min</tt> later. The shared time slice and tag validity period corrected according to transmission delay are 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 tag validity period are determined by the destination based on the actual network environment. Therefore, the lifecyle 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>
      <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">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="J. Bi" initials="J." surname="Bi">
            <organization/>
          </author>
          <author fullname="X. Li" initials="X." surname="Li">
            <organization/>
          </author>
          <author fullname="G. Ren" initials="G." surname="Ren">
            <organization/>
          </author>
          <author fullname="K. Xu" initials="K." surname="Xu">
            <organization/>
          </author>
          <author fullname="M. Williams" initials="M." surname="Williams">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="J. Martin" initials="J." role="editor" surname="Martin">
            <organization/>
          </author>
          <author fullname="J. Burbank" initials="J." surname="Burbank">
            <organization/>
          </author>
          <author fullname="W. Kasch" initials="W." surname="Kasch">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="R. Hinden" initials="R." surname="Hinden">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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 312?>

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

-->

</rfc>
