<?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.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zhang-sidrops-prioritized-route-validation-02" category="info" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Prioritized Resource Data">RPKI-based Validation with Prioritized Resource Data</title>
    <seriesInfo name="Internet-Draft" value="draft-zhang-sidrops-prioritized-route-validation-02"/>
    <author initials="J." surname="Zhang" fullname="Jia Zhang">
      <organization>Zhongguancun Laboratory</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhangj@zgclab.edu.cn</email>
      </address>
    </author>
    <author initials="M." surname="Xu" fullname="Mingwei Xu">
      <organization>CERNET</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>xmw@cernet.edu.cn</email>
      </address>
    </author>
    <author initials="N." surname="Geng" fullname="Nan Geng">
      <organization>Huawei</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>gengnan@huawei.com</email>
      </address>
    </author>
    <author initials="C." surname="Xie" fullname="Chongfeng Xie">
      <organization>China Telecom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>xiechf@chinatelecom.cn</email>
      </address>
    </author>
    <author initials="Y." surname="Wang" fullname="Yangyang Wang">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>wangyy@cernet.edu.cn</email>
      </address>
    </author>
    <date year="2026" month="June" day="22"/>
    <area>ops</area>
    <workgroup>sidrops</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>The Resource Public Key Infrastructure (RPKI) provides globally verifiable signed routing security data, such as Route Origin Authorizations (ROAs). Operators also commonly use local or supplemental data sources, including SLURM files, operator-maintained exceptions, IRR-derived inputs, and other operator-selected supplemental data, to improve local routing decisions. These sources may not have the same authority as signed RPKI objects and therefore may require operator-configured priority-safe handling.</t>
      <t>This document describes a framework for RPKI-based validation with prioritized resource data. It defines priority-safe handling semantics that allow operators to use data sources with different levels of authority or assurance for local routing policy, while preserving the global authorization semantics of signed RPKI data. The document also discusses deployment models with different implementation costs and operational trade-offs.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>RPKI Route Origin Authorizations (ROAs) and other signed RPKI objects provide a practical and globally verifiable basis for routing security. Route Origin Validation (ROV), for example, uses ROAs to classify a route as Valid, Invalid, or NotFound/Unknown. The semantics of signed RPKI data are intentionally simple and strong: an RPKI object expresses authorization by the relevant resource holder and is validated according to the RPKI trust model.</t>
      <t>Operational routing environments, however, often contain additional information that can be useful for local decision making. Examples include SLURM files, operator-maintained allow or deny lists, IRR-derived route objects, customer-maintained records, and other operator-selected supplemental data. These inputs may be useful, but they are not equivalent to signed RPKI objects. Treating them as indistinguishable from authoritative RPKI data can create unsafe routing behavior and can make troubleshooting difficult. In addition, validation results are consumed by routing policy and route selection, where operators commonly use actions beyond simple accept or reject, such as depreference, monitoring, local exception handling, or preference adjustment. Operator-configured priority can therefore provide operational flexibility without changing the authorization semantics of signed RPKI data. Such priority may be based on data source, assurance level, operational policy, or other local criteria.</t>
      <t>This document describes a priority-safe framework for using such data in local RPKI-based route validation. The framework is intended to apply to RPKI-based validation mechanisms including ROA-based origin validation and ASPA-based path validation. It keeps signed RPKI semantics intact, supports provenance and auditability where needed, and defines deployment models that range from no RTR or router changes, to router-side priority-aware merging, to explicit RTR metadata support. The primary purpose is to document interoperable operational semantics and deployment guidance, rather than to require changes to the global RPKI architecture.</t>
      <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>
      </section>
    </section>

    <section anchor="problem-statement">
      <name>Problem Statement and Gap Analysis</name>
      <section anchor="local-supplemental-data">
        <name>Local Supplemental Data Is Already Used</name>
        <t>Operators already use local data in addition to RPKI data. SLURM allows a relying party or local cache to add assertions and filters for local use. Some networks derive supplemental route-origin information from IRR data or from customer provisioning systems. These practices show that local augmentation is operationally relevant, but they do not by themselves define common semantics for priority, provenance, conflict resolution, monitoring, or rollback. Priority is useful when different sources have different authority or assurance. If a supplemental source is considered equivalent to signed RPKI data in a local deployment, it can be assigned the same priority. If only authoritative RPKI data is used, priority differentiation is generally unnecessary.</t>
      </section>
      <section anchor="unsafe-mixing">
        <name>Unsafe Mixing of Data Sources</name>
        <t>A central gap is that data sources with different authority may be mixed before validation. If a lower-assurance source is merged into the same validation table as signed RPKI data, a router may be unable to distinguish an Invalid result derived from signed RPKI data from an Invalid result derived from a supplemental source. This can lead to overly aggressive filtering, operational surprises, or a loss of confidence in RPKI-based validation.</t>
        <t>The reverse conflict is also important. A lower-priority Valid assertion must not be allowed to override a higher-priority Invalid result derived from authoritative RPKI data. Without explicit conflict rules, adding supplemental data can accidentally weaken the protection provided by RPKI.</t>
      </section>
    </section>


    <section anchor="framework">
      <name>Framework</name>
      <t>The framework separates three functions: data collection, priority-aware import or merging, and routing policy. In this document, authoritative RPKI data refers to signed RPKI data validated under the RPKI trust model, and supplemental data refers to local or external data used by an operator to inform local routing decisions. Priority-safe validation means that lower-priority data can supplement local decisions but cannot silently override higher-priority data or authoritative RPKI semantics. These functions may be implemented in different places depending on the deployment model.</t>
      <artwork><![CDATA[
       +---------------------+       +------------------------+
       | Authoritative RPKI  |       | Supplemental Sources   |
       | Signed RPKI data   |       | SLURM/IRR/local data  |
       +----------+----------+       +-----------+------------+
                  |                              |
                  v                              v
       +---------------------+       +------------------------+
       | RPKI RP / Cache     |       | Supplemental Cache     |
       | local priority: high|       | local priority: lower  |
       +----------+----------+       +-----------+------------+
                  |                              |
                  | existing RTR sessions,       |
                  | local APIs, or metadata      |
                  v                              v
             +------------------------------------------+
             | Router validation tables, priority-aware |
             | merge logic, or metadata-aware policy    |
             +----------------------+-------------------+
                                    |
                                    v
                         BGP route selection policy
]]></artwork>
      <t>The framework is intentionally local. A network operator may use supplemental data to influence its own routing policy, but this document does not make such data globally authoritative and does not require other networks to consume it. Signed RPKI data remains distinguishable from supplemental data throughout the local validation process.</t>
      <t>The framework also separates validation semantics from deployment mechanisms. The same priority-safe behavior can be realized by multiple existing caches and route tables, by a router-side priority-aware merge of multiple RTR sessions, or by explicit metadata support where such support is available.</t>
    </section>

    <section anchor="priority-safe-semantics">
      <name>Priority-Safe Validation Semantics</name>
      <section anchor="provenance-first">
        <name>Preserve Provenance and Priority Context</name>
        <t>Implementations <bcp14>SHOULD</bcp14> preserve enough provenance and priority context for validation inputs at least until local policy has been applied. The priority assigned by an operator may be based on data source, assurance level, operational role, or other local criteria. If inputs are merged before policy evaluation, the implementation <bcp14>SHOULD</bcp14> keep enough information for audit, troubleshooting, and rollback.</t>
      </section>
      <section anchor="authoritative-rpki-preservation">
        <name>Preserve Authoritative RPKI Semantics</name>
        <t>Supplemental data <bcp14>MUST NOT</bcp14> silently override a validation result derived from higher-priority authoritative RPKI data. In particular, a lower-priority Valid assertion <bcp14>MUST NOT</bcp14> cause a route that is Invalid under authoritative RPKI data to be treated as fully Valid. An operator may still define an explicit local exception, but that exception needs to be visible as local policy rather than as ordinary RPKI validity.</t>
      </section>
      <section anchor="conflict-resolution">
        <name>Conflict Resolution</name>
        <t>When multiple sources produce conflicting results, implementations <bcp14>SHOULD</bcp14> apply a deterministic conflict-resolution rule. A common default is highest-priority-wins, with ties resolved by the underlying validation algorithm or by an operator-configured merge rule. Implementations <bcp14>SHOULD</bcp14> report when a lower-priority source conflicts with a higher-priority source, since such conflicts are useful for correcting data and for assessing operational risk.</t>
        <t>Lower-priority Invalid results are useful, but they are usually not equivalent to authoritative RPKI Invalid results. Implementations can expose the configured priority and conflict information to local policy so that operators can select the appropriate action for each deployment.</t>
      </section>
      <section anchor="result-model">
        <name>Result Model</name>
        <t>A priority-aware result can be represented as a tuple consisting of the ordinary validation state, the configured priority or other context used to derive the state, and any conflict indicators. For example, an implementation may distinguish "Invalid by authoritative RPKI" from "Invalid by supplemental IRR-derived data" while still preserving the ordinary Valid/Invalid/Unknown state for compatibility with existing policy systems.</t>
      </section>
      <section anchor="aspa-aggregation">
        <name>Path Validation Evidence Aggregation</name>
        <t>Path validation may use multiple pieces of evidence along an AS path. If those pieces of evidence come from sources with different priorities, the final validation result needs to preserve the priority of the evidence that actually determines the result. For example, if high-priority evidence is sufficient to identify an invalid relationship or path segment, the result should expose that high-priority invalid indication even if lower-priority evidence was also consulted. This document states the general principle; mechanism-specific specifications can define the exact aggregation algorithm.</t>
      </section>
    </section>

    <section anchor="deployment-models">
      <name>Deployment Models</name>
      <t>This document defines three deployment models, ordered by implementation cost and explicitness of priority signaling. Model A uses existing multiple caches or validation tables and may require no RTR protocol change and no router implementation change where such features already exist. Model B keeps the RTR protocol unchanged but requires router-side support to merge multiple RTR sessions into one validation table according to locally configured session priorities. Model C carries explicit priority and optional provenance metadata in RTR data and therefore requires both RTR protocol support and router support.</t>
      <section anchor="model-a-multi-cache">
        <name>Model A: Multi-Cache or Multi-Table</name>
        <t>In this model, different priority classes or input groups are delivered through separate existing RTR sessions, separate cache instances, separate local files, or separate router validation tables. The router policy then compares separated validation results and applies priority-specific or input-specific actions. For example, authoritative RPKI data can be evaluated in one table, while supplemental IRR-derived or local data is evaluated in another table. The priority relationship is configured by local router policy rather than encoded in RTR or in the validation payload.</t>
        <t>Model A requires no change to RPKI object formats, no change to the RTR protocol, and no global change to RPKI semantics. Where routers already support multiple RTR sessions, multiple validation tables, or equivalent policy mechanisms, Model A can also be deployed without router implementation changes.</t>
      </section>
      <section anchor="model-b-rp-resolver">
        <name>Model B: Single Table with Session-Configured Priority</name>
        <t>In this model, a router imports multiple RTR sessions or equivalent validation-data inputs into a single local validation table. Each session or input is assigned a local priority, and optionally other local classification, by router configuration. The RTR payload itself is unchanged; priority is associated with the session or input, not carried in each RTR object. The router applies priority-aware merge and conflict-resolution rules when constructing the single validation table.</t>
        <t>Model B does not require RTR protocol changes, but it does require router-side support for priority-aware merging of multiple inputs. Compared with Model A, it can reduce policy complexity because the router maintains one merged validation table instead of requiring route policy to compare several separated validation tables. Implementations <bcp14>SHOULD</bcp14> expose which input source and merge rule produced each entry through logs, counters, or management interfaces.</t>
      </section>
      <section anchor="model-c-future-metadata">
        <name>Model C: RTR Metadata or Tagging Extension</name>
        <t>In this model, validation data or validation results carry explicit priority, policy, and optional provenance metadata in RTR data or in an equivalent standardized tagging mechanism. In contrast to Model B, priority is not only associated with the RTR session or local input; it is carried with the validation data itself and remains visible to downstream policy logic, such as a router or another policy engine. Such metadata can support finer-grained policy, but it requires protocol and router support.</t>
        <t>Model C is optional. Deployments that do not support explicit metadata can still implement the priority-safe semantics using Model A or Model B. This document therefore does not require an RTR protocol extension for baseline deployment.</t>
      </section>
    </section>


    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>Operators can choose among the deployment models according to implementation cost, policy complexity, rollout requirements, and audit requirements. A practical deployment can start with the least disruptive model that provides the needed priority separation. Model A is suitable when existing router policy and multiple validation tables are sufficient. Model B is suitable when an operator wants a single validation table and can deploy router-side support for priority-aware merging of multiple RTR sessions or validation-data inputs. Operators may map configured priorities to local policy actions such as monitoring, depreference, rejection, or explicit local exception handling according to their own risk tolerance and operational requirements.</t>
      <t>Model A can be used as a low-disruption baseline for short-term deployment, experimentation, and implementation experience because it can rely on existing RTR sessions, validation tables, and router policy. Operators can use existing routing policy to distinguish drop, deprefer, warn, or monitor actions by configured priority, input group, or other local classification. When the number of priority classes, input groups, routers, or policy variants grows, operators may need consistent policy updates, staged rollout, rollback, and audit across multiple devices. Model B can centralize merge behavior inside the router validation subsystem, which may simplify route-policy configuration at the cost of router-side implementation support. Model C can expose priority and optional provenance metadata to downstream policy logic where explicit RTR metadata support is available.</t>
      <t>Implementations and deployments should expose provenance, conflict counters, data freshness, and the policy action selected for each configured priority or input group. These outputs help operators verify that supplemental data remains separate from authoritative RPKI data and that local exceptions are auditable and reversible.</t>
    </section>

    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The main security risk in this document is that lower-assurance data may be mistaken for authoritative RPKI data. Implementations and operational profiles need to preserve that distinction. Supplemental data can improve local visibility and coverage, but it can also introduce false positives, false negatives, stale assertions, or policy mistakes.</t>
      <t>Lower-priority data <bcp14>MUST NOT</bcp14> silently weaken authoritative RPKI validation. In particular, a route that is Invalid under signed RPKI data cannot become ordinary Valid merely because a supplemental source says so. If an operator intentionally overrides such a result, the override is local policy and needs to be logged and observable.</t>
      <t>Deployments need freshness and availability controls. If authoritative RPKI data becomes stale or unavailable, automatically falling back to lower-priority data can cause large routing changes. Implementations <bcp14>SHOULD</bcp14> expose stale-source alarms and allow operators to choose fail-open, fail-closed, or monitor-only behavior per configured priority or input group.</t>
      <t>Supplemental data sources require additional care. They should be treated as local evidence unless and until they have an independent authorization basis. Operators should monitor disagreement between supplemental data and authoritative RPKI data, and should use such disagreement to improve data quality rather than to obscure authoritative validation results.</t>
    </section>

    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA action.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6480" target="https://www.rfc-editor.org/info/rfc6480" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6480.xml">
          <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>
      </references>
    </references>
    <?line 172?>



  </back>

</rfc>
