<?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.42 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-li-idr-bgp-failure-propagation-convergence-02" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="BGP Failure Propagation">BGP Failure Propagation (BGP-FP) for Enhancing Control-Plane Convergence</title>
    <seriesInfo name="Internet-Draft" value="draft-li-idr-bgp-failure-propagation-convergence-02"/>
    <author initials="Y." surname="Li" fullname="Yuhang Li">
      <organization>Tsinghua University</organization>
      <address>
        <email>yh-li24@mails.tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="Y." surname="Li" fullname="Yahui Li">
      <organization>Tsinghua University</organization>
      <address>
        <email>liyahui@tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="X." surname="Yin" fullname="Xia Yin">
      <organization>Tsinghua University</organization>
      <address>
        <email>yxia@tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="H." surname="Zhang" fullname="Han Zhang">
      <organization>Tsinghua University</organization>
      <address>
        <email>zhhan@tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="X." surname="Shi" fullname="Xingang Shi">
      <organization>Tsinghua University</organization>
      <address>
        <email>shixg@cernet.edu.cn</email>
      </address>
    </author>
    <date year="2026" month="August" day="27"/>
    <area>Routing</area>
    <workgroup>IDR</workgroup>
    <keyword>BGP</keyword>
    <keyword>convergence</keyword>
    <keyword>failure propagation</keyword>
    <keyword>path exploration</keyword>
    <abstract>
      <?line 67?>

<t>This document specifies BGP Failure Propagation (BGP-FP), an infrastructure and protocol that improves inter-domain routing convergence by accelerating the removal of stale (invalid) routes. BGP-FP uses (1) an Agent deployed per Autonomous System (AS) to detect inter-AS reachability changes and to configure local routers, (2) a logically centralized Repository to store and selectively forward AS reachability state, and (3) BGP Large Communities as a "route freshness" marker.  Agents validate and apply Repository updates to filter routes that traverse AS pairs whose reachability has been lost or that violate the originating AS's forwarding intent, reducing route-flap propagation in the control plane.</t>
      <t>This document clarifies that "AS reachability" refers to the reachability between two ASes, not to the state of individual physical or logical links within an AS.  If multiple links exist between two ASes, the failure of a single link that does not break overall AS-to-AS reachability does not trigger the BGP-FP mechanism.</t>
      <t>A new Repository deployment model is introduced, suggesting that the Repository be operated by a newly established organization composed of Tier-1 ASes and Regional Internet Registries (RIRs), using a distributed deployment with Byzantine fault-tolerant consensus and rotating leadership.</t>
    </abstract>
  </front>
  <middle>
    <?line 75?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>BGP-4 <xref target="RFC4271"/> is a path-vector inter-domain routing protocol.   Internet operators have long observed BGP instability and route-flap   propagation <xref target="RFC2439"/>.  A key contributor is that routes that have   become invalid (e.g., because the reachability between two ASes is   lost) can persist and propagate until withdrawals and path   exploration complete.</t>
      <t>BGP-FP addresses this by disseminating authenticated AS reachability changes and by marking routes with a per-AS freshness indicator.   Upon learning that reachability between AS X and AS Y has been lost,   downstream ASes can proactively reject stale routes whose AS_PATH   traverses that AS pair, reducing control-plane churn and improving   eBGP convergence.    This document focuses on eBGP control-plane convergence.  Terminology   related to convergence benchmarking is aligned with <xref target="RFC4098"/>.</t>
      <t>"AS reachability" in this document refers to the ability of one AS to  reach another AS via at least one eBGP session, not to the state of   individual links or routers inside an AS.  If multiple parallel   links or sessions exist between two ASes, the failure of a single   component that does not break the overall AS-to-AS reachability does not trigger the BGP-FP mechanisms.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>eBGP: As defined in <xref target="RFC4271"/>.</t>
        <t>Agent: A server deployed per AS that (1) receives router logs, (2) reads local routing state (e.g., RIB/Adj-RIB-In/Adj-RIB-Out), (3) communicates with a Repository using BGP-FP messages, and (4) configures local routers’ import/export policies to apply BGP-FP.</t>
        <t>Repository: A network service with a well-known reachability method (discovery is out of scope) that stores per-AS BGP-FP state and forwards updates on-demand to subscribed ASes.</t>
        <t>AS Reachability: The property that two ASes have at least one usable  eBGP session and forwarding relationship between them.  It is a   pairwise AS-level property, not a link-level property.</t>
        <t>AS Reachability State: The status of reachability between a pair of   ASes, represented as a tuple (Local ASN, Peer ASN, Scope, Status).   Scope and Status are defined in <xref target="ARS"/>.</t>
        <t>Invalid (Stale) BGP Route: A route whose AS_PATH includes an AS pair  whose reachability has been lost, or whose propagation violates a   policy/prefix condition expressed by the originating AS.  For   example, if the AS reachability between AS X and AS Y is down, but a   route's AS_PATH still contains "... X Y ...", the route is   considered stale and is expected to be withdrawn or replaced.</t>
        <t>Local AS: The AS in which a given Agent is deployed.</t>
        <t>Subscribed ASes: The set of ASNs that appear in AS_PATH attributes of routes in the Local AS routing state (e.g., Loc-RIB). The Local AS subscribes to BGP-FP updates originating from those ASes.</t>
        <t>NOTE: The terms "route", "BGP route", "AS_PATH", "BGP Neighbor", "BGP Peer", "MRAI", and "RIB" are used consistent with <xref target="RFC4098"/> where applicable.</t>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</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 BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="architecture-and-operational-overview">
      <name>Architecture and Operational Overview</name>
      <section anchor="components">
        <name>Components</name>
        <t>BGP-FP consists of:</t>
        <ul spacing="normal">
          <li>
            <t>Agent (per AS): detects local AS reachability changes, maintains a  per-AS freshness counter, reports state to the Repository, and  configures routers to (a) attach freshness markers to outbound  routes and (b) filter stale routes upon receiving Repository  updates.</t>
          </li>
          <li>
            <t>Repository: stores per-AS reported AS reachability state and   forwards BGP-FP updates to ASes that have subscribed to the source  AS.  The Repository is logically centralized but can be  physically distributed.</t>
          </li>
        </ul>
        <figure>
          <name>The Architecture of BGP-FP</name>
          <artwork type="ascii-art"><![CDATA[
   +------------------------------+
   | Repository (logically one,   |
   | physically distributed)      |
   +---------------+--------------+
                   ^
                   |  BGP-FP over TCP
                   v
   +---------------+--------------+
   | Agent (per AS)               |
   | - receives router logs       |
   | - reads routing state        |
   | - configures import/export   |
   +---------------+--------------+
                   ^
                   |  logs / RIB / config channels
                   v
          +--------+--------+     
          | BGP Routers     |    
          | (border routers |
          |  in the AS)     |  
          +-----------------+   
]]></artwork>
        </figure>
      </section>
      <section anchor="ARS">
        <name>Information Model: AS Reachability State Entries</name>
        <t>An Agent reports "AS Reachability State" information as a list of   entries.  Each entry is a UTF-8 string formatted as:</t>
        <t>"peer-asn ":" scope ":" status"</t>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>peer-asn: The 4-octet ASN of the eBGP neighbor.</t>
          </li>
          <li>
            <t>scope: Either "*" or a prefix/identifier that indicates the affected traffic scope. This document uses "prefix" in the broad sense and permits "*" to indicate all prefixes.</t>
          </li>
          <li>
            <t>status: "Established" or "Failure".</t>
          </li>
        </ul>
        <t>The following classes are distinguished:</t>
        <ul spacing="normal">
          <li>
            <t>(1) Policy failure (prefix scoped to a peer): "PeerASN:Prefix:Failure" . The Local AS indicates that it will not forward the indicated prefix toward PeerASN.</t>
          </li>
          <li>
            <t>(2) AS reachability failure (all prefixes to a peer): "PeerASN:*:Failure" . The Local AS indicates that its overall reachability to PeerASN is lost (i.e., no usable eBGP session or forwarding relationship  exists for any prefixes).</t>
          </li>
          <li>
            <t>(3) Prefix withdrawal/denial (all peers for a prefix): "*:Prefix:Failure". The Local AS indicates that it will not accept or propagate the indicated prefix (or has withdrawn it).</t>
          </li>
        </ul>
        <t>If multiple parallel links or sessions exist between two ASes, the   failure of a single link or session that does not break overall   AS-to-AS reachability <bcp14>MUST NOT</bcp14> be reported as a "PeerASN:*:Failure"   entry.  Only when the Local AS determines that it has no usable path   to PeerASN for any prefixes does it report such a failure.</t>
      </section>
      <section anchor="route-freshness-marking-with-bgp-large-communities">
        <name>Route Freshness Marking with BGP Large Communities</name>
        <t>BGP-FP uses the BGP Large Communities attribute <xref target="RFC8092"/>. Operational guidance for organizing Large Communities is discussed in <xref target="RFC8195"/>.</t>
        <t>Each AS maintains a monotonically increasing 32-bit Batch Counter. The Agent configures routers to attach a Large Community of the form.</t>
        <table>
          <name>Field Mapping</name>
          <thead>
            <tr>
              <th align="left">RFC8092</th>
              <th align="left">this document</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Global Administrator</td>
              <td align="left">Source ASN</td>
            </tr>
            <tr>
              <td align="left">Local Data Part 1</td>
              <td align="left">Function</td>
            </tr>
            <tr>
              <td align="left">Local Data Part 2</td>
              <td align="left">Batch Counter</td>
            </tr>
          </tbody>
        </table>
        <t>The table above shows a mapping table between the fields in BGP Large Communities <xref target="RFC8092"/> and this document.</t>
        <ul spacing="normal">
          <li>
            <t>Source ASN is the AS performing the marking (the Local AS).</t>
          </li>
          <li>
            <t>Function is an operator-chosen 32-bit value; this document uses 1234 as a default example.</t>
          </li>
          <li>
            <t>Batch Counter is the current freshness value for the Local AS.</t>
          </li>
        </ul>
        <t>A route <bcp14>MAY</bcp14> carry multiple Large Communities. BGP-FP requires that routers preserve existing Large Communities and that each AS that deploys BGP-FP adds (at least) its own freshness community.</t>
      </section>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>BGP-FP defines a simple message protocol carried over TCP <xref target="RFC793"/> between Agents and the Repository. The protocol <bcp14>MUST</bcp14> support 4-octet ASNs as specified in <xref target="RFC6793"/>.
High-level operation:</t>
      <ul spacing="normal">
        <li>
          <t>Subscription: Each Agent computes its Subscribed ASes from local  routing state and reports subscription deltas to the Repository.</t>
        </li>
        <li>
          <t>Failure reporting: Upon local events (loss of AS reachability, policy change, prefix withdrawal/restore), an Agent increments its  Batch Counter and reports updated AS Reachability State entries  to the Repository</t>
        </li>
        <li>
          <t>On-demand forwarding: The Repository forwards Source-AS updates only to Agents whose Local AS has subscribed to that Source ASN.</t>
        </li>
        <li>
          <t>Filtering: Receiving Agents validate updates and install import  policy rules to reject stale routes that traverse AS pairs with  lost reachability or that violate reported policy/prefix  constraints.</t>
        </li>
      </ul>
    </section>
    <section anchor="bgp-fp-message-encoding">
      <name>BGP-FP Message Encoding</name>
      <t>All multi-octet fields are in network byte order (big-endian).</t>
      <section anchor="common-header">
        <name>Common Header</name>
        <t>Each BGP-FP message begins with the following header:</t>
        <artwork type="ascii-art"><![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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Message Length                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |                    Reserved                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Source ASN                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                     Attributes (TLVs)                         ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <ul spacing="normal">
          <li>
            <t>Message Length (32 bits): Number of octets following this field (i.e., header remainder and TLVs). Implementations <bcp14>MUST</bcp14> reject messages whose length exceeds the remaining TCP segment stream availability.</t>
          </li>
          <li>
            <t>Type (8 bits): Message type (Agent-to-Repository in <xref target="A2R"/>; Repository-to-Agent in <xref target="R2A"/>).</t>
          </li>
          <li>
            <t>Reserved (24 bits): Reserved for future use. The sender <bcp14>MUST</bcp14> set these bits to zero. The receiver <bcp14>MUST</bcp14> ignore them.</t>
          </li>
          <li>
            <t>Source ASN (32 bits): The originating AS for the state carried in the message.</t>
          </li>
        </ul>
      </section>
      <section anchor="attributes-tlv">
        <name>Attributes (TLV)</name>
        <t>Following the common header is a sequence of zero or more attributes, each encoded as a TLV:</t>
        <artwork type="ascii-art"><![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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Attr Type   |            Attr Length        |   (value...)  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Attr Value (variable)                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <ul spacing="normal">
          <li>
            <t>Attr Type (8 bits): Attribute identifier.</t>
          </li>
          <li>
            <t>Attr Length (16 bits): Length in octets of Attr Value.</t>
          </li>
          <li>
            <t>Attr Value (variable): Attribute content. Unknown Attr Type values <bcp14>MUST</bcp14> be ignored (skipped using Attr Length).</t>
          </li>
        </ul>
      </section>
      <section anchor="defined-attributes">
        <name>Defined Attributes</name>
        <t>This document defines the following attribute types:</t>
        <ul spacing="normal">
          <li>
            <t>0x01  Batch Counter</t>
          </li>
          <li>
            <t>0x02  Function</t>
          </li>
          <li>
            <t>0x03  Merkle Root</t>
          </li>
          <li>
            <t>0x04  Signature</t>
          </li>
          <li>
            <t>0x05  AS Reachability State List</t>
          </li>
          <li>
            <t>0x06  Subscribed ASes</t>
          </li>
          <li>
            <t>0x07  Merkle Proof</t>
          </li>
        </ul>
        <section anchor="batch-counter-0x01">
          <name>Batch Counter (0x01)</name>
          <t>A 32-bit unsigned integer. Each Agent maintains its own counter. When an Agent reports any change affecting AS reachability  (including loss of overall AS-to-AS reachability, policy changes, and prefix events), it <bcp14>MUST</bcp14> increment the counter by 1.</t>
        </section>
        <section anchor="function-0x02">
          <name>Function (0x02)</name>
          <t>A 32-bit unsigned integer chosen by operator policy. The default example value is 1234.</t>
        </section>
        <section anchor="merkle-root-0x03">
          <name>Merkle Root (0x03)</name>
          <t>A 32-octet value computed using SHA-256 over the current dataset of  (a) AS Reachability State List and (b) Subscribed ASes.  The Merkle tree and inclusion proof model is aligned with the Merkle tree approach used in Certificate Transparency <xref target="RFC9162"/>. The exact leaf canonicalization is to be specified in a future revision.</t>
        </section>
        <section anchor="signature-0x04">
          <name>Signature (0x04)</name>
          <t>A digital signature computed by the Source ASN's private key over the Merkle Root value. The signature algorithm and encoding follow the DigitallySigned conventions used in <xref target="RFC9162"/>, unless otherwise   profiled by an implementation profile.  The Signature attribute <bcp14>MUST   NOT</bcp14> appear unless a Merkle Root attribute is present in the same message.</t>
        </section>
        <section anchor="as-reachability-state-list-0x05">
          <name>AS Reachability State List (0x05)</name>
          <t>Encodes a list of AS reachability state entries:</t>
          <ul spacing="normal">
            <li>
              <t>Entry Count (16 bits), followed by Entry Count entries: Entry Length (16 bits) + Entry (UTF-8 string)</t>
            </li>
            <li>
              <t>Each Entry string <bcp14>MUST</bcp14> follow this ABNF:</t>
            </li>
          </ul>
          <sourcecode type="abnf"><![CDATA[
as-reachability-entry = peer-asn ":" scope ":" status
peer-asn = 1*10DIGIT  ; decimal ASN, MUST fit in 32 bits
scope    = "*" / prefix
status   = "Established" / "Failure"

The "prefix" syntax is deployment-specific; implementations SHOULD use CIDR textual forms.
]]></sourcecode>
          <t>ABNF is specified per <xref target="RFC5234"/>.</t>
        </section>
        <section anchor="subscribed-ases-0x06">
          <name>Subscribed ASes (0x06)</name>
          <t>Carries two ASN lists:</t>
          <ul spacing="normal">
            <li>
              <t>Add List: ASNs newly subscribed</t>
            </li>
            <li>
              <t>Remove List: ASNs unsubscribed</t>
            </li>
          </ul>
          <t>Encoding:</t>
          <ul spacing="normal">
            <li>
              <t>Add Count (16 bits), followed by Add Count ASNs (each 32 bits)</t>
            </li>
            <li>
              <t>Remove Count (16 bits), followed by Remove Count ASNs (each 32 bits)</t>
            </li>
          </ul>
          <t>For an INIT message, Remove Count <bcp14>MUST</bcp14> be zero.</t>
          <t>For a Update message, Add List <bcp14>SHOULD</bcp14> be the set of all ASNs appearing in AS_PATH attributes of BGP routes in the Local AS routing state.</t>
        </section>
        <section anchor="merkle-proof-0x07">
          <name>Merkle Proof (0x07)</name>
          <t>Provides hashes necessary to verify inclusion of disseminated data, aligned with <xref target="RFC9162"/>. Encoding:</t>
          <ul spacing="normal">
            <li>
              <t>Proof Count (16 bits), followed by Proof Count tuples</t>
            </li>
            <li>
              <t>Each tuple: ASN (32 bits) + Hash (32 octets)</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="A2R">
      <name>Agent-to-Repository Protocol</name>
      <section anchor="message-types">
        <name>Message Types</name>
        <t>Agent messages use the Type field as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Type = 0  KEEPALIVE Message</t>
          </li>
          <li>
            <t>Type = 1  INIT Message</t>
          </li>
          <li>
            <t>Type = 2  UPDATE Message</t>
          </li>
        </ul>
        <t>INIT is sent when an Agent is first deployed and informs the Repository
that the Local AS participates in BGP-FP. INIT conveys a full snapshot.
UPDATE conveys incremental changes after a successful INIT.</t>
      </section>
      <section anchor="mandatoryoptional-attributes">
        <name>Mandatory/Optional Attributes</name>
        <t>For Agent messages:</t>
        <ul spacing="normal">
          <li>
            <t>KEEPALIVE (Type=0): no attributes.</t>
          </li>
          <li>
            <t>INIT (Type=1):
   <bcp14>MUST</bcp14> include:  Batch Counter (0x01), Function (0x02), Merkle Root (0x03), Signature (0x04)
   <bcp14>MAY</bcp14> include:   AS Reachability State List (0x05), Subscribed ASes (0x06)</t>
          </li>
          <li>
            <t>UPDATE (Type=2):
   <bcp14>MUST</bcp14> include:  Batch Counter (0x01), Merkle Root (0x03), Signature (0x04)
   <bcp14>MAY</bcp14> include:   Function (0x02),AS Reachability State List (0x05), Subscribed ASes (0x06)</t>
          </li>
        </ul>
      </section>
      <section anchor="agent-procedures">
        <name>Agent Procedures</name>
        <t>Initialization:</t>
        <ul spacing="normal">
          <li>
            <t>Set Batch Counter to 0.</t>
          </li>
          <li>
            <t>Choose Function (default example: 1234).</t>
          </li>
          <li>
            <t>Collect current AS Reachability State from logs.</t>
          </li>
          <li>
            <t>Collect Subscribed ASes from routing state.</t>
          </li>
          <li>
            <t>Configure outbound marking (<xref target="OTM"/>).</t>
          </li>
          <li>
            <t>Send INIT with required attributes.</t>
          </li>
        </ul>
        <t>Subscription change:</t>
        <ul spacing="normal">
          <li>
            <t>Compute Add/Remove deltas.</t>
          </li>
          <li>
            <t>Batch Counter <bcp14>SHOULD NOT</bcp14> change for subscription-only updates.</t>
          </li>
          <li>
            <t>Send UPDATE carrying Subscribed ASes.</t>
          </li>
        </ul>
        <t>AS Reachability/policy/prefix events:</t>
        <ul spacing="normal">
          <li>
            <t>Upon detecting a failure or restoration, Agent <bcp14>MUST</bcp14> increment the Batch Counter by 1 and <bcp14>MUST</bcp14> refresh outbound marking.</t>
          </li>
          <li>
            <t>Send UPDATE carrying affected AS Reachability State List entries.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="R2A">
      <name>Repository-to-Agent Protocol</name>
      <section anchor="message-types-1">
        <name>Message Types</name>
        <t>Repository messages use the Type field as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Type = 0  KEEPALIVE</t>
          </li>
          <li>
            <t>Type = 1  UPDATE</t>
          </li>
        </ul>
        <t>A Repository UPDATE broadcasts the BGP-FP state of a given Source ASN to ASes that have subscribed to that Source ASN.</t>
      </section>
      <section anchor="mandatoryoptional-attributes-1">
        <name>Mandatory/Optional Attributes</name>
        <t>For Repository messages:</t>
        <t>KEEPALIVE (Type=0): no attributes.</t>
        <t>UPDATE (Type=1):
     <bcp14>MUST</bcp14> include:  Batch Counter (0x01), Function (0x02), Merkle Root (0x03), Signature (0x04), Merkle Proof (0x07)
     <bcp14>MAY</bcp14> include:  AS Reachability State List (0x05), Subscribed ASes (0x06)</t>
        <t>The Repository <bcp14>MUST</bcp14> forward the Source ASN’s Signature without modification.</t>
      </section>
      <section anchor="repository-procedures">
        <name>Repository Procedures</name>
        <t>Validation:
Repository <bcp14>SHOULD</bcp14> validate Agent messages by verifying the signature over the Merkle Root and by recomputing the Merkle Root from the carried dataset.</t>
        <t>Storage and maintenance:
Maintain per-Source-ASN state: R_BatchCounter, R_Function, R_MerkleRoot, R_Signature, R_AS_Reachability State, and subscription mappings.</t>
        <t>On-demand forwarding:
Forward Source-ASN updates only to Local ASes that have subscribed to that Source ASN. Repository UPDATE messages <bcp14>MUST</bcp14> include a Merkle Proof sufficient for the receiver to validate inclusion of the forwarded elements.</t>
      </section>
    </section>
    <section anchor="router-policy-behavior">
      <name>Router Policy Behavior</name>
      <section anchor="INM">
        <name>Inbound Filtering Rule</name>
        <t>Upon receiving a Repository UPDATE, an Agent <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Obtain the Source ASN public key via the configured PKI mechanism (in <xref target="Privacy"/>), verify Signature over Merkle Root, and verify the Merkle Proof.</t>
          </li>
          <li>
            <t>For each failure entry affecting (Source ASN, Peer ASN, scope), install an import policy rule on routers such that a route r is rejected if ALL of the following hold:</t>
          </li>
        </ol>
        <ul spacing="normal">
          <li>
            <t>r’s AS_PATH contains the adjacent pair "... SourceASN PeerASN ..." (i.e., r traverses the AS pair whose reachability is lost), OR the failure scope indicates a prefix withdrawal that matches r.</t>
          </li>
          <li>
            <t>r contains a BGP Large Community whose Global Administrator is SourceASN and whose Local Data Part 1 matches Function.</t>
          </li>
          <li>
            <t>Let r_bc be Local Data Part 2 of that community. The route is considered stale if r_bc &lt; BatchCounter carried in the Repository UPDATE for that Source ASN.</t>
          </li>
        </ul>
        <t>Filtering <bcp14>MUST</bcp14> be applied to Adj-RIB-In (or equivalently as close as possible to route import) so that the BGP decision process does not select stale routes.</t>
      </section>
      <section anchor="OTM">
        <name>Outbound Marking Rule</name>
        <t>Routers in a BGP-FP-enabled AS <bcp14>MUST</bcp14> attach the Large Community (SourceASN, Function, BatchCounter) to all outbound eBGP announcements. The Large Communities attribute is an optional transitive attribute <xref target="RFC8092"/> ;implementations <bcp14>MUST NOT</bcp14> strip communities unrelated to the Local AS’s own marking.</t>
        <t>When BatchCounter changes, the Agent <bcp14>MUST</bcp14> refresh the export policy so subsequent updates carry the new freshness value.</t>
      </section>
    </section>
    <section anchor="as-internal-propagation-of-failure-information">
      <name>AS-Internal Propagation of Failure Information</name>
      <t>Within an AS, there may be multiple BGP routers, including multiple   border routers participating in eBGP.  The Agent is responsible for   propagating AS reachability changes and related filtering policies to   all relevant BGP routers inside the AS.</t>
      <t>The Agent connects to the AS's border BGP routers using existing   management and configuration channels, such as:</t>
      <ul spacing="normal">
        <li>
          <t>BGP Monitoring Protocol (BMP) <xref target="RFC7854"/> to receive BGP session state updates and routing information.</t>
        </li>
        <li>
          <t>Network Configuration Protocol (NETCONF) <xref target="RFC6241"/> or RESTCONF  with YANG <xref target="RFC7950"/> models to configure import/export policies.</t>
        </li>
      </ul>
      <t>When the Agent detects a change in AS reachability, it:</t>
      <ol spacing="normal" type="1"><li>
          <t>Updates the Batch Counter and refreshes outbound marking on all  eBGP sessions (<xref target="OTM"/>).</t>
        </li>
        <li>
          <t>Computes new import filtering rules based on the received  Repository updates (<xref target="INM"/>).</t>
        </li>
        <li>
          <t>Installs these rules on all border routers using the configured  management interface.</t>
        </li>
      </ol>
      <t>Internal routers that are not directly connected to the Agent learn  about stale routes via normal BGP mechanisms:</t>
      <ul spacing="normal">
        <li>
          <t>If a route is rejected at a border router's Adj-RIB-In, the border  router will not advertise it via iBGP to internal routers.  In topologies where route reflectors or Confederations are used, internal routers will simply not see the stale route or will see  its withdrawal.</t>
        </li>
        <li>
          <t>If the filtering is applied at the point of import, internal  routers receive fewer or no stale routes, reducing churn in the  AS-internal control plane.</t>
        </li>
      </ul>
      <t>The Agent itself does not directly propagate BGP withdrawals or updates; it only influences the policies applied by the border routers.  This design minimizes changes to existing BGP implementations and operational practices.</t>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>The introduction of a logically centralized Repository raises   questions about its deployment, operation, and governance.  This   section provides guidance on how BGP-FP could be deployed in the   global Internet.</t>
      <section anchor="repository-organization">
        <name>Repository Organization</name>
        <t>It is <bcp14>RECOMMENDED</bcp14> that a new organization be established to operate   the Repository, with participation from:</t>
        <ul spacing="normal">
          <li>
            <t>Tier-1 ASes, which have broad visibility into inter-domain routing , play a crucial role in global route convergence..</t>
          </li>
          <li>
            <t>Regional Internet Registries (RIRs), which already operate  critical infrastructure such as RPKI repositories and have established trust relationships with network operators.</t>
          </li>
        </ul>
        <t>This organization would be responsible for:</t>
        <ul spacing="normal">
          <li>
            <t>Operating the distributed Repository infrastructure.</t>
          </li>
          <li>
            <t>Defining policies for access control, data retention, and  privacy.</t>
          </li>
          <li>
            <t>Coordinating with existing RPKI and routing security efforts.</t>
          </li>
        </ul>
      </section>
      <section anchor="distributed-deployment">
        <name>Distributed Deployment</name>
        <t>The Repository <bcp14>SHOULD</bcp14> be deployed in a distributed manner across   multiple locations and administrative domains.  This distribution   serves several purposes:</t>
        <ul spacing="normal">
          <li>
            <t>Reducing latency for Agents in different regions.</t>
          </li>
          <li>
            <t>Improving resilience against failures and attacks.</t>
          </li>
          <li>
            <t>Avoiding a single point of failure or control.</t>
          </li>
        </ul>
        <t>A possible architecture is similar to that of RPKI repositories   <xref target="RFC6480"/> or distributed logs in Certificate Transparency <xref target="RFC9162"/>,   but tailored for AS reachability state.</t>
      </section>
      <section anchor="consensus-and-trust">
        <name>Consensus and Trust</name>
        <t>To ensure consistency and integrity across distributed Repository nodes, it is <bcp14>RECOMMENDED</bcp14> to use a Byzantine fault-tolerant (BFT)  consensus protocol, such as variants of Practical Byzantine Fault  Tolerance (PBFT) or similar algorithms.  This allows the Repository   to tolerate malicious or faulty nodes while maintaining a consistent   view of the AS reachability state.</t>
        <t>A rotating leadership model can be used to:</t>
        <ul spacing="normal">
          <li>
            <t>Distribute the load of ordering and committing updates.</t>
          </li>
          <li>
            <t>Reduce the risk of any single party gaining long-term control  over the consensus process. The precise choice of consensus protocol and governance structure is  left to the organization operating the Repository and may be specified in separate deployment documents.</t>
          </li>
        </ul>
      </section>
      <section anchor="integration-with-rpki-infrastructure">
        <name>Integration with RPKI Infrastructure</name>
        <t>The architecture of BGP-FP shares significant similarities with the Resource Public Key Infrastructure (RPKI) <xref target="RFC6480"/>. RPKI employs origin validation to filter routes with invalid source assertions, whereas BGP-FP disseminates AS reachability failure states to filter stale routes. Both mechanisms rely on cryptographic validation to secure routing information. Consequently, it is <bcp14>RECOMMENDED</bcp14> that BGP-FP deployment leverage the existing RPKI infrastructure to minimize deployment overhead and capitalize on established operational trust models. This approach requires specific extensions to existing RPKI components:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Repository Enhancements</strong>: RPKI Repository systems <bcp14>SHOULD</bcp14> be extended to support BGP-FP data objects. This includes implementing capabilities for the active push of AS reachability updates to subscribed local Relying Party (RP) software. Furthermore, repositories <bcp14>MUST</bcp14> support Merkle verification mechanisms and the generation of Merkle proofs to ensure the integrity and authenticity of the propagated state.</t>
          </li>
          <li>
            <t><strong>RP Software Extensions</strong>: Local RPKI Relying Party software <bcp14>SHOULD</bcp14> be extended to assume the functionality of the BGP-FP Agent. This involves monitoring local BGP routers to detect the reachability status between the Local AS and its neighbors. The RP software <bcp14>MUST</bcp14> be capable of uploading this state information to the repository and performing local Merkle root calculation and verification.</t>
          </li>
          <li>
            <t><strong>Protocol Extensions</strong>: The RPKI-to-Router (RTR) protocol <xref target="RFC8210"/> <bcp14>MUST</bcp14> be extended to convey AS reachability failure lists to routers. This allows routers to filter stale routes based on BGP-FP data, similar to how they currently filter routes with invalid RPKI Route Origin Authorizations (ROAs).</t>
          </li>
        </ul>
      </section>
      <section anchor="incremental-deployment">
        <name>Incremental Deployment</name>
        <t>BGP-FP is designed to allow incremental deployment:</t>
        <ul spacing="normal">
          <li>
            <t>An AS can deploy BGP-FP unilaterally to filter stale routes from  other participating ASes, without requiring global adoption.</t>
          </li>
          <li>
            <t>Early deployment can focus on monitoring and verification of AS  reachability state, with optional enforcement of route filtering.</t>
          </li>
          <li>
            <t>As more ASes adopt BGP-FP, the benefits of faster convergence and reduced route-flap propagation increase.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="example-of-operation">
      <name>Example of Operation</name>
      <t>This section illustrates the operation of BGP-FP using a simplified topology with six ASes. The example demonstrates how loss of AS reachability between AS1 and AS2 leads to multiple rounds of path exploration in the worst case, and how BGP-FP could accelerate convergence by preventing the propagation of stale routes.</t>
      <figure>
        <name>An Example topology with 6 ASes</name>
        <artwork type="ascii-art"><![CDATA[
                                                                         
                                  +---------+        +---------+         
                                  |         |        |         |         
                               +->|   AS5   +------->|   AS6   |         
                               |  |         +-+  +---+         |         
                               |  +---------+ |  |   +-------+-+         
                               |              |  |           |           
                               |              |  |           |           
                               |              v  v           v           
      +---------+        +-----+---+      +---------+    +---------+     
      |  Agent  |        |         |      |  Agent  |    |         |     
      |   AS1   +------->|   AS2   +----->|   AS3   |<---+   AS4   |     
      |prefix p |        |         |      |         |    |         |     
      +---------+        +---------+      +---------+    +---------+     
                                      route：<2,1>
      customer --> provider                  <5,2,1>
                                             <6,5,2,1>
                                             <4,6,5,2,1>
]]></artwork>
      </figure>
      <section anchor="topology-and-customer-provider-relationships">
        <name>Topology and Customer-Provider Relationships</name>
        <t>Consider the following ASes: AS1, AS2, AS3, AS4, AS5,AS6.</t>
        <t>The customer-provider relationships are:</t>
        <ul spacing="normal">
          <li>
            <t>AS1 -&gt; AS2 (AS1 is a customer of AS2)</t>
          </li>
          <li>
            <t>AS2 -&gt; AS3 , AS2 -&gt; AS5</t>
          </li>
          <li>
            <t>AS4-&gt;AS3</t>
          </li>
          <li>
            <t>AS5-&gt;AS6, AS5-&gt;AS3</t>
          </li>
          <li>
            <t>AS6-&gt;AS4, AS6-&gt;AS3</t>
          </li>
        </ul>
        <t>These relationships determine the allowed directions of route advertisement. For simplicity, this example assumes that AS1 announces a single prefix P to its providers. Under normal conditions, AS3 would learn the following paths to prefix P, ordered by AS_PATH length:</t>
        <ul spacing="normal">
          <li>
            <t>Path 1: &lt;2,1&gt;</t>
          </li>
          <li>
            <t>Path 2: &lt;5,2,1&gt;</t>
          </li>
          <li>
            <t>Path 3: &lt;6,5,2,1&gt;</t>
          </li>
          <li>
            <t>Path 4: &lt;4,6,5,2,1&gt;</t>
          </li>
        </ul>
      </section>
      <section anchor="loss-of-as-reachability-between-as1-and-as2">
        <name>Loss of AS Reachability Between AS1 and AS2</name>
        <t>Suppose the overall AS reachability between AS1 and AS2 is lost. In a plain BGP deployment without BGP-FP, AS2 will withdraw its route to prefix P from AS3 and AS5. However, routes learned via other ASes (AS5, AS6, AS4) may still be considered valid until their own withdrawals propagate.</t>
        <t>In the worst case, AS3 would perform path exploration as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Path 1 Withdrawal</strong>: AS2 withdraws the path &lt;2,1&gt; from AS3. AS3 removes this path.</t>
          </li>
          <li>
            <t><strong>Path 2 Exploration</strong>: AS3 may then select the next best path &lt;5,2,1&gt;. It sends a withdrawal for this path to AS5. AS5, upon processing the withdrawal, removes the route and propagates it to AS6 and AS3.</t>
          </li>
          <li>
            <t><strong>Path 3 Exploration</strong>: AS3 may then select the next best path &lt;6,5,2,1&gt;. It sends a withdrawal for this path to AS6. AS6 processes and propagates the withdrawal to AS4 and AS3.</t>
          </li>
          <li>
            <t><strong>Path 4 Exploration</strong>: Finally, AS3 may select the last known path &lt;4,6,5,2,1&gt;. It sends a withdrawal to AS4. AS4 processes it.</t>
          </li>
        </ol>
        <t>After multiple rounds of propagation and MRAI timers, AS3 converges to having no valid route to prefix P. The root cause is that the critical information, “AS1 is no longer reachable from AS2”, did not propagate in time to AS3. AS3 continued to accept routes whose AS_PATH traversed the failed AS pair (AS1, AS2), assuming they were still valid.</t>
      </section>
      <section anchor="bgp-fp-operation">
        <name>BGP-FP Operation</name>
        <t>With BGP-FP deployed:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Failure Detection &amp; Reporting</strong>: The Agent in AS1 detects the loss of reachability to AS2. It increments its Batch Counter and reports an AS Reachability State entry “AS2:*:Failure” to the Repository.</t>
          </li>
          <li>
            <t><strong>State Dissemination</strong>: The Repository securely forwards this authenticated state to all Agents subscribed to AS1, including the Agent in AS3.</t>
          </li>
          <li>
            <t><strong>Proactive Filtering</strong>: Upon receiving and validating the update, the Agent in AS3 installs an import policy rule on its border routers. This rule rejects <strong>any</strong> route whose:  </t>
            <ol spacing="normal" type="1"><li>
                <t>AS_PATH contains the adjacent pair “… AS1 AS2 …”, AND</t>
              </li>
              <li>
                <t>Carries a freshness community from AS1 with a Batch Counter value older than the new one reported in the Repository update.</t>
              </li>
            </ol>
          </li>
        </ul>
        <t>Consequently, when AS3 receives the updates or withdrawals for paths like &lt;5,2,1&gt; or &lt;6,5,2,1&gt;, it can immediately recognize them as stale because they traverse the failed link between AS1 and AS2. The routes are filtered at the edge, preventing them from being considered in the BGP decision process.</t>
        <t>This mechanism breaks the chain of path exploration. AS3 converges to “no route” state as soon as the withdrawal for the direct path &lt;2,1&gt; is processed, without exploring alternative stale paths. This example highlights how BGP-FP’s authenticated AS reachability propagation can drastically reduce control-plane churn and convergence time.</t>
      </section>
    </section>
    <section anchor="Privacy">
      <name>Privacy Considerations</name>
      <t>Subscribed ASes may reveal portions of an AS’s observed AS_PATHs and thus aspects of routing visibility. Deployments <bcp14>SHOULD</bcp14> minimize unnecessary subscription disclosure (e.g., aggregate subscriptions, policy-based suppression) and secure transport and storage.</t>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <ul spacing="normal">
        <li>
          <t>Repository discovery, redundancy, and anycast/distribution are out of scope, but are expected to be critical for availability.</t>
        </li>
        <li>
          <t>Operators should carefully stage deployment, starting with monitoring-only mode before enforcing route rejection.</t>
        </li>
        <li>
          <t>Interaction with existing route flap damping <xref target="RFC2439"/> should be evaluated; BGP-FP is intended to reduce the need for aggressive damping by removing stale routes earlier.</t>
        </li>
      </ul>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>Following the guidance of <xref target="RFC8126"/>, this document requests IANA actions to support interoperable deployment:</t>
      <section anchor="tcp-service-name-and-port">
        <name>TCP Service Name and Port</name>
        <t>IANA is requested to allocate a TCP port for the "bgpfp" service (BGP Failure Propagation). The port number is TBD.</t>
      </section>
      <section anchor="bgp-fp-message-types-registry">
        <name>"BGP-FP Message Types" Registry</name>
        <t>Create a new registry for the 8-bit Type field in the BGP-FP common header.</t>
        <t>Initial allocations:</t>
        <ul spacing="normal">
          <li>
            <t>0  KEEPALIVE</t>
          </li>
          <li>
            <t>1  INIT (Agent-to-Repository only)</t>
          </li>
          <li>
            <t>2  UPDATE (Agent-to-Repository only)</t>
          </li>
          <li>
            <t>3  UPDATE (Repository-to-Agent)</t>
          </li>
        </ul>
        <t>NOTE: If IANA prefers separate registries for Agent vs Repository message spaces, this can be revised.</t>
        <t>Registration policy: IETF Review.</t>
      </section>
      <section anchor="bgp-fp-attribute-types-registry">
        <name>"BGP-FP Attribute Types" Registry</name>
        <t>Create a new registry for the 8-bit Attr Type field.</t>
        <t>Initial allocations:</t>
        <ul spacing="normal">
          <li>
            <t>0x01  Batch Counter</t>
          </li>
          <li>
            <t>0x02  Function</t>
          </li>
          <li>
            <t>0x03  Merkle Root</t>
          </li>
          <li>
            <t>0x04  Signature</t>
          </li>
          <li>
            <t>0x05  AS Reachability State List</t>
          </li>
          <li>
            <t>0x06  Subscribed ASes</t>
          </li>
          <li>
            <t>0x07  Merkle Proof</t>
          </li>
        </ul>
        <t>Registration policy: IETF Review.
Range 0x80-0xFF is RESERVED for Private Use.</t>
      </section>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>BGP-FP can cause large-scale route rejection if updates are forged or mishandled. The protocol therefore requires authenticity and integrity of Repository updates and of Source-AS-originated state.</t>
      <t>Key requirements:</t>
      <ul spacing="normal">
        <li>
          <t>Agents <bcp14>MUST</bcp14> verify signatures on Repository UPDATE messages.</t>
        </li>
        <li>
          <t>The system <bcp14>MUST</bcp14> provide a trustworthy mapping from ASN to public key. RPKI <xref target="RFC6480"/> is one candidate infrastructure for distributing authenticated resource-linked keys/certificates; the detailed certificate profile and distribution procedure are out of scope.</t>
        </li>
        <li>
          <t>Merkle proofs help receivers detect tampering with forwarded subsets of state.</t>
        </li>
      </ul>
      <t>Additional threats include replay of old updates, Repository compromise, denial of service against Agents/Repository, and privacy leakage via subscription information. Implementations <bcp14>SHOULD</bcp14> provide replay protection (e.g., track per-Source-ASN BatchCounter monotonicity) and rate limiting.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC8092">
          <front>
            <title>BGP Large Communities Attribute</title>
            <author fullname="J. Heitz" initials="J." role="editor" surname="Heitz"/>
            <author fullname="J. Snijders" initials="J." role="editor" surname="Snijders"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="I. Bagdonas" initials="I." surname="Bagdonas"/>
            <author fullname="N. Hilliard" initials="N." surname="Hilliard"/>
            <date month="February" year="2017"/>
            <abstract>
              <t>This document describes the BGP Large Communities attribute, an extension to BGP-4. This attribute provides a mechanism to signal opaque information within separate namespaces to aid in routing management. The attribute is suitable for use with all Autonomous System Numbers (ASNs) including four-octet ASNs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8092"/>
          <seriesInfo name="DOI" value="10.17487/RFC8092"/>
        </reference>
        <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="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </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>
        <reference anchor="RFC793">
          <front>
            <title>Transmission Control Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="RFC" value="793"/>
          <seriesInfo name="DOI" value="10.17487/RFC793"/>
        </reference>
        <reference anchor="RFC6793">
          <front>
            <title>BGP Support for Four-Octet Autonomous System (AS) Number Space</title>
            <author fullname="Q. Vohra" initials="Q." surname="Vohra"/>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <date month="December" year="2012"/>
            <abstract>
              <t>The Autonomous System number is encoded as a two-octet entity in the base BGP specification. This document describes extensions to BGP to carry the Autonomous System numbers as four-octet entities. This document obsoletes RFC 4893 and updates RFC 4271. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6793"/>
          <seriesInfo name="DOI" value="10.17487/RFC6793"/>
        </reference>
        <reference anchor="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
        <reference anchor="RFC6480">
          <front>
            <title>An Infrastructure to Support Secure Internet Routing</title>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="February" year="2012"/>
            <abstract>
              <t>This document describes an architecture for an infrastructure to support improved security of Internet routing. The foundation of this architecture is a Resource Public Key Infrastructure (RPKI) that represents the allocation hierarchy of IP address space and Autonomous System (AS) numbers; and a distributed repository system for storing and disseminating the data objects that comprise the RPKI, as well as other signed objects necessary for improved routing security. As an initial application of this architecture, the document describes how a legitimate holder of IP address space can explicitly and verifiably authorize one or more ASes to originate routes to that address space. Such verifiable authorizations could be used, for example, to more securely construct BGP route filters. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6480"/>
          <seriesInfo name="DOI" value="10.17487/RFC6480"/>
        </reference>
        <reference anchor="RFC8210">
          <front>
            <title>The Resource Public Key Infrastructure (RPKI) to Router Protocol, Version 1</title>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>In order to verifiably validate the origin Autonomous Systems and Autonomous System Paths of BGP announcements, routers need a simple but reliable mechanism to receive Resource Public Key Infrastructure (RFC 6480) prefix origin data and router keys from a trusted cache. This document describes a protocol to deliver them.</t>
              <t>This document describes version 1 of the RPKI-Router protocol. RFC 6810 describes version 0. This document updates RFC 6810.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8210"/>
          <seriesInfo name="DOI" value="10.17487/RFC8210"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2439">
          <front>
            <title>BGP Route Flap Damping</title>
            <author fullname="C. Villamizar" initials="C." surname="Villamizar"/>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <author fullname="R. Govindan" initials="R." surname="Govindan"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>A usage of the BGP routing protocol is described which is capable of reducing the routing traffic passed on to routing peers and therefore the load on these peers without adversely affecting route convergence time for relatively stable routes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2439"/>
          <seriesInfo name="DOI" value="10.17487/RFC2439"/>
        </reference>
        <reference anchor="RFC8195">
          <front>
            <title>Use of BGP Large Communities</title>
            <author fullname="J. Snijders" initials="J." surname="Snijders"/>
            <author fullname="J. Heasley" initials="J." surname="Heasley"/>
            <author fullname="M. Schmidt" initials="M." surname="Schmidt"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>This document presents examples and inspiration for operator application of BGP Large Communities. Based on operational experience with BGP Communities, this document suggests logical categories of BGP Large Communities and demonstrates an orderly manner of organizing community values within them to achieve typical goals in routing policy. Any operator can consider using the concepts presented as the basis for their own BGP Large Communities repertoire.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8195"/>
          <seriesInfo name="DOI" value="10.17487/RFC8195"/>
        </reference>
        <reference anchor="RFC4098">
          <front>
            <title>Terminology for Benchmarking BGP Device Convergence in the Control Plane</title>
            <author fullname="H. Berkowitz" initials="H." surname="Berkowitz"/>
            <author fullname="E. Davies" initials="E." role="editor" surname="Davies"/>
            <author fullname="S. Hares" initials="S." surname="Hares"/>
            <author fullname="P. Krishnaswamy" initials="P." surname="Krishnaswamy"/>
            <author fullname="M. Lepp" initials="M." surname="Lepp"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>This document establishes terminology to standardize the description of benchmarking methodology for measuring eBGP convergence in the control plane of a single BGP device. Future documents will address iBGP convergence, the initiation of forwarding based on converged control plane information and multiple interacting BGP devices.This terminology is applicable to both IPv4 and IPv6. Illustrative examples of each version are included where relevant. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4098"/>
          <seriesInfo name="DOI" value="10.17487/RFC4098"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC7854">
          <front>
            <title>BGP Monitoring Protocol (BMP)</title>
            <author fullname="J. Scudder" initials="J." role="editor" surname="Scudder"/>
            <author fullname="R. Fernando" initials="R." surname="Fernando"/>
            <author fullname="S. Stuart" initials="S." surname="Stuart"/>
            <date month="June" year="2016"/>
            <abstract>
              <t>This document defines the BGP Monitoring Protocol (BMP), which can be used to monitor BGP sessions. BMP is intended to provide a convenient interface for obtaining route views. Prior to the introduction of BMP, screen scraping was the most commonly used approach to obtaining such views. The design goals are to keep BMP simple, useful, easily implemented, and minimally service affecting. BMP is not suitable for use as a routing protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7854"/>
          <seriesInfo name="DOI" value="10.17487/RFC7854"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
      </references>
    </references>
    <?line 722?>



  </back>
  <!-- ##markdown-source:
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
YamNKno9M6JhcJ7/D9hqfUuGhgAA

-->

</rfc>
