<?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.31 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-li-idr-bgp-failure-propagation-convergence-01" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.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-01"/>
    <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="February" day="28"/>
    <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/RFC0793"/>
        </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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
lMNSG1X0emZEw+A8/x8U43tfhoYAAA==

-->

</rfc>
