<?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.39 (Ruby 3.2.3) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-sidrops-rtr-yang-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="YANG Data Model for RTR">YANG Data Model for RPKI to Router Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-rtr-yang-07"/>
    <author initials="Y." surname="Liu" fullname="Yisong Liu">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street>32 Xuanwumen West Street</street>
          <city>Beijing</city>
          <region>Xicheng District</region>
          <code>100053</code>
          <country>China</country>
        </postal>
        <email>liuyisong@chinamobile.com</email>
      </address>
    </author>
    <author initials="C." surname="Lin" fullname="Changwang Lin">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <street>8 Yongjia North Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100094</code>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <author initials="H." surname="Wang" fullname="Haibo Wang">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>rainsword.wang@huawei.com</email>
      </address>
    </author>
    <author initials="J." surname="Roy" fullname="Jishnu Roy">
      <organization>HPE</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <region>Sunnyvale, CA 94089</region>
          <country>United States of America</country>
        </postal>
        <email>jishnu.roy@hpe.com</email>
      </address>
    </author>
    <author initials="J." surname="Haas" fullname="Jeffrey Haas">
      <organization>HPE</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <region>Sunnyvale, CA 94089</region>
          <country>United States of America</country>
        </postal>
        <email>jeffrey.haas@hpe.com</email>
      </address>
    </author>
    <author initials="H." surname="Liu" fullname="Hongwei Liu">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>liu.hongwei3@zte.com.cn</email>
      </address>
    </author>
    <author initials="D." surname="Ma" fullname="Di Ma">
      <organization>ZDNS</organization>
      <address>
        <postal>
          <street>Floor 21, Block B, Greenland Center</street>
          <city>Chaoyang Beijing, 100102</city>
          <country>China</country>
        </postal>
        <email>madi@zdns.cn</email>
      </address>
    </author>
    <date year="2026" month="June" day="18"/>
    <area>ops</area>
    <workgroup>SIDROPS Working Group</workgroup>
    <keyword>YANG, RPKI, RTR</keyword>
    <abstract>
      <?line 133?>

<t>This document defines YANG data models for managing
   Resource Public Key Infrastructure (RPKI) to Router Protocol
   (RFC6810 and RFC8210).</t>
    </abstract>
  </front>
  <middle>
    <?line 139?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC6810"/> and <xref target="RFC8210"/> describes a protocol to deliver Resource
   Public Key Infrastructure (RPKI) prefix origin data and router keys
   from a trusted cache server to a router, referred to as the RPKI to Router (RTR)
   protocol.</t>
      <t><xref target="I-D.ietf-sidrops-8210bis"/> describes version 2 of the RTR protocol, which
   adds a new Autonomous System Provider Authorization (ASPA)) PDU type.</t>
      <t>This document defines YANG <xref target="RFC7950"/> data models for
   managing RTR protocol (<xref target="RFC6810"/>, <xref target="RFC8210"/>, and
   <xref target="I-D.ietf-sidrops-8210bis"/>).</t>
    </section>
    <section anchor="terminology-and-notation-conventions">
      <name>Terminology and Notation Conventions</name>
      <section anchor="requirements-notation">
        <name>Requirements Notation</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" 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 anchor="terminology">
        <name>Terminology</name>
        <t>The following terms are defined in <xref target="RFC7950"/> and are not redefined
   here:</t>
        <ul spacing="normal">
          <li>
            <t>augment</t>
          </li>
          <li>
            <t>data model</t>
          </li>
          <li>
            <t>data node</t>
          </li>
          <li>
            <t>module</t>
          </li>
          <li>
            <t>namespace</t>
          </li>
          <li>
            <t>YANG</t>
          </li>
        </ul>
      </section>
      <section anchor="tree-diagrams">
        <name>Tree Diagrams</name>
        <t>Tree diagrams used in this document follow the notation defined in
   <xref target="RFC8340"/>.</t>
      </section>
    </section>
    <section anchor="data-model-overview">
      <name>Data Model Overview</name>
      <t>This document defines two YANG modules: "ietf-rpki-rtr" and "ietf-rpki-table".</t>
      <t>The "ietf-rpki-rtr" YANG module provides the methods for
   managing RTR protocol. It includes:</t>
      <ul spacing="normal">
        <li>
          <t>Connectivity parameters, such as RPKI cache server IP address and
destination port.</t>
        </li>
        <li>
          <t>Session parameters, such as purge time, refresh time, response
time.</t>
        </li>
        <li>
          <t>Session status and statistics, such as session ID, serial number,
number of received and transmitted messages.</t>
        </li>
      </ul>
      <t>The "ietf-rpki-table" YANG module provides the methods for
   managing records of RTR protocol and the corresponding state hash which is a hash value
   used in the Canonical Cache Representation (CCR) content <xref target="I-D.ietf-sidrops-rpki-ccr"/>.
   It includes:</t>
      <ul spacing="normal">
        <li>
          <t>Validated ROA Payload (VRP) records.</t>
        </li>
        <li>
          <t>Router Key records.</t>
        </li>
        <li>
          <t>ASPA records.</t>
        </li>
        <li>
          <t>CCR state hash, which is optional and is used to verify the integrity and consistency of RPKI data
originating from the RPKI cache.</t>
        </li>
      </ul>
    </section>
    <section anchor="rpki-to-router-yang-module">
      <name>RPKI to Router YANG Module</name>
      <section anchor="tree-view">
        <name>Tree View</name>
        <t>The full tree of the "ietf-rpki-rtr" YANG module is provided in <xref target="rtr-full-tree"/>.
   The following subsections list the subtree structures.</t>
        <section anchor="overall-structure">
          <name>Overall Structure</name>
          <t>The overall tree structure of the "ietf-rpki-rtr" YANG module is shown in <xref target="fig-rtr-overall-tree"/>.</t>
          <t>The "ietf-rpki-rtr" YANG module augments the core routing YANG module "ietf-routing"
   specified in <xref target="RFC8349"/> for managing RTR protocol sessions. Specifically, this YANG module
   augments "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol".</t>
          <figure anchor="fig-rtr-overall-tree">
            <name>Overall RPKI to Router Tree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             +--rw server-address           inet:ip-address
             +--rw server-port?             inet:port-number
             +--rw local-address?           union
             +--rw local-port?              inet:port-number
             +--rw enabled?                 boolean
             +--rw preference?              uint32
             +--rw description?             string
             +--rw reconnect-interval?      uint32
             +--ro session-state?           enumeration
             +--rw enable-authentication?   boolean
             +--rw authentication
             |  ...
             +--rw vrp-limit
             |  ...
             +--rw aspa-limit
             |  ...
             +--ro statistics
             |  ...
             +--ro connection-data
             |  ...
             +--ro protocol-data
             |  ...
             +--ro pdu-counters
             |  ...
             +--ro error-pdu-counters
                ...
]]></artwork>
          </figure>
          <t>The "ietf-rpki-rtr" YANG module has a root container 'rpki-rtr', which has a subcontainer 'sessions'.
   The container 'sessions' contains a list 'session', where each entry represents a session
   configuration and state to a specific RPKI cache server.</t>
        </section>
        <section anchor="rtr-session-configuration">
          <name>RTR Session Configuration</name>
          <t>The RTR session configuration structure for the list 'session' is shown in
   <xref target="fig-rtr-sess-conf-tree"/>.</t>
          <figure anchor="fig-rtr-sess-conf-tree">
            <name>RTR Session Configuration Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             +--rw server-address           inet:ip-address
             +--rw server-port?             inet:port-number
             +--rw local-address?           union
             +--rw local-port?              inet:port-number
             +--rw enabled?                 boolean
             +--rw preference?              uint32
             +--rw description?             string
             +--rw reconnect-interval?      uint32
             +--rw enable-authentication?   boolean
             +--rw authentication
             |  ...
             +--rw vrp-limit
             |  ...
             +--rw aspa-limit
             |  ...
]]></artwork>
          </figure>
          <t>The configuration data nodes for the list 'session' are described as follows:</t>
          <t>'server-address': Indicates the IP address of the RPKI cache server.</t>
          <t>'server-port': Indicates the port number the server listens on.</t>
          <t>'local-address': Indicates the source IP address used when initiating a RTR session connection locally.</t>
          <t>'local-port': Indicates the source port number used when initiating a RTR session connection locally.</t>
          <t>'enabled': Indicates the management switch for the RTR session.</t>
          <t>'preference': Indicates the priority for connecting to the RPKI cache server.</t>
          <t>'description': Indicates the description information for the RTR session.</t>
          <t>'reconnect-interval': Indicates the reconnection interval after session disconnection.</t>
          <t>'enable-authentication': Indicates the switch to enable connection authentication for the RTR session.</t>
          <t>'authentication': Indicates the configuration information of connection authentication for the
   RTR session, as shown in <xref target="fig-rtr-sess-auth-tree"/>.</t>
          <figure anchor="fig-rtr-sess-auth-tree">
            <name>RTR Session Authentication Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             ...
             +--rw authentication
             |  +--rw (option)?
             |     +--:(md5)
             |     |  +--rw md5-password?   ianach:crypt-hash
             |     +--:(ssh)
             |     |  +--rw client-identity
             |     |  |  +--rw username?  string
             |     |  |  +--rw public-key!
             |     |  |                   {userauth-publickey}?
             |     |  |  +--rw password!
             |     |  |                   {userauth-password}?
             |     |  |  +--rw hostbased!
             |     |  |                   {userauth-hostbased}?
             |     |  |  +--rw none?      empty {userauth-none}?
             |     |  |  +--rw certificate!
             |     |  |                   {sshcmn:ssh-x509-certs}?
             |     |  +--rw server-authentication
             |     |  |  +--rw ssh-host-keys!
             |     |  |  +--rw ca-certs!  {sshcmn:ssh-x509-certs}?
             |     |  |  +--rw ee-certs!  {sshcmn:ssh-x509-certs}?
             |     |  +--rw transport-params
             |     |  |                 {sshcmn:transport-params}?
             |     |  +--rw keepalives!   {ssh-client-keepalives}?
             |     |     +--rw max-wait?       uint16
             |     |     +--rw max-attempts?   uint8
             |     +--:(tcp-ao-keychain)
             |        +--rw keychain-name?  key-chain:key-chain-ref
             +--rw vrp-limit
             |  ...
             +--rw aspa-limit
             |  ...
]]></artwork>
          </figure>
          <t>'vrp-limit' (<xref target="fig-rtr-sess-record-limit-tree"/>): Indicates the limit configuration on the
   number of VRP record received from the RTR session.</t>
          <t>'aspa-limit' (<xref target="fig-rtr-sess-record-limit-tree"/>): Indicates the limit configuration on the
   number of ASPA record received from the RTR session.</t>
          <figure anchor="fig-rtr-sess-record-limit-tree">
            <name>RTR Session Received Record Limit Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             ...
             +--rw authentication
             |  ...
             +--rw vrp-limit
             |  +--rw max-number?              uint64
             |  +--rw threshold-percentage?    rt-types:percentage
             |  +--rw over-threshold-action?   enumeration
             +--rw aspa-limit
             |  +--rw max-number?              uint64
             |  +--rw threshold-percentage?    rt-types:percentage
             |  +--rw over-threshold-action?   enumeration
]]></artwork>
          </figure>
          <t>In <xref target="fig-rtr-sess-record-limit-tree"/>, 'vrp-limit' and 'aspa-limit' have the same structure, both having
   the maximum number of records allowed to be received from the RTR session ('max-number'), the threshold
   percentage for record maximum number ('threshold-percentage'), and handling strategy when exceeding
   the record threshold ('over-threshold-action').</t>
        </section>
        <section anchor="rtr-session-state">
          <name>RTR Session State</name>
          <t>The RTR session state structure for the list 'session' is shown in
   <xref target="fig-rtr-sess-state-tree"/>.</t>
          <figure anchor="fig-rtr-sess-state-tree">
            <name>RTR Session State Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             +--ro session-state?           enumeration
             +--ro statistics
             |  ...
             +--ro connection-data
             |  ...
             +--ro protocol-data
             |  ...
             +--ro pdu-counters
             |  ...
             +--ro error-pdu-counters
                ...
]]></artwork>
          </figure>
          <t>The state data nodes for the list 'session' are described as follows:</t>
          <t>'session-state': Indicates the connection status of the RTR session.</t>
          <t>'statistics': Indicates the statistics of RPKI records or messages received from the server of the RTR session,
   as shown in <xref target="fig-rtr-sess-statistic-tree"/>.</t>
          <figure anchor="fig-rtr-sess-statistic-tree">
            <name>RTR Session Statistics Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             ...
             +--ro statistics
             |  +--ro total-vrp-records?  yang:zero-based-counter64
             |  +--ro ipv4-vrp-records?   yang:zero-based-counter64
             |  +--ro ipv6-vrp-records?   yang:zero-based-counter64
             |  +--ro router-key-records? yang:zero-based-counter64
             |  +--ro aspa-records?       yang:zero-based-counter64
             |  +--ro in-total-messages?  yang:zero-based-counter64
             |  +--ro out-total-messages? yang:zero-based-counter64
             +--ro connection-data
             |  ...
             +--ro protocol-data
             |  ...
             +--ro pdu-counters
             |  ...
             +--ro error-pdu-counters
                ...
]]></artwork>
          </figure>
          <t>'connection-data': Indicates the state information relating to the session connection with
   the RPKI cache server, as shown in <xref target="fig-rtr-sess-conn-data-tree"/>.</t>
          <figure anchor="fig-rtr-sess-conn-data-tree">
            <name>RTR Session Connection Data Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             ...
             +--ro statistics
             |  ...
             +--ro connection-data
             |  +--ro flaps?                        uint32
             |  +--ro last-session-up-down?         yang:timestamp
             |  +--ro last-update-sync?             yang:timestamp
             |  +--ro last-full-sync?               yang:timestamp
             |  +--ro last-serial-query?            yang:timestamp
             |  +--ro last-reset-query?             yang:timestamp
             |  +--ro last-eod-received?            yang:timestamp
             |  +--ro last-config-change?           yang:timestamp
             |  +--ro last-error?                   yang:timestamp
             |  +--ro last-connection-error?        yang:timestamp
             |  +--ro last-connection?              yang:timestamp
             |  +--ro error-reason?                 string
             +--ro protocol-data
             |  ...
             +--ro pdu-counters
             |  ...
             +--ro error-pdu-counters
                ...
]]></artwork>
          </figure>
          <t>'protocol-data': Indicates state parameters related to the RTR protocol of the session, as shown
   in <xref target="fig-rtr-sess-proto-data-tree"/>.</t>
          <figure anchor="fig-rtr-sess-proto-data-tree">
            <name>RTR Session Protocol Data Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             ...
             +--ro statistics
             |  ...
             +--ro connection-data
             |  ...
             +--ro protocol-data
             |  +--ro protocol-version?   uint32
             |  +--ro refresh-time?       yang:timestamp
             |  +--ro response-time?      yang:timestamp
             |  +--ro purge-time?         yang:timestamp
             |  +--ro hold-time?          yang:timestamp
             |  +--ro record-lifetime?    yang:timestamp
             |  +--ro retry-interval?     uint32
             |  +--ro expire-interval?    uint32
             |  +--ro session-id?         uint16
             |  +--ro serial-full?        uint32
             |  +--ro serial-incremental? uint32
             +--ro pdu-counters
             |  ...
             +--ro error-pdu-counters
                ...
]]></artwork>
          </figure>
          <t>'pdu-counters': Indicates the send and receive statistics of various types of RTR PDUs,
   as shown in <xref target="fig-rtr-sess-pdu-cnt-tree"/>.</t>
          <figure anchor="fig-rtr-sess-pdu-cnt-tree">
            <name>RTR Session PDU Counters Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             ...
             +--ro statistics
             |  ...
             +--ro connection-data
             |  ...
             +--ro protocol-data
             |  ...
             +--ro pdu-counters
             |  +--ro serial-notify?    yang:zero-based-counter64
             |  +--ro cache-response?   yang:zero-based-counter64
             |  +--ro ipv4-prefix?      yang:zero-based-counter64
             |  +--ro ipv6-prefix?      yang:zero-based-counter64
             |  +--ro end-of-data?      yang:zero-based-counter64
             |  +--ro cache-reset?      yang:zero-based-counter64
             |  +--ro reset-query?      yang:zero-based-counter64
             |  +--ro serial-query?     yang:zero-based-counter64
             +--ro error-pdu-counters
                ...
]]></artwork>
          </figure>
          <t>'error-pdu-counters': Indicates error PDU statistics during RTR protocol interaction,
   as shown in <xref target="fig-rtr-sess-err-pdu-cnt-tree"/>.</t>
          <figure anchor="fig-rtr-sess-err-pdu-cnt-tree">
            <name>RTR Session Error PDU Counters Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             ...
             +--ro statistics
             |  ...
             +--ro connection-data
             |  ...
             +--ro protocol-data
             |  ...
             +--ro pdu-counters
             |  ...
             +--ro error-pdu-counters
                +--ro corrupt-data?      yang:zero-based-counter64
                +--ro internal-error?    yang:zero-based-counter64
                +--ro unsupported-protocol-version?
                |                        yang:zero-based-counter64
                +--ro unsupported-pdu-type?
                |                        yang:zero-based-counter64
                +--ro unexpected-protocol-version?
                |                        yang:zero-based-counter64
                +--ro no-data-available? yang:zero-based-counter64
                +--ro invalid-request?   yang:zero-based-counter64
                +--ro withdrawal-unknown-record?
                |                        yang:zero-based-counter64
                +--ro duplicate-announcement-received?
                                         yang:zero-based-counter64
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="yang-module">
        <name>YANG Module</name>
        <t>This YANG module has normative references to <xref target="RFC9911"/>, <xref target="RFC8349"/>, <xref target="RFC8294"/>,
  <xref target="RFC7317"/>, <xref target="RFC9644"/>, <xref target="RFC8343"/>, <xref target="RFC8177"/>, <xref target="RFC6810"/>, and <xref target="RFC8210"/>.</t>
        <sourcecode type="yang" markers="true" name="ietf-rpki-rtr@2026-03-31.yang"><![CDATA[
module ietf-rpki-rtr {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-rpki-rtr";
  prefix rpki-rtr;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types";
  }
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 9911: Common YANG Data Types";
  }
  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349: A YANG Data Model for Routing Management
                 (NMDA Version)";
  }
  import ietf-routing-types {
    prefix rt-types;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area";
  }
  import iana-crypt-hash {
    prefix ianach;
    reference
      "RFC 7317: A YANG Data Model for System Management";
  }
  import ietf-ssh-client {
    prefix ssh;
    reference
      "RFC 9644: YANG Groupings for SSH Clients and SSH Servers";
  }
  import ietf-interfaces {
    prefix if;
    reference
      "RFC 8343: A YANG Data Model for Interface Management";
  }
  import ietf-key-chain {
    prefix key-chain;
    reference
      "RFC 8177: YANG Data Model for Key Chains";
  }

  organization
    "IETF Secure Inter-Domain Routing Operations (SIDROPS)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/sidrops/>
     WG List:  SIDROPS <mailto:sidrops@ietf.org>

     Editor:   Yisong Liu
               <mailto:liuyisong@chinamobile.com>
     Editor:   Changwang Lin
               <mailto:linchangwang.04414@h3c.com>
     Editor:   Haibo Wang
               <mailto:rainsword.wang@huawei.com>
     Editor:   Jishnu Roy
               <mailto:jishnu.roy@hpe.com>
     Editor:   Jeffrey Haas
               <mailto:jeffrey.haas@hpe.com>
     Editor:   Hongwei Liu
               <mailto:liu.hongwei3@zte.com.cn>
     Editor:   Di Ma
               <mailto:madi@zdns.cn>";
  description
    "This module describes a YANG model for the Resource Public
     Key Infrastructure (RPKI) to Router (RTR) protocol management.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.

     Copyright (c) 2026 IETF Trust and the persons identified as
     authors of the code. All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     All revisions of IETF and IANA published modules can be found
     at the YANG Parameters registry group
     (https://www.iana.org/assignments/yang-parameters).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.";

  revision 2026-03-31 {
    description
      "Initial Version";
    reference
      "RFC XXXX: YANG Data Model for RPKI to Router Protocol";
  }

  identity rpki-rtr {
    base rt:routing-protocol;
    description
      "RTR protocol.";
  }

  grouping records-limit {
    description
      "Limit of records that can be received from the RPKI
       cache server.";
    leaf max-number {
      type uint64;
      description
        "Configures the maximum number of records that can be
         received from the RPKI cache server.";
    }
    leaf threshold-percentage {
      type rt-types:percentage;
      units "percent";
      description
        "Configures the threshold percentage for record maximum
         number.";
    }
    leaf over-threshold-action {
      type enumeration {
        enum alert-only {
          description
            "Generates alert messages.";
        }
        enum discard {
          description
            "Discards excess records.";
        }
        enum reconnect {
          description
            "Disconnects with the RPKI cache server,
             and tries to reconnect after reconnection
             timer expires.";
        }
        enum idle-forever {
          description
            "Disconnects with the RPKI cache server
             forever.";
        }
      }
      description
        "The action to taken when record number exceeds
         threshold.";
    }
  }

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol" {
    when "derived-from-or-self(rt:type, 'rpki-rtr')" {
      description
        "This augmentation is valid for a routing protocol
         instance of RTR.";
    }
    description
      "RTR protocol augmentation of ietf-routing module
       control-plane-protocol.";
    container rpki-rtr {
      description
        "Configuration parameters for the RTR protocol.";
      container sessions {
        description
          "Parameters of RPKI sessions to cache servers.";
        list session {
          key "server-address";
          description
            "Each entry contains parameters for a RPKI session
             identified by the 'server-address' key.";
          leaf server-address {
            type inet:ip-address;
            mandatory true;
            description
              "The IP address of the RPKI cache server resembling
               a session";
          }
          leaf server-port {
            type inet:port-number;
            description
              "The remote port for the connection
               to the RPKI cache server";
          }
          leaf local-address {
            type union {
              type inet:ip-address;
              type if:interface-ref;
            }
            description
              "The local IP (either IPv4 or IPv6) address to use for
               the connection to the RPKI cache server. This may be
               expressed as either an IP address or reference to the
               name of an interface.";
          }
          leaf local-port {
            type inet:port-number;
            description
              "The local port for the connection
               to the RPKI cache server";
          }
          leaf enabled {
            type boolean;
            default "true";
            description
              "Whether the RPKI cache server is enabled.";
          }
          leaf preference {
            type uint32;
            description
              "The router's preference to connect to that cache.
               The lower the value, the more preferred.";
          }
          leaf description {
            type string;
            description
              "Textual description of the RPKI cache server";
          }
          leaf reconnect-interval {
            type uint32 {
              range "1..30000";
            }
            units "minutes";
            description
              "Time interval for the reconnection timer.";
          }
          leaf session-state {
            type enumeration {
              enum idle {
                description
                  "The session is down.";
              }
              enum connect {
                description
                  "The session is waiting for the underlying
                   transport session to be established.";
              }
              enum establish {
                description
                  "The session is up.";
              }
              enum ex-incr {
                description
                  "Incremental update of records in progress.";
              }
              enum ex-full {
                description
                  "Full update of records in progress.";
              }
            }
            config false;
            description
              "The session state.";
          }
          leaf enable-authentication {
            type boolean;
            default "false";
            description
              "Whether the session is secured.";
          }
          container authentication {
            when "../enable-authentication = 'true'";
            description
              "Container for describing how a particular session
               is to be secured.";
            choice option {
              description
                "Choice for session securing methods.";
              case md5 {
                leaf md5-password {
                  type ianach:crypt-hash;
                  description
                    "The password for md5 authentication.";
                }
                description
                  "Uses TCP-MD5 to secure the session.";
              }
              case ssh {
                uses ssh:ssh-client-grouping {
                  reference
                    "RFC 9644: YANG Groupings for SSH Clients and
                               SSH Servers";
                }
                description
                  "Uses SSH to secure the session.";
              }
              case tcp-ao-keychain {
                leaf keychain-name {
                  type key-chain:key-chain-ref;
                  description
                    "Name of key chain.";
                  reference
                    "RFC 8177: YANG Data Model for Key Chains";
                }
                description
                  "Uses key-chain to secure the session.";
              }
            }
          }
          container vrp-limit {
            description
              "Limit of Validated ROA Payload records that can be
               received from the RPKI cache server.";
            uses records-limit;
          }
          container aspa-limit {
            description
              "Limit of Autonomous System Provider Authorization
               (ASPA) records that can be received from the RPKI
               cache server.";
            uses records-limit;
          }
          container statistics {
            config false;
            description
              "Statistics of the RPKI cache server.";
            leaf total-vrp-records {
              type yang:zero-based-counter64;
              description
                "The total number of Validated ROA Payloads
                 received from the RPKI cache server.";
            }
            leaf ipv4-vrp-records {
              type yang:zero-based-counter64;
              description
                "The number of Validated ROA Payloads for IPv4
                 prefixes received from the RPKI cache server.";
            }
            leaf ipv6-vrp-records {
              type yang:zero-based-counter64;
              description
                "The number of Validated ROA Payloads for IPv6
                 prefixes received from the RPKI cache server.";
            }
            leaf router-key-records {
              type yang:zero-based-counter64;
              description
                "The number of Router Keys received from the RPKI
                 cache server.";
            }
            leaf aspa-records {
              type yang:zero-based-counter64;
              description
                "The number of ASPAs received from the RPKI
                 cache server.";
            }
            leaf in-total-messages {
              type yang:zero-based-counter64;
              description
                "The total number of messages received from the
                 RPKI cache server.";
            }
            leaf out-total-messages {
              type yang:zero-based-counter64;
              description
                "The total number of messages transmitted to the
                 RPKI cache server.";
            }
          }
          container connection-data {
            config false;
            description
              "State information relating to the connection
               with the RPKI cache server.";
            leaf flaps {
              type uint32;
              description
                "Count for number of flaps observed on the
                 session.";
            }
            leaf last-session-up-down {
              type yang:timestamp;
              description
                "This timestamp indicates the time that the
                 RPKI-RTR session last transitioned in or out
                 of the UP state. The value is the timestamp in
                 hundredths of a second relative to the Unix Epoch
                 (Jan 1, 1970 00:00:00 UTC). The RPKI-RTR session
                 uptime can be computed by clients as the
                 difference between this value and the current time
                 in UTC (assuming the session is in the UP
                 state, per the session-state leaf).";
              reference
                "RFC 6810: The Resource Public Key Infrastructure
                           (RPKI) to Router Protocol";
            }
            leaf last-update-sync {
              type yang:timestamp;
              description
                "Time of last serial sync with cache server.";
            }
            leaf last-full-sync {
              type yang:timestamp;
              description
                "Time of last reset sync with cache server.";
            }
            leaf last-serial-query {
              type yang:timestamp;
              description
                "Time of last serial query sent to cache server.";
            }
            leaf last-reset-query {
              type yang:timestamp;
              description
                "Time of last reset query sent to cache server.";
            }
            leaf last-eod-received {
              type yang:timestamp;
              description
                "Time in microseconds at which last EOD was
                 received.";
            }
            leaf last-config-change {
              type yang:timestamp;
              description
                "Time of last host, port, VRF or local interface
                 change.";
            }
            leaf last-error {
              type yang:timestamp;
              description
                "Time of sending/receiving protocol error to/from
                 cache server.";
            }
            leaf last-connection-error {
              type yang:timestamp;
              description
                "Time of last connection error to cache server.";
            }
            leaf last-connection {
              type yang:timestamp;
              description
                "Time of last connection to cache server.";
            }
            leaf error-reason {
              type string;
              description
                "Reason for error in connection.";
            }
          }
          container protocol-data {
            config false;
            description
              "State parameters related to the RTR protocol";
            leaf protocol-version {
              type uint32;
              description
                "The version number of the RTR protocol.";
            }
            leaf refresh-time {
              type yang:timestamp;
              description
                "Configures the time a router waits in between
                 sending periodic serial queries to the RPKI
                 cache server.";
            }
            leaf response-time {
              type yang:timestamp;
              description
                "Configures the time a router waits for a response
                 after sending a serial or reset query to the RPKI
                 cache server.";
            }
            leaf purge-time {
              type yang:timestamp;
              description
                "Configures the time a router waits to keep data
                 from the RPKI cache server after the session
                 drops.";
            }
            leaf hold-time {
              type yang:timestamp;
              description
                "Hold-time for this session.";
            }
            leaf record-lifetime {
              type yang:timestamp;
              description
                "Record-lifetime this session.";
            }
            leaf retry-interval {
              type uint32;
              description
                "Number of seconds between poll error and cache
                 server poll";
            }
            leaf expire-interval {
              type uint32;
              description
                "Number of seconds to retain data synced from
                 cache server";
            }
            leaf session-id {
              type uint16;
              config false;
              description
                "When a cache server is started, it generates a
                 Session ID to identify the instance of the cache
                 and to bind it to the sequence of Serial Numbers
                 that cache instance will generate.";
              reference
                "RFC 6810: The Resource Public Key Infrastructure
                           (RPKI) to Router Protocol
                 RFC 8210: The Resource Public Key Infrastructure
                           (RPKI) to Router Protocol, Version 1";
            }
            leaf serial-full {
              type uint32;
              config false;
              description
                "A 32-bit strictly increasing unsigned integer which
                 wraps from 2^32-1 to 0. It denotes the logical
                 version of a cache. It resembles the latest full
                 query.";
              reference
                "RFC 6810: The Resource Public Key Infrastructure
                           (RPKI) to Router Protocol
                 RFC 8210: The Resource Public Key Infrastructure
                           (RPKI) to Router Protocol, Version 1";
            }
            leaf serial-incremental {
              type uint32;
              config false;
              description
                "A 32-bit strictly increasing unsigned integer which
                 wraps from 2^32-1 to 0. It denotes the logical
                 version of a cache. It resembles the latest
                 incremental query.";
              reference
                "RFC 6810: The Resource Public Key Infrastructure
                           (RPKI) to Router Protocol
                 RFC 8210: The Resource Public Key Infrastructure
                           (RPKI) to Router Protocol, Version 1";
            }
          }
          container pdu-counters {
            config false;
            description
              "Counters of PDUs that are received from cache";
            leaf serial-notify {
              type yang:zero-based-counter64;
              description
                "Serial notify PDU count";
            }
            leaf cache-response {
              type yang:zero-based-counter64;
              description
                "Cache response PDU count";
            }
            leaf ipv4-prefix {
              type yang:zero-based-counter64;
              description
                "IPv4 prefix PDU count";
            }
            leaf ipv6-prefix {
              type yang:zero-based-counter64;
              description
                "Ipv6 prefix PDU count";
            }
            leaf end-of-data {
              type yang:zero-based-counter64;
              description
                "End of data PDU count";
            }
            leaf cache-reset {
              type yang:zero-based-counter64;
              description
                "Cache reset PDU count";
            }
            leaf reset-query {
              type yang:zero-based-counter64;
              description
                "Reset query PDU count";
            }
            leaf serial-query {
              type yang:zero-based-counter64;
              description
                "Serial query PDU count";
            }
          }
          container error-pdu-counters {
            config false;
            description
              "Error PDU statistics during RTR protocol interaction";
            leaf corrupt-data {
              type yang:zero-based-counter64;
              description
                "Corrupt data PDU count";
            }
            leaf internal-error {
              type yang:zero-based-counter64;
              description
                "Internal error PDU count";
            }
            leaf unsupported-protocol-version {
              type yang:zero-based-counter64;
              description
                "Unsupported protocol version PDU count";
            }
            leaf unsupported-pdu-type {
              type yang:zero-based-counter64;
              description
                "Unsupported PDU type count";
            }
            leaf unexpected-protocol-version {
              type yang:zero-based-counter64;
              description
                "Unexpected protocol version PDU count";
            }
            leaf no-data-available {
              type yang:zero-based-counter64;
              description
                "No data available PDU count";
            }
            leaf invalid-request {
              type yang:zero-based-counter64;
              description
                "Invalid request PDU count";
            }
            leaf withdrawal-unknown-record {
              type yang:zero-based-counter64;
              description
                "Withdrawal of unknown record PDU count";
            }
            leaf duplicate-announcement-received {
              type yang:zero-based-counter64;
              description
                "Duplicate announcement received PDU count";
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="rpki-table-yang-module">
      <name>RPKI Table YANG Module</name>
      <section anchor="tree-view-1">
        <name>Tree View</name>
        <t>The full tree of the "ietf-rpki-table" YANG module is provided in <xref target="rpki-table-full-tree"/>.
   The following subsections list the subtree structures.</t>
        <section anchor="overall-structure-1">
          <name>Overall Structure</name>
          <t>The overall tree structure of the "ietf-rpki-table" YANG module is shown
   in <xref target="fig-rtr-table-overall-tree"/>.</t>
          <t>The "ietf-rpki-table" YANG module also augments the core routing YANG module
   "ietf-routing" specified in <xref target="RFC8349"/>. Specifically, this YANG module augments
   "/rt:routing".</t>
          <figure anchor="fig-rtr-table-overall-tree">
            <name>Overall RPKI Table Tree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-table
  augment /rt:routing:
    +--ro vrp-tables
    |  +--ro vrp-table* [name]
    |     ...
    +--ro router-key-tables
    |  +--ro router-key-table* [name]
    |     ...
    +--ro aspa-tables
       +--ro aspa-table* [name]
          ...
]]></artwork>
          </figure>
          <t>The "ietf-rpki-rtr" YANG module has three containers: 'vrp-tables', 'router-key-tables', and 'aspa-tables'.</t>
          <t>The 'vrp-tables' container lists the VRP records received from all RPKI cache servers, and each list 'vrp-table'
   identifies a VRP record table received from a RPKI cache server.</t>
          <t>The 'router-key-tables' container lists the Router Key records received from all RPKI cache servers, and each list
   'router-key-table' identifies a Router Key record table received from a RPKI cache server.</t>
          <t>The 'aspa-tables' container lists the ASPA records received from all RPKI cache servers, and each list
   'aspa-table' identifies an ASPA record table received from a RPKI cache server.</t>
        </section>
        <section anchor="vrp-table">
          <name>VRP Table</name>
          <t>The structure of the list 'vrp-table' is shown in <xref target="fig-rpki-table-vrp-subtree"/>.</t>
          <figure anchor="fig-rpki-table-vrp-subtree">
            <name>RPKI VRP Table Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-table
  augment /rt:routing:
    +--ro vrp-tables
    |  +--ro vrp-table* [name]
    |     +--ro name                      string
    |     +--ro ccr-roapayloadstate-hash? ccr-hash
    |     +--ro ipv4
    |     |  +--ro vrps
    |     |  |  +--ro vrp* [prefix max-len asn source]
    |     |  |     +--ro prefix       inet:ipv4-prefix
    |     |  |     +--ro max-len      ipv4-prefix-length
    |     |  |     +--ro asn          inet:as-number
    |     |  |     +--ro source       union
    |     |  +--ro total-records?     yang:gauge32
    |     |  +--ro records-added?     yang:counter64
    |     |  +--ro records-deleted?   yang:counter64
    |     +--ro ipv6
    |        +--ro vrps
    |        |  +--ro vrp* [prefix max-len asn source]
    |        |     +--ro prefix       inet:ipv6-prefix
    |        |     +--ro max-len      ipv6-prefix-length
    |        |     +--ro asn          inet:as-number
    |        |     +--ro source       union
    |        +--ro total-records?     yang:gauge32
    |        +--ro records-added?     yang:counter64
    |        +--ro records-deleted?   yang:counter64
    +--ro router-key-tables
    |  +--ro router-key-table* [name]
    |     ...
    +--ro aspa-tables
       +--ro aspa-table* [name]
          ...
]]></artwork>
          </figure>
          <t>The 'vrp-table' data nodes are described as follows:</t>
          <t>'name': Indicates the name of the VRP table.</t>
          <t>'ccr-roapayloadstate-hash': Indicates the CCR state hash for the ROA payload.</t>
          <t>'ipv4': Indicates detailed information and statistics of IPv4 VRP records in the VRP table.</t>
          <artwork><![CDATA[
  This data node includes 'vrps', 'total-records', 'records-added',
  and 'records-deleted'. The 'vrps' indicates all IPv4 VRP records
  in the VRP table, and each list 'vrp' indicates a IPv4 VRP
  record, which includes the IPv4 prefix ('prefix'), the maximum
  IPv4 prefix length ('max-len'), the origin AS number of the IPv4
  prefix ('asn'), and the source of the IPv4 VRP record ('source').
  The 'total-records' indicates the total number of IPv4 VRP
  records. The 'records-added' indicates the number of IPv4 VRP
  records cumulatively added. The 'records-deleted' indicates the
  number of IPv4 VRP records cumulatively deleted.
]]></artwork>
          <t>'ipv6': Indicates detailed information and statistics of ipv6 VRP records in the VRP table.</t>
          <artwork><![CDATA[
  This data node has the same structure as the data node 'ipv4'.
  The 'vrps' indicates all IPv6 VRP records in the VRP table, and
  each list 'vrp' indicates a IPv6 VRP record, which includes the
  IPv6 prefix ('prefix'), the maximum IPv6 prefix length
  ('max-len'), the origin AS number of the IPv6 prefix ('asn'), and
  the source of the IPv6 VRP record ('source'). The 'total-records'
  indicates the total number of IPv6 VRP records. The
  'records-added' indicates the number of IPv6 VRP records
  cumulatively added. The 'records-deleted' indicates the number of
  IPv6 VRP records cumulatively deleted.
]]></artwork>
        </section>
        <section anchor="router-key-table">
          <name>Router Key Table</name>
          <t>The structure of the list 'router-key-table' is shown in <xref target="fig-rpki-table-rk-subtree"/>.</t>
          <figure anchor="fig-rpki-table-rk-subtree">
            <name>RPKI Router Key Table Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-table
  augment /rt:routing:
    +--ro vrp-tables
    |  +--ro vrp-table* [name]
    |     ...
    +--ro router-key-tables
    |  +--ro router-key-table* [name]
    |     +--ro name                     string
    |     +--ro ccr-routerkeystate-hash? ccr-hash
    |     +--ro router-keys
    |        +--ro router-key* [ski asn key server-address]
    |           +--ro ski            subject-key-id
    |           +--ro asn            inet:as-number
    |           +--ro key            binary
    |           +--ro server-address inet:ip-address
    +--ro aspa-tables
       +--ro aspa-table* [name]
          ...
]]></artwork>
          </figure>
          <t>The 'router-key-table' data nodes are described as follows:</t>
          <t>'name': Indicates the name of the Router Key table.</t>
          <t>'ccr-routerkeystate-hash': Indicates the CCR state hash for the Router Key payload.</t>
          <t>'router-keys': Indicates detailed information of Router Key records in the Router Key table.</t>
          <artwork><![CDATA[
  This data node only includes a list 'router-key', which contains
  the Subject Key Identifier (SKI) of the Router Key ('ski'), the
  AS number of the router which the Router Key belongs to ('asn'),
  the subjectPublicKeyInfo value of the Router Key (see [RFC8608])
  ('key'), and the IP address of the RPKI cache server
  ('server-address').
]]></artwork>
        </section>
        <section anchor="aspa-table">
          <name>ASPA Table</name>
          <t>The structure of the list 'aspa-table' is shown in <xref target="fig-rpki-table-aspa-subtree"/>.</t>
          <figure anchor="fig-rpki-table-aspa-subtree">
            <name>RPKI ASPA Table Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-table
  augment /rt:routing:
    +--ro vrp-tables
    |  +--ro vrp-table* [name]
    |     ...
    +--ro router-key-tables
    |  +--ro router-key-table* [name]
    |     ...
    +--ro aspa-tables
       +--ro aspa-table* [name]
          +--ro name                       string
          +--ro ccr-aspapayloadstate-hash? ccr-hash
          +--ro aspas* [customer-asn]
             +--ro customer-asn        inet:as-number
             +--ro server-address?     inet:ip-address
             +--ro provider-asns* [provider-asn]
                +--ro provider-asn     inet:as-number
]]></artwork>
          </figure>
          <t>The 'aspa-table' data nodes are described as follows:</t>
          <t>'name': Indicates the name of the ASPA table.</t>
          <t>'ccr-aspapayloadstate-hash': Indicates the CCR state hash for the ASPA payload.</t>
          <t>'aspas': Indicates detailed information of ASPA records in the ASPA table.</t>
          <artwork><![CDATA[
  This data node includes a leaf 'customer-asn', a leaf
  'server-address', and a list 'provider-asns'. The 'customer-asn'
  indicates the AS number of a customer. The 'server-address'
  indicates the IP address of the RPKI cache server from which ASPA
  records are received. The list 'provider-asns' contains a leaf
  'provider-asn' which indicates the AS number of a provider of the
  customer.
]]></artwork>
        </section>
      </section>
      <section anchor="yang-module-1">
        <name>YANG Module</name>
        <t>This YANG module has normative references to <xref target="RFC9911"/>, <xref target="RFC8349"/>,
   <xref target="RFC6487"/>, <xref target="RFC8608"/>, and <xref target="I-D.ietf-sidrops-rpki-ccr"/>.</t>
        <artwork><![CDATA[
  Note that the "RFC YYYY" in this YANG module must be replaced by
  the publication version of [I-D.ietf-sidrops-rpki-ccr] and this
  note is to be removed after the publication of
  [I-D.ietf-sidrops-rpki-ccr].
]]></artwork>
        <sourcecode type="yang" markers="true" name="ietf-rpki-table@2026-03-31.yang"><![CDATA[
module ietf-rpki-table {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-rpki-table";
  prefix rpki-table;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types";
  }
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 9911: Common YANG Data Types";
  }
  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349: A YANG Data Model for Routing Management
                 (NMDA Version)";
  }

  organization
    "IETF Secure Inter-Domain Routing Operations (SIDROPS)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/sidrops/>
     WG List:  SIDROPS <mailto:sidrops@ietf.org>

     Editor:   Yisong Liu
               <mailto:liuyisong@chinamobile.com>
     Editor:   Changwang Lin
               <mailto:linchangwang.04414@h3c.com>
     Editor:   Haibo Wang
               <mailto:rainsword.wang@huawei.com>
     Editor:   Jishnu Roy
               <mailto:jishnu.roy@hpe.com>
     Editor:   Jeffrey Haas
               <mailto:jeffrey.haas@hpe.com>
     Editor:   Hongwei Liu
               <mailto:liu.hongwei3@zte.com.cn>
     Editor:   Di Ma
               <mailto:madi@zdns.cn>";
  description
    "This module describes a YANG model for the Resource Public
     Key Infrastructure (RPKI) to Router (RTR) protocol data
     management.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.

     Copyright (c) 2026 IETF Trust and the persons identified as
     authors of the code. All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     All revisions of IETF and IANA published modules can be found
     at the YANG Parameters registry group
     (https://www.iana.org/assignments/yang-parameters).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.";

  revision 2026-03-31 {
    description
      "Initial Version";
    reference
      "RFC XXXX: YANG Data Model for RPKI to Router Protocol";
  }

  typedef ipv4-prefix-length {
    type uint8 {
      range "0 .. 32";
    }
    description
      "IPv4 Prefix Length.";
  }

  typedef ipv6-prefix-length {
    type uint8 {
      range "0 .. 128";
    }
    description
      "IPv6 Prefix Length.";
  }

  typedef subject-key-id {
    type binary {
      length "20";
    }
    description
      "Subject Key Identifier.";
  }

  typedef ccr-hash {
    type binary {
      length "32";
    }
    description
      "Canonical Cache Representation (CCR) state hash.

       This represents a 256-bit SHA-256 hash of the canonical
       representation of RPKI data as defined in RFC YYYY.

       The hash provides a compact, verifiable representation
       of the complete state of RPKI validation data, enabling
       efficient synchronization and consistency verification
       between caches.";
    reference
      "RFC YYYY: A Profile for Resource Public Key Infrastructure
                 (RPKI) Canonical Cache Representation (CCR)";
  }

  grouping aspa-overall-records {
    description
      "Autonomous System Provider Authorization (ASPA) records
       received from all RPKI cache servers.";
    list aspas {
      key "customer-asn";
      description
        "An entry for ASPA.";
      leaf customer-asn {
        type inet:as-number;
        description
          "The AS number of a customer.";
      }
      leaf server-address {
        type inet:ip-address;
        description
          "IP address of the RPKI cache server.";
      }
      list provider-asns {
        key "provider-asn";
        description
          "Providers of the customer.";
        leaf provider-asn {
          type inet:as-number;
          description
            "The AS number of a provider.";
        }
      }
    }
  }

  augment "/rt:routing" {
    description
      "RPKI tables augmentation of ietf-routing module.";
    container vrp-tables {
      config false;
      description
        "List of tables containing Validated ROA Payloads
         received from all RPKI cache servers.";
      list vrp-table {
        key "name";
        description
          "Table of Validated ROA Payloads received from
           a RPKI cache server.";
        leaf name {
          type string;
          description
            "Name of the Validated ROA Payload table.";
        }
        leaf ccr-roapayloadstate-hash {
          type ccr-hash;
          description
            "CCR state hash for the ROA payload.

             This hash represents the canonical state of this
             specific ROA entry as defined in the CCR specification.
             It is optional and can be used to verify the integrity
             and consistency of ROA data originating from the RPKI
             cache.";
          reference
            "RFC YYYY: A Profile for Resource Public Key
                       Infrastructure (RPKI) Canonical Cache
                       Representation (CCR)";
        }
        container ipv4 {
          config false;
          description
            "Container for IPv4 Validated ROA Payloads table.";
          container vrps {
            config false;
            description
              "IPv4 Validated ROA Payloads received from the RPKI
               cache server.";
            list vrp {
              key "prefix max-len asn source";
              description
                "An entry of IPv4 Validated ROA Payload.";
              leaf prefix {
                type inet:ipv4-prefix;
                description
                  "The IPv4 prefix of the IPv4 Validated ROA
                   Payload.";
              }
              leaf max-len {
                type ipv4-prefix-length;
                description
                  "Denotes the longest IPv4 prefix allowed. This
                   MUST NOT be less than the IPv4 prefix length.";
              }
              leaf asn {
                type inet:as-number;
                description
                  "The origin AS number of the IPv4 Validated ROA
                   Payload.";
              }
              leaf source {
                type union {
                  type string;
                  type inet:ip-address;
                }
                description
                  "String representing the source of the record
                   in this record-set.";
              }
            }
          }
          leaf total-records {
            type yang:gauge32;
            description
              "Total number of IPv4 Validated ROA Payload records.";
          }
          leaf records-added {
            type yang:counter64;
            description
              "Number of IPv4 Validated ROA Payload records
               cumulatively added.";
          }
          leaf records-deleted {
            type yang:counter64;
            description
              "Number of IPv4 Validated ROA Payload records
               cumulatively deleted.";
          }
        }
        container ipv6 {
          config false;
          description
            "Container for IPv6 Validated ROA Payloads table.";
          container vrps {
            config false;
            description
              "IPv6 Validated ROA Payloads received from the RPKI
               cache server.";
            list vrp {
              key "prefix max-len asn source";
              description
                "An entry for IPv6 Validated ROA Payload.";
              leaf prefix {
                type inet:ipv6-prefix;
                description
                  "The IPv6 prefix of the IPv6 Validated ROA
                   Payload.";
              }
              leaf max-len {
                type ipv6-prefix-length;
                description
                  "Denotes the longest IPv6 prefix allowed. This
                   MUST NOT be less than the prefix length.";
              }
              leaf asn {
                type inet:as-number;
                description
                  "The origin AS number of the IPv6 Validated ROA
                   Payload.";
              }
              leaf source {
                type union {
                  type string;
                  type inet:ip-address;
                }
                description
                  "Representing the source of the record in this
                   record-set. Either a server IP or a source file
                   of static records.";
              }
            }
          }
          leaf total-records {
            type yang:gauge32;
            description
              "Total number of IPv6 Validated ROA Payload records.";
          }
          leaf records-added {
            type yang:counter64;
            description
              "Number of IPv6 Validated ROA Payload records
               cumulatively added.";
          }
          leaf records-deleted {
            type yang:counter64;
            description
              "Number of IPv6 Validated ROA Payload records
               cumulatively deleted.";
          }
        }
      }
    }
    container router-key-tables {
      config false;
      description
        "List of Router Key table received from all RPKI cache
         servers.";
      list router-key-table {
        key "name";
        description
          "Table of Router Keys received from a RPKI cache
           server.";
        leaf name {
          type string;
          description
            "Name of the Router Key table.";
        }
        leaf ccr-routerkeystate-hash {
          type ccr-hash;
          description
            "CCR state hash for the Router Key payload.

             This hash represents the canonical state of this
             specific Router Key entry as defined in the CCR
             specification. It is optional and can effectively
             verify the consistency of BGPsec Router Key data
             derived from the RPKI cache.";
          reference
            "RFC YYYY: A Profile for Resource Public Key
                       Infrastructure (RPKI) Canonical Cache
                       Representation (CCR)";
        }
        container router-keys {
          config false;
          description
            "Router Keys received from the RPKI cache server.";
          list router-key {
            key "ski asn key server-address";
            description
              "An entry for Router Key.";
            leaf ski {
              type subject-key-id;
              description
                "A Router Key's Subject Key Identifier (SKI).";
              reference
                "RFC 6487: A Profile for X.509 PKIX Resource
                           Certificates";
            }
            leaf asn {
              type inet:as-number;
              description
                "The AS number of the router which the key
                 belongs to.";
            }
            leaf key {
              type binary;
              description
                "A Router Key's subjectPublicKeyInfo value, as
                 described in Section 3.1.1 of RFC 8608, encoded
                 using ASN.1 Distinguished Encoding Eules (DER).";
              reference
                "RFC 8608: BGPsec Algorithms, Key Formats, and
                           Signature Formats";
            }
            leaf server-address {
              type inet:ip-address;
              description
                "IP address of the RPKI cache server.";
            }
          }
        }
      }
    }
    container aspa-tables {
      config false;
      description
        "List of tables of ASPAs received from all RPKI cache
         servers.";
      list aspa-table {
        key "name";
        description
          "Table of ASPAs received from a RPKI cache server.";
        leaf name {
          type string;
          description
            "Name of the ASPA table.";
        }
        leaf ccr-aspapayloadstate-hash {
          type ccr-hash;
          description
            "CCR state hash for the ASPA payload.

             This hash represents the canonical state of this
             specific ASPA entry as defined in the CCR
             specification. It is optional and facilitates
             consistency checking for AS path validation data
             originating from the RPKI cache.";
          reference
            "RFC YYYY: A Profile for Resource Public Key
                       Infrastructure (RPKI) Canonical Cache
                       Representation (CCR)";
        }
        uses aspa-overall-records;
      }
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Note to the RFC Editor - remove this section before publication, as
   well as remove the reference to <xref target="RFC7942"/>.</t>
      <t>This section records the status of known implementations of the
   protocol defined by this specification at the time of posting of this
   Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>.
   The description of implementations in this section is intended to
   assist the IETF in its decision processes in progressing drafts to
   RFCs. Please note that the listing of any individual implementation
   here does not imply endorsement by the IETF. Furthermore, no effort
   has been spent to verify the information presented here that was
   supplied by IETF contributors. This is not intended as, and must not
   be construed to be, a catalog of available implementations or their
   features. Readers are advised to note that other implementations may
   exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups
   to assign due consideration to documents that have the benefit of
   running code, which may serve as evidence of valuable experimentation
   and feedback that have made the implemented protocols more mature.
   It is up to the individual working groups to use this information as
   they see fit".</t>
      <section anchor="juniper-networks-hpe">
        <name>Juniper Networks (HPE)</name>
        <ul spacing="normal">
          <li>
            <t>Organization: Juniper Networks (HPE).</t>
          </li>
          <li>
            <t>Implementation: The following leaves/parameters in description are implemented.</t>
          </li>
          <li>
            <t>Description: YANG model leaves that are supported:
            </t>
            <ul spacing="normal">
              <li>
                <t>Ietf-rpki-rtr.yang</t>
              </li>
            </ul>
            <artwork type="ascii-art"><![CDATA[
     Server-address
     Session-state
     Total-vrp-records
     Ipv4-vrp-records
     Ipv6-vrp-records
     Refresh-time
     Hold-time
     Serial-incremental
     Serial-full
     Last-session-up-down
     Las-update-sync
     Last-eod-received
     Last-serial-query
     Last-reset-query
     Flaps
]]></artwork>
            <ul spacing="normal">
              <li>
                <t>Ietf-rpki-table.yang</t>
              </li>
            </ul>
            <artwork type="ascii-art"><![CDATA[
     Ipv4 | ipv6: 
       Total-records
       Records-added
       Records-deleted.
]]></artwork>
          </li>
          <li>
            <t>Maturity Level: Ready-for-deployment</t>
          </li>
          <li>
            <t>Coverage:</t>
          </li>
          <li>
            <t>Version: Draft-03</t>
          </li>
          <li>
            <t>Licensing: N/A</t>
          </li>
          <li>
            <t>Implementation experience: Nothing specific.</t>
          </li>
          <li>
            <t>Contact: jishnu.roy@hpe.com</t>
          </li>
          <li>
            <t>Last updated: March 30, 2026</t>
          </li>
        </ul>
      </section>
      <section anchor="new-h3c-technologies">
        <name>New H3C Technologies</name>
        <ul spacing="normal">
          <li>
            <t>Organization: New H3C Technologies.</t>
          </li>
          <li>
            <t>Implementation: The following leaves/parameters in description are implemented.</t>
          </li>
          <li>
            <t>Description: "ietf-rpki-rtr" and "ietf-rpki-table" YANG modules
have been implemented in New H3C Products.</t>
          </li>
          <li>
            <t>Maturity Level: Ready-for-deployment</t>
          </li>
          <li>
            <t>Coverage: All data nodes of "ietf-rpki-rtr" and "ietf-rpki-table" YANG modules.</t>
          </li>
          <li>
            <t>Version: Draft-03</t>
          </li>
          <li>
            <t>Licensing: N/A</t>
          </li>
          <li>
            <t>Implementation experience: Nothing specific.</t>
          </li>
          <li>
            <t>Contact: li_meng_limeng@h3c.com</t>
          </li>
          <li>
            <t>Last updated: March 30, 2026</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section is modeled after the template described in Section 3.7.1
   of <xref target="RFC9907"/>.</t>
      <t>The "ietf-rpki-rtr" YANG module and "ietf-rpki-table" YANG module
   define data models that are designed to be accessed via YANG-based
   management protocols, such as Network Configuration
   Protocol (NETCONF) <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>.
   These YANG-based management protocols (1) have to use a secure transport layer
   (e.g., Secure Shell (SSH) <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and QUIC <xref target="RFC9000"/>)
   and (2) have to use mutual authentication.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in these YANG modules that
   are writable/creatable/deletable (i.e., config true, which is the
   default). All writable data nodes are likely to be sensitive or vulnerable
   in some network environments. Write operations (e.g., edit-config) and
   delete operations to these data nodes without proper protection or 
   authentication can have a negative effect on network operations.
   The following subtrees and data nodes have particular sensitivities/vulnerabilities:</t>
      <artwork><![CDATA[
  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:server-address

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:server-port

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:local-address

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:local-port

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:enabled

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:preference

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:description

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:enable-authentication

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:authentication

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:vrp-limit

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:aspa-limit
]]></artwork>
      <t>Some of the readable data nodes in these YANG modules may be
   considered sensitive or vulnerable in some network environments. It
   is thus important to control read access (e.g., via get, get-config,
   or notification) to these data nodes. Specifically, the following
   subtrees and data nodes have particular
   sensitivities/vulnerabilities:</t>
      <artwork><![CDATA[
  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:session-state

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:statistics

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:connection-data

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:protocol-data

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:pdu-counters

  rpki-rtr:rpki-rtr/rpki-rtr:sessions/rpki-rtr:session/rpki-
  rtr:error-pdu-counters

  rt:routing/rpki-table:vrp-tables/rpki-table:vrp-table

  rt:routing/rpki-table:router-key-tables/rpki-table:router-key-
  table

  rt:routing/rpki-table:aspa-tables/rpki-table:aspa-table
]]></artwork>
      <t>There are no particularly sensitive RPC or action operations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="rpki-to-router-yang-module-registry">
        <name>RPKI to Router YANG Module Registry</name>
        <t>IANA is requested to register the following URI in the "ns" registry
   within the "IETF XML Registry" group (<xref target="RFC3688"/>):</t>
        <artwork type="ascii-art"><![CDATA[
   URI: urn:ietf:params:xml:ns:yang:ietf-rpki-rtr
   Registrant Contact: The IESG.
   XML: N/A; the requested URI is an XML namespace
]]></artwork>
        <t>IANA is requested to register the following YANG modules in the
   "YANG Module Names" registry (<xref target="RFC6020"/>) within the "YANG
   Parameters" registry group.</t>
        <artwork type="ascii-art"><![CDATA[
   Name: ietf-rpki-rtr
   Maintained by IANA? N
   Namespace: urn:ietf:params:xml:ns:yang:ietf-rpki-rtr
   Prefix: rpki-rtr
   Reference: RFC XXXX
]]></artwork>
      </section>
      <section anchor="rpki-table-yang-module-registry">
        <name>RPKI Table YANG Module Registry</name>
        <t>IANA is requested to register the following URI in the "ns" registry
   within the "IETF XML Registry" group (<xref target="RFC3688"/>):</t>
        <artwork type="ascii-art"><![CDATA[
   URI: urn:ietf:params:xml:ns:yang:ietf-rpki-table
   Registrant Contact: The IESG.
   XML: N/A; the requested URI is an XML namespace
]]></artwork>
        <t>IANA is requested to register the following YANG module in the "YANG
   Module Names" registry (<xref target="RFC6020"/>) within the "YANG Parameters"
   registry group.</t>
        <artwork type="ascii-art"><![CDATA[
   Name: ietf-rpki-table
   Maintained by IANA? N
   Namespace: urn:ietf:params:xml:ns:yang:ietf-rpki-table
   Prefix: rpki-table
   Reference: RFC XXXX
]]></artwork>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Job Snijders, Santosh Kolenchery,
Ebben Xavier Aries, Tapasee Ratna Goutam and Haiyang Zhang for their
review and discussion of this document.</t>
	  <t>
   Thanks to Per Andersson for the Yangdoctors Early review.
      </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="RFC3688" target="https://www.rfc-editor.org/info/rfc3688" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3688.xml">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6020.xml">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC6487" target="https://www.rfc-editor.org/info/rfc6487" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6487.xml">
          <front>
            <title>A Profile for X.509 PKIX Resource Certificates</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="G. Michaelson" initials="G." surname="Michaelson"/>
            <author fullname="R. Loomans" initials="R." surname="Loomans"/>
            <date month="February" year="2012"/>
            <abstract>
              <t>This document defines a standard profile for X.509 certificates for the purpose of supporting validation of assertions of "right-of-use" of Internet Number Resources (INRs). The certificates issued under this profile are used to convey the issuer's authorization of the subject to be regarded as the current holder of a "right-of-use" of the INRs that are described in the certificate. This document contains the normative specification of Certificate and Certificate Revocation List (CRL) syntax in the Resource Public Key Infrastructure (RPKI). This document also specifies profiles for the format of certificate requests and specifies the Relying Party RPKI certificate path validation procedure. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6487"/>
          <seriesInfo name="DOI" value="10.17487/RFC6487"/>
        </reference>
        <reference anchor="RFC6810" target="https://www.rfc-editor.org/info/rfc6810" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6810.xml">
          <front>
            <title>The Resource Public Key Infrastructure (RPKI) to Router Protocol</title>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>In order to verifiably validate the origin Autonomous Systems of BGP announcements, routers need a simple but reliable mechanism to receive Resource Public Key Infrastructure (RFC 6480) prefix origin data from a trusted cache. This document describes a protocol to deliver validated prefix origin data to routers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6810"/>
          <seriesInfo name="DOI" value="10.17487/RFC6810"/>
        </reference>
        <reference anchor="RFC7317" target="https://www.rfc-editor.org/info/rfc7317" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7317.xml">
          <front>
            <title>A YANG Data Model for System Management</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="August" year="2014"/>
            <abstract>
              <t>This document defines a YANG data model for the configuration and identification of some common system properties within a device containing a Network Configuration Protocol (NETCONF) server. This document also includes data node definitions for system identification, time-of-day management, user management, DNS resolver configuration, and some protocol operations for system management.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7317"/>
          <seriesInfo name="DOI" value="10.17487/RFC7317"/>
        </reference>
        <reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml">
          <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>
        <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>
        <reference anchor="RFC8177" target="https://www.rfc-editor.org/info/rfc8177" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8177.xml">
          <front>
            <title>YANG Data Model for Key Chains</title>
            <author fullname="A. Lindem" initials="A." role="editor" surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="D. Yeung" initials="D." surname="Yeung"/>
            <author fullname="I. Chen" initials="I." surname="Chen"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>This document describes the key chain YANG data model. Key chains are commonly used for routing protocol authentication and other applications requiring symmetric keys. A key chain is a list containing one or more elements containing a Key ID, key string, send/accept lifetimes, and the associated authentication or encryption algorithm. By properly overlapping the send and accept lifetimes of multiple key chain elements, key strings and algorithms may be gracefully updated. By representing them in a YANG data model, key distribution can be automated.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8177"/>
          <seriesInfo name="DOI" value="10.17487/RFC8177"/>
        </reference>
        <reference anchor="RFC8210" target="https://www.rfc-editor.org/info/rfc8210" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8210.xml">
          <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>
        <reference anchor="RFC8294" target="https://www.rfc-editor.org/info/rfc8294" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8294.xml">
          <front>
            <title>Common YANG Data Types for the Routing Area</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="C. Hopps" initials="C." surname="Hopps"/>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>This document defines a collection of common data types using the YANG data modeling language. These derived common types are designed to be imported by other modules defined in the routing area.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8294"/>
          <seriesInfo name="DOI" value="10.17487/RFC8294"/>
        </reference>
        <reference anchor="RFC8341" target="https://www.rfc-editor.org/info/rfc8341" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC8343" target="https://www.rfc-editor.org/info/rfc8343" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8343.xml">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes definitions for configuration and system state (status information and counters for the collection of statistics).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7223.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8343"/>
          <seriesInfo name="DOI" value="10.17487/RFC8343"/>
        </reference>
        <reference anchor="RFC8349" target="https://www.rfc-editor.org/info/rfc8349" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8349.xml">
          <front>
            <title>A YANG Data Model for Routing Management (NMDA Version)</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document specifies three YANG modules and one submodule. Together, they form the core routing data model that serves as a framework for configuring and managing a routing subsystem. It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions. The core routing data model provides common building blocks for such extensions -- routes, Routing Information Bases (RIBs), and control-plane protocols.</t>
              <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA). This document obsoletes RFC 8022.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8349"/>
          <seriesInfo name="DOI" value="10.17487/RFC8349"/>
        </reference>
        <reference anchor="RFC8608" target="https://www.rfc-editor.org/info/rfc8608" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8608.xml">
          <front>
            <title>BGPsec Algorithms, Key Formats, and Signature Formats</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="O. Borchert" initials="O." surname="Borchert"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document specifies the algorithms, algorithm parameters, asymmetric key formats, asymmetric key sizes, and signature formats used in BGPsec (Border Gateway Protocol Security). This document updates RFC 7935 ("The Profile for Algorithms and Key Sizes for Use in the Resource Public Key Infrastructure") and obsoletes RFC 8208 ("BGPsec Algorithms, Key Formats, and Signature Formats") by adding Documentation and Experimentation Algorithm IDs, correcting the range of unassigned algorithms IDs to fill the complete range, and restructuring the document for better reading.</t>
              <t>This document also includes example BGPsec UPDATE messages as well as the private keys used to generate the messages and the certificates necessary to validate those signatures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8608"/>
          <seriesInfo name="DOI" value="10.17487/RFC8608"/>
        </reference>
        <reference anchor="RFC9644" target="https://www.rfc-editor.org/info/rfc9644" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9644.xml">
          <front>
            <title>YANG Groupings for SSH Clients and SSH Servers</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>This document presents three IETF-defined YANG modules and a script used to create four supporting IANA modules.</t>
              <t>The three IETF modules are ietf-ssh-common, ietf-ssh-client, and ietf-ssh-server. The "ietf-ssh-client" and "ietf-ssh-server" modules are the primary productions of this work, supporting the configuration and monitoring of Secure Shell (SSH) clients and servers.</t>
              <t>The four IANA modules are iana-ssh-encryption-algs, iana-ssh-key-exchange-algs, iana-ssh-mac-algs, and iana-ssh-public-key-algs. These modules each define YANG enumerations providing support for an IANA-maintained algorithm registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9644"/>
          <seriesInfo name="DOI" value="10.17487/RFC9644"/>
        </reference>
        <reference anchor="RFC9911" target="https://www.rfc-editor.org/info/rfc9911">
          <front>
            <title>Common YANG Data Types</title>
            <author initials="J." surname="Schowalder" fullname="Jürgen Schowalder" role="editor">
              <organization/>
            </author>
            <date year="2025" month="December"/>
          </front>
          <refcontent>RFC 9911, DOI 10.17487/RFC9911</refcontent>
        </reference>
        <reference anchor="I-D.ietf-sidrops-8210bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-8210bis-25" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-sidrops-8210bis.xml">
          <front>
            <title>The Resource Public Key Infrastructure (RPKI) to Router Protocol, Version 2</title>
            <author fullname="Randy Bush" initials="R." surname="Bush">
              <organization>Arrcus, DRL, &amp; IIJ Research</organization>
            </author>
            <author fullname="Rob Austein" initials="R." surname="Austein">
              <organization>Dragon Research Labs</organization>
            </author>
            <author fullname="Tom Harrison" initials="T." surname="Harrison">
              <organization>Asia Pacific Network Information Centre</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>In order to validate the origin Autonomous Systems (ASes) and Autonomous System relationships behind BGP announcements, routers need a simple but reliable mechanism to receive Resource Public Key Infrastructure (RFC6480) prefix origin data, Router Keys, and ASPA data from a trusted cache. This document describes a protocol to deliver them. This document describes version 2 of the RPKI-Router protocol. [RFC6810] describes version 0, and [RFC8210] describes version 1. This document is compatible with both.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-8210bis-25"/>
        </reference>
        <reference anchor="I-D.ietf-sidrops-rpki-ccr" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-rpki-ccr-08" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-sidrops-rpki-ccr.xml">
          <front>
            <title>A Profile for Resource Public Key Infrastructure (RPKI) Canonical Cache Representation (CCR)</title>
            <author fullname="Job Snijders" initials="J." surname="Snijders">
              <organization>BSD Software Development</organization>
            </author>
            <author fullname="Bart Bakker" initials="B." surname="Bakker">
              <organization>RIPE NCC</organization>
            </author>
            <author fullname="Tim Bruijnzeels" initials="T." surname="Bruijnzeels">
              <organization>RIPE NCC</organization>
            </author>
            <author fullname="Theo Buehler" initials="T." surname="Buehler">
              <organization>OpenBSD</organization>
            </author>
            <date day="3" month="June" year="2026"/>
            <abstract>
              <t>This document specifies a Canonical Cache Representation (CCR) content type for use with the Resource Public Key Infrastructure (RPKI). CCR is a Distinguished Encoding Rules (DER) encoded data interchange format which can be used to represent various aspects of the state of a validated RPKI cache at a particular point in time. The CCR profile is a compact and versatile format, well-suited for a variety of applications, for example, audit trails, analytics pipelines, and validated payload dissemination.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-rpki-ccr-08"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4252" target="https://www.rfc-editor.org/info/rfc4252" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4252.xml">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml">
          <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="RFC7942" target="https://www.rfc-editor.org/info/rfc7942" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC8040" target="https://www.rfc-editor.org/info/rfc8040" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC8340" target="https://www.rfc-editor.org/info/rfc8340" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8340.xml">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9000" target="https://www.rfc-editor.org/info/rfc9000" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9000.xml">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9907" target="https://www.rfc-editor.org/info/rfc9907" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9907.xml">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules.</t>
              <t>This document obsoletes RFC 8407; it also updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="9907"/>
          <seriesInfo name="DOI" value="10.17487/RFC9907"/>
        </reference>
      </references>
    </references>
    <?line 2109?>

<section anchor="rtr-full-tree">
      <name>Full Tree of RPKI to Router YANG Module</name>
      <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-rtr
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--rw rpki-rtr
       +--rw sessions
          +--rw session* [server-address]
             +--rw server-address           inet:ip-address
             +--rw server-port?             inet:port-number
             +--rw local-address?           union
             +--rw local-port?              inet:port-number
             +--rw enabled?                 boolean
             +--rw preference?              uint32
             +--rw description?             string
             +--rw reconnect-interval?      uint32
             +--ro session-state?           enumeration
             +--rw enable-authentication?   boolean
             +--rw authentication
             |  +--rw (option)?
             |     +--:(md5)
             |     |  +--rw md5-password?   ianach:crypt-hash
             |     +--:(ssh)
             |     |  +--rw client-identity
             |     |  |  +--rw username?  string
             |     |  |  +--rw public-key!
             |     |  |                   {userauth-publickey}?
             |     |  |  +--rw password!
             |     |  |                   {userauth-password}?
             |     |  |  +--rw hostbased!
             |     |  |                   {userauth-hostbased}?
             |     |  |  +--rw none?      empty {userauth-none}?
             |     |  |  +--rw certificate!
             |     |  |                   {sshcmn:ssh-x509-certs}?
             |     |  +--rw server-authentication
             |     |  |  +--rw ssh-host-keys!
             |     |  |  +--rw ca-certs!  {sshcmn:ssh-x509-certs}?
             |     |  |  +--rw ee-certs!  {sshcmn:ssh-x509-certs}?
             |     |  +--rw transport-params
             |     |  |                 {sshcmn:transport-params}?
             |     |  +--rw keepalives!   {ssh-client-keepalives}?
             |     |     +--rw max-wait?       uint16
             |     |     +--rw max-attempts?   uint8
             |     +--:(tcp-ao-keychain)
             |        +--rw keychain-name?  key-chain:key-chain-ref
             +--rw vrp-limit
             |  +--rw max-number?              uint64
             |  +--rw threshold-percentage?    rt-types:percentage
             |  +--rw over-threshold-action?   enumeration
             +--rw aspa-limit
             |  +--rw max-number?              uint64
             |  +--rw threshold-percentage?    rt-types:percentage
             |  +--rw over-threshold-action?   enumeration
             +--ro statistics
             |  +--ro total-vrp-records?  yang:zero-based-counter64
             |  +--ro ipv4-vrp-records?   yang:zero-based-counter64
             |  +--ro ipv6-vrp-records?   yang:zero-based-counter64
             |  +--ro router-key-records? yang:zero-based-counter64
             |  +--ro aspa-records?       yang:zero-based-counter64
             |  +--ro in-total-messages?  yang:zero-based-counter64
             |  +--ro out-total-messages? yang:zero-based-counter64
             +--ro connection-data
             |  +--ro flaps?                        uint32
             |  +--ro last-session-up-down?         yang:timestamp
             |  +--ro last-update-sync?             yang:timestamp
             |  +--ro last-full-sync?               yang:timestamp
             |  +--ro last-serial-query?            yang:timestamp
             |  +--ro last-reset-query?             yang:timestamp
             |  +--ro last-eod-received?            yang:timestamp
             |  +--ro last-config-change?           yang:timestamp
             |  +--ro last-error?                   yang:timestamp
             |  +--ro last-connection-error?        yang:timestamp
             |  +--ro last-connection?              yang:timestamp
             |  +--ro error-reason?                 string
             +--ro protocol-data
             |  +--ro protocol-version?   uint32
             |  +--ro refresh-time?       yang:timestamp
             |  +--ro response-time?      yang:timestamp
             |  +--ro purge-time?         yang:timestamp
             |  +--ro hold-time?          yang:timestamp
             |  +--ro record-lifetime?    yang:timestamp
             |  +--ro retry-interval?     uint32
             |  +--ro expire-interval?    uint32
             |  +--ro session-id?         uint16
             |  +--ro serial-full?        uint32
             |  +--ro serial-incremental? uint32
             +--ro pdu-counters
             |  +--ro serial-notify?    yang:zero-based-counter64
             |  +--ro cache-response?   yang:zero-based-counter64
             |  +--ro ipv4-prefix?      yang:zero-based-counter64
             |  +--ro ipv6-prefix?      yang:zero-based-counter64
             |  +--ro end-of-data?      yang:zero-based-counter64
             |  +--ro cache-reset?      yang:zero-based-counter64
             |  +--ro reset-query?      yang:zero-based-counter64
             |  +--ro serial-query?     yang:zero-based-counter64
             +--ro error-pdu-counters
                +--ro corrupt-data?      yang:zero-based-counter64
                +--ro internal-error?    yang:zero-based-counter64
                +--ro unsupported-protocol-version?
                |                        yang:zero-based-counter64
                +--ro unsupported-pdu-type?
                |                        yang:zero-based-counter64
                +--ro unexpected-protocol-version?
                |                        yang:zero-based-counter64
                +--ro no-data-available? yang:zero-based-counter64
                +--ro invalid-request?   yang:zero-based-counter64
                +--ro withdrawal-unknown-record?
                |                        yang:zero-based-counter64
                +--ro duplicate-announcement-received?
                                         yang:zero-based-counter64
]]></artwork>
    </section>
    <section anchor="rpki-table-full-tree">
      <name>Full Tree of RPKI Table YANG Module</name>
      <artwork type="ascii-art"><![CDATA[
module: ietf-rpki-table
  augment /rt:routing:
    +--ro vrp-tables
    |  +--ro vrp-table* [name]
    |     +--ro name                      string
    |     +--ro ccr-roapayloadstate-hash? ccr-hash
    |     +--ro ipv4
    |     |  +--ro vrps
    |     |  |  +--ro vrp* [prefix max-len asn source]
    |     |  |     +--ro prefix       inet:ipv4-prefix
    |     |  |     +--ro max-len      ipv4-prefix-length
    |     |  |     +--ro asn          inet:as-number
    |     |  |     +--ro source       union
    |     |  +--ro total-records?     yang:gauge32
    |     |  +--ro records-added?     yang:counter64
    |     |  +--ro records-deleted?   yang:counter64
    |     +--ro ipv6
    |        +--ro vrps
    |        |  +--ro vrp* [prefix max-len asn source]
    |        |     +--ro prefix       inet:ipv6-prefix
    |        |     +--ro max-len      ipv6-prefix-length
    |        |     +--ro asn          inet:as-number
    |        |     +--ro source       union
    |        +--ro total-records?     yang:gauge32
    |        +--ro records-added?     yang:counter64
    |        +--ro records-deleted?   yang:counter64
    +--ro router-key-tables
    |  +--ro router-key-table* [name]
    |     +--ro name                     string
    |     +--ro ccr-routerkeystate-hash? ccr-hash
    |     +--ro router-keys
    |        +--ro router-key* [ski asn key server-address]
    |           +--ro ski            subject-key-id
    |           +--ro asn            inet:as-number
    |           +--ro key            binary
    |           +--ro server-address inet:ip-address
    +--ro aspa-tables
       +--ro aspa-table* [name]
          +--ro name                       string
          +--ro ccr-aspapayloadstate-hash? ccr-hash
          +--ro aspas* [customer-asn]
             +--ro customer-asn        inet:as-number
             +--ro server-address?     inet:ip-address
             +--ro provider-asns* [provider-asn]
                +--ro provider-asn     inet:as-number
]]></artwork>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="M." surname="Chen" fullname="Mengxiao Chen">
        <organization>H3C</organization>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>chen.mengxiao@h3c.com</email>
        </address>
      </contact>
      <contact initials="S." surname="Kolenchery" fullname="Santosh Kolenchery">
        <organization>HPE</organization>
        <address>
          <email>santosh.kolenchery@hpe.com</email>
        </address>
      </contact>
      <contact initials="H." surname="Zhang" fullname="Haiyang Zhang">
        <organization>H3C</organization>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>zhang.haiyanga@h3c.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
I24naKLJLepaKQT6oJ6fkVfH8avOknb/rz5HVugGWqTUvcGaXHV2Bg1U1ye0
pG++TXRKJ1TNj59wVrOGVEtd25iwpnc2lB1ShYYt9X8pb6mgzCYVk8nY5iVm
LtUZCPbgfSStjoRSMzoq955QVtpf8zjFelNFqu2RbYsEMSLZCl4/BU7Jo74e
UvCOhr9hpPlw59kvW9o0YoctZ65D1WHdtFJBeUtqfIpOddL1ToSrTcvTi/+q
en4Vi815oS/bWtgtcFYj4HnBryohOdAwKPMinaAA5EnlglQJ3HpBPfHo8kor
V6pemFYVDV1pJvenCFlOcRnzd4U6bxsfdU1K3BZHR40b0W9X4Lbgr1B1E/qq
0vYOb1e1TRBdhU3D30lVO1FwqaSrJLLmNXsoNoM3bDHCbRL6WTnEFR0kFJnS
6Y5MqOW7A87rkTsqOtRiLNtXMHohdKndTpF6ofWRKZV1qZ1RKhD7umRq4btc
sd/a0Kuqlj6qBpJcvV6QPa9dH7rGVnWBKEISF4AePDO3gaKRMreBngYnPXEt
orj0TsxFEG61XQufM6w1r8qKiHzon+Gzrq/4simd4MVZVOJtGocDqq1h2VW6
jEkWKrVSuv/WSMYv0nxGSjNhrrgpOIqF8HFvxpyPszHoVVUL/PZbUAudL7OS
e1DFZjc2tW9CpV+/3IX6ae5CXftyP+WX+ynZl/spV34/pTnT/OWmyi83VX65
qfLLTZW/05sq0Rca8pEnsUNSpg9ZPtPpsvK+kR3W67H9PUlY42VntKN1Ljyg
1wS550V/uAz63b1nHfAfzsXvhpNt3HLSK+SSuPW9nXl4/SE+D24VIOmAdT63
j8MkTTDtk4mTSRccL2rS98ttwvp8y1qg62WPmAaZehvN596TQzoJC3YpgO9i
Qa/P70s0qnnm4lG3vIn0eFzaj6QeY2pFZaOW0QK5ekTkWK0Q/MptnJnAOJmc
ZuNQrbWKn0xxv0h2ThFwK6oDI01Iy7a4JcMKYYGvEw2wGiIVbhhnqXKWRSUK
0F2ga2DCzSQlAwe5KmBBK3JdkMQ7SbHP6ODDHByB+ymm5xIHXaVr0mWgjazp
2wsoYqTSVt2yvh5p6loNvVL+3AjF/IxFfacshiUoJqSlni75s8MsOlfee5/h
USIv9kPOIj3m4LM4iGWHEU3qv7k5TAfsTEp+w32GVy3RHY30o4288f6/9ivk
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
zwR8ud6WzWnjo448g/8P1p2i5OU2AQA=

-->

</rfc>
