<?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.35 (Ruby 3.2.3) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mboned-amt-yang-08" 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 AMT">A YANG Data Model for Automatic Multicast Tunneling (AMT)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mboned-amt-yang-08"/>
    <author initials="Y." surname="Liu" fullname="Yisong Liu" role="editor">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>liuyisong@chinamobile.com</email>
      </address>
    </author>
    <author initials="C." surname="Lin" fullname="Changwang Lin" role="editor">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <author initials="Z." surname="Zhang" fullname="Zheng(Sandy) Zhang">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>zhang.zheng@zte.com.cn</email>
      </address>
    </author>
    <author initials="X." surname="Geng" fullname="Xuesong Geng">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>gengxuesong@huawei.com</email>
      </address>
    </author>
    <author initials="V." surname="Kumar Nagaraj" fullname="Vinod Kumar Nagaraj">
      <organization>Juniper Networks</organization>
      <address>
        <email>vinkumar@juniper.net</email>
      </address>
    </author>
    <date year="2026" month="April" day="13"/>
    <area>Ops</area>
    <workgroup>MBONED Working Group</workgroup>
    <keyword>YANG, AMT</keyword>
    <abstract>
      <?line 92?>

<t>This document defines a YANG data model for the management of
   Automatic Multicast Tunneling (AMT) protocol operations.</t>
    </abstract>
  </front>
  <middle>
    <?line 97?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC7450"/> introduces the protocol definition of the Automatic
   Multicast Tunneling (AMT) for delivering multicast traffic from
   sources in a multicast-enabled network to receivers that lack
   multicast connectivity to the source network. AMT uses UDP
   encapsulation and unicast replication to provide this functionality.</t>
      <t><xref target="RFC8777"/> updates <xref target="RFC7450"/> by modifying the Relay Discovery process.
   It defines DNS Reverse IP AMT Discovery (DRIAD) mechanism for AMT
   Gateways to discover AMT Relays that are capable of forwarding
   multicast traffic from a known source IP address.</t>
      <t>This document defines a YANG data model for managing AMT protocol.</t>
      <t>RFC Ed.: Please replace all occurrences of 'XXXX' with the
   actual RFC number (and remove this note). Also, please update
   the revision date to match the publication date.</t>
    </section>
    <section anchor="terminology-notation-conventions">
      <name>Terminology &amp; Notation Conventions</name>
      <section anchor="conventions">
        <name>Conventions</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 terminology for describing YANG data models is found in <xref target="RFC6020"/>
   (which defines YANG version 1) and <xref target="RFC7950"/> (which defines YANG version 1.1), including:</t>
        <ul spacing="normal">
          <li>
            <t>augment</t>
          </li>
          <li>
            <t>data model</t>
          </li>
          <li>
            <t>data node</t>
          </li>
          <li>
            <t>identity</t>
          </li>
          <li>
            <t>module</t>
          </li>
        </ul>
        <t>The following AMT terms are used in this document:</t>
        <ul spacing="normal">
          <li>
            <t>Gateway: A functional entity that acts as an endpoint for
AMT tunnels on the receiver's domain. Its primary role is to
discover AMT Relays, establish AMT tunnels to them, receive
multicast traffic over these tunnels, and then forward that
traffic natively within its local domain.</t>
          </li>
          <li>
            <t>Relay: A functional entity located in the source's domain
or a multicast-enabled part of the Internet. Its primary role is
to listen for requests from AMT Gateways, replicate multicast
traffic from native multicast routing domains, and encapsulate/
forward this traffic through established AMT tunnels to requesting
Gateways.</t>
          </li>
          <li>
            <t>Tunnel: A unidirectional, UDP-based encapsulation tunnel
established between an AMT Gateway (the tunnel head) and an AMT
Relay (the tunnel tail). It is used to transport multicast
packets from the Relay to the Gateway over networks that do not
support native IP multicast.</t>
          </li>
          <li>
            <t>Pseudo-Interface: A logical interface within the AMT Gateway or
Relay that represents the endpoint of an AMT tunnel. Multicast
routing protocols interact with this interface as if it were a
physical interface receiving native multicast traffic.</t>
          </li>
          <li>
            <t>Gateway Service: The functional component in the AMT protocol
architecture. It interacts downstream with local multicast
receivers and upstream with AMT Relays. It implements the
complete service functionality of the AMT protocol, including
processing multicast subscription requests, establishing tunnels,
decapsulating data, and forwarding multicast traffic.</t>
          </li>
          <li>
            <t>Relay Service: The central component in the AMT protocol
architecture. It establishes and manages tunnels between
multicast sources and AMT gateways, enabling the conversion and
forwarding of multicast traffic from multicast networks to unicast
networks.</t>
          </li>
          <li>
            <t>Secret Key Rotation Interval: The maximum recommended validity period or
rotation interval for the private secret (or key) used by a AMT
Relay to compute Response Message Authentication Code (MAC) values,
according to <xref section="5.3.6" sectionFormat="of" target="RFC7450"/>.</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>The AMT protocol mainly includes two components illustrated in
   <xref target="fig-cpt"/>. The two components are Relay and Gateway entities, each
   with their internal modules (Discovery, Tunnel Management, and Multicast
   Forwarding).</t>
      <figure anchor="fig-cpt">
        <name>AMT Protocol Components</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="408" viewBox="0 0 408 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,368" fill="none" stroke="black"/>
              <path d="M 32,80 L 32,352" fill="none" stroke="black"/>
              <path d="M 56,128 L 56,176" fill="none" stroke="black"/>
              <path d="M 56,208 L 56,256" fill="none" stroke="black"/>
              <path d="M 56,288 L 56,336" fill="none" stroke="black"/>
              <path d="M 104,176 L 104,208" fill="none" stroke="black"/>
              <path d="M 104,256 L 104,288" fill="none" stroke="black"/>
              <path d="M 152,128 L 152,176" fill="none" stroke="black"/>
              <path d="M 152,208 L 152,256" fill="none" stroke="black"/>
              <path d="M 152,288 L 152,336" fill="none" stroke="black"/>
              <path d="M 176,80 L 176,352" fill="none" stroke="black"/>
              <path d="M 232,80 L 232,352" fill="none" stroke="black"/>
              <path d="M 256,128 L 256,176" fill="none" stroke="black"/>
              <path d="M 256,208 L 256,256" fill="none" stroke="black"/>
              <path d="M 256,288 L 256,336" fill="none" stroke="black"/>
              <path d="M 304,176 L 304,208" fill="none" stroke="black"/>
              <path d="M 304,256 L 304,288" fill="none" stroke="black"/>
              <path d="M 352,128 L 352,176" fill="none" stroke="black"/>
              <path d="M 352,208 L 352,256" fill="none" stroke="black"/>
              <path d="M 352,288 L 352,336" fill="none" stroke="black"/>
              <path d="M 376,80 L 376,352" fill="none" stroke="black"/>
              <path d="M 400,32 L 400,368" fill="none" stroke="black"/>
              <path d="M 8,32 L 400,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 400,64" fill="none" stroke="black"/>
              <path d="M 32,80 L 176,80" fill="none" stroke="black"/>
              <path d="M 232,80 L 376,80" fill="none" stroke="black"/>
              <path d="M 184,96 L 224,96" fill="none" stroke="black"/>
              <path d="M 56,128 L 152,128" fill="none" stroke="black"/>
              <path d="M 256,128 L 352,128" fill="none" stroke="black"/>
              <path d="M 160,160 L 248,160" fill="none" stroke="black"/>
              <path d="M 56,176 L 152,176" fill="none" stroke="black"/>
              <path d="M 256,176 L 352,176" fill="none" stroke="black"/>
              <path d="M 56,208 L 152,208" fill="none" stroke="black"/>
              <path d="M 256,208 L 352,208" fill="none" stroke="black"/>
              <path d="M 160,240 L 248,240" fill="none" stroke="black"/>
              <path d="M 56,256 L 152,256" fill="none" stroke="black"/>
              <path d="M 256,256 L 352,256" fill="none" stroke="black"/>
              <path d="M 56,288 L 152,288" fill="none" stroke="black"/>
              <path d="M 256,288 L 352,288" fill="none" stroke="black"/>
              <path d="M 56,336 L 152,336" fill="none" stroke="black"/>
              <path d="M 256,336 L 352,336" fill="none" stroke="black"/>
              <path d="M 32,352 L 176,352" fill="none" stroke="black"/>
              <path d="M 232,352 L 376,352" fill="none" stroke="black"/>
              <path d="M 8,368 L 400,368" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="232,96 220,90.4 220,101.6" fill="black" transform="rotate(0,224,96)"/>
              <polygon class="arrowhead" points="192,96 180,90.4 180,101.6" fill="black" transform="rotate(180,184,96)"/>
              <polygon class="arrowhead" points="168,240 156,234.4 156,245.6" fill="black" transform="rotate(180,160,240)"/>
              <polygon class="arrowhead" points="168,160 156,154.4 156,165.6" fill="black" transform="rotate(180,160,160)"/>
              <g class="text">
                <text x="120" y="52">AMT</text>
                <text x="172" y="52">Protocol</text>
                <text x="252" y="52">Components</text>
                <text x="72" y="100">AMT</text>
                <text x="112" y="100">Relay</text>
                <text x="272" y="100">AMT</text>
                <text x="320" y="100">Gateway</text>
                <text x="104" y="148">Discovery</text>
                <text x="304" y="148">Discovery</text>
                <text x="104" y="164">Service</text>
                <text x="304" y="164">Service</text>
                <text x="108" y="228">Tunnel</text>
                <text x="308" y="228">Tunnel</text>
                <text x="108" y="244">Management</text>
                <text x="308" y="244">Management</text>
                <text x="104" y="308">Multicast</text>
                <text x="304" y="308">Multicast</text>
                <text x="108" y="324">Forwarding</text>
                <text x="308" y="324">Forwarding</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
         +------------------------------------------------+
         |            AMT Protocol Components             |
         +------------------------------------------------+
         |  .-----------------.      .-----------------.  |
         |  |   AMT Relay     |<---->|   AMT Gateway   |  |
         |  |                 |      |                 |  |
         |  |  .-----------.  |      |  .-----------.  |  |
         |  |  | Discovery |  |      |  | Discovery |  |  |
         |  |  |  Service  |<-+------+--|  Service  |  |  |
         |  |  '-----+-----'  |      |  '-----+-----'  |  |
         |  |        |        |      |        |        |  |
         |  |  .-----+-----.  |      |  .-----+-----.  |  |
         |  |  |   Tunnel  |  |      |  |   Tunnel  |  |  |
         |  |  | Management|<-+------+--| Management|  |  |
         |  |  '-----+-----'  |      |  '-----+-----'  |  |
         |  |        |        |      |        |        |  |
         |  |  .-----+-----.  |      |  +-----+-----+  |  |
         |  |  | Multicast |  |      |  | Multicast |  |  |
         |  |  | Forwarding|  |      |  | Forwarding|  |  |
         |  |  '-----------'  |      |  +-----------+  |  |
         |  '-----------------'      '-----------------'  |
         +------------------------------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>The AMT data model provides methods for managing AMT protocol,
   covering all its core functional components as illustrated in
   Figure 1. It includes:</t>
      <ul spacing="normal">
        <li>
          <t>Parameters of AMT Relay service, such as Relay Discovery Address
(<xref section="4.1.5" sectionFormat="of" target="RFC7450"/>), Relay Address (<xref section="4.1.5" sectionFormat="of" target="RFC7450"/>),
the maximum number of tunnels, and secret key rotation interval.</t>
        </li>
        <li>
          <t>Parameters of AMT Gateway service, such as Relay Discovery Address
(<xref section="4.1.5" sectionFormat="of" target="RFC7450"/>), Relay Address (<xref section="4.1.5" sectionFormat="of" target="RFC7450"/>),
Discovery Timeout (<xref section="5.2.2.4" sectionFormat="of" target="RFC7450"/>),
Request Timeout (<xref section="5.2.2.4" sectionFormat="of" target="RFC7450"/>), and Maximum
Retransmission Count (<xref section="5.2.2.4" sectionFormat="of" target="RFC7450"/>).</t>
        </li>
        <li>
          <t>AMT tunnel information, such as endpoint IP address and UDP port
number, local IP address and UDP port number.</t>
        </li>
        <li>
          <t>DNS Resource Record (RR) used by an AMT Relay service.</t>
        </li>
      </ul>
    </section>
    <section anchor="amt-yang-module">
      <name>AMT YANG Module</name>
      <section anchor="prefixes">
        <name>Prefixes</name>
        <t><xref target="tab-prefixes"/> summarizes the prefixes used in this document.</t>
        <table anchor="tab-prefixes">
          <name>Prefixes and Corresponding YANG Modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">YANG module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">inet</td>
              <td align="left">ietf-inet-types</td>
              <td align="left">
                <xref target="RFC9911"/></td>
            </tr>
            <tr>
              <td align="left">rt-types</td>
              <td align="left">ietf-routing-types</td>
              <td align="left">
                <xref target="RFC8294"/></td>
            </tr>
            <tr>
              <td align="left">rt</td>
              <td align="left">ietf-routing</td>
              <td align="left">
                <xref target="RFC8349"/></td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="left">ietf-yang-types</td>
              <td align="left">
                <xref target="RFC9911"/></td>
            </tr>
            <tr>
              <td align="left">if</td>
              <td align="left">ietf-interfaces</td>
              <td align="left">
                <xref target="RFC8343"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="tree-view">
        <name>Tree View</name>
        <t>The full tree diagram of the "ietf-amt" YANG module is provided in
   <xref target="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 AMT YANG module is shown in
   <xref target="fig-overall-tree"/>.</t>
          <t>The AMT YANG module augments the core routing YANG module "ietf-
   routing" specified in <xref target="RFC8349"/>. Specifically, the AMT YANG module
   augments "/rt:routing/rt:control-plane-protocols".</t>
          <figure anchor="fig-overall-tree">
            <name>Overall AMT Tree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-amt
  augment /rt:routing/rt:control-plane-protocols:
    +--rw amt!
       +--rw relay {amt-relay}?
       |  ...
       +--rw gateway {amt-gateway}?
          ...
]]></artwork>
          </figure>
          <t>The 'amt' container encapsulates all AMT functionality and serves as
   the primary entry point for its configuration and state. The 'amt'
   container consists of two functional components: the 'relay' and the
   'gateway'. Support of an AMT Relay or an AMT Gateway is indicated by
   dedicated YANG features.</t>
          <t>The 'relay' container manages the AMT Relay function on the multicast
   source side. It provides the configuration and operational state for
   AMT Relay devices that receive multicast traffic, tunnel it to AMT
   Gateways over unicast, and act as tunnel termination points. This
   container is conditionally present only if the device implements the
   'amt-relay' feature, typically on service provider edge routers or data
   center gateways.</t>
          <t>The 'gateway' container manages the AMT Gateway function on the
   multicast receiver side. It provides the configuration and
   operational state for AMT Gateway devices that discover AMT Relays,
   establish tunnels to receive multicast traffic, and forward it to
   local receivers. This container is conditionally present only if the
   device implements the 'amt-gateway' feature, typically on enterprise
   edge routers or Customer Premises Equipment (CPE).</t>
        </section>
        <section anchor="relay">
          <name>Relay</name>
          <t>The overall structure of 'relay' is shown in <xref target="fig-relay-subtree"/>.</t>
          <figure anchor="fig-relay-subtree">
            <name>AMT Relay Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-amt
  augment /rt:routing/rt:control-plane-protocols:
    +--rw amt!
       +--rw relay {amt-relay}?
       |  +--rw addresses
       |  |  +--rw address* [family]
       |  |     +--rw family             identityref
       |  |     +--rw anycast-prefix     inet:ip-prefix
       |  |     +--rw local-address      inet:ip-address
       |  +--rw tunnel-limit?            uint32
       |  +--rw secret-key-rotation-interval?     uint32
       |  +--rw relay-dns-resource-records
       |  |  +--rw record* [source-address]
       |  |     +--rw source-address         inet:ip-address
       |  |     +--rw precedence?            uint32
       |  |     +--rw d-bit?                 boolean
       |  |     +--rw relay-type?            enumeration
       |  |     +--rw discovery-address?     inet:ip-address
       |  |     +--rw domain-name?           inet:domain-name
       |  +--ro tunnels
       |  |  ...
       |  +--ro relay-message-statistics
       |     ...
       +--rw gateway {amt-gateway}?
          ...
]]></artwork>
          </figure>
          <t>The 'relay' data nodes are described as follows:</t>
          <dl>
            <dt>'addresses':</dt>
            <dd>
              <t>Indicates the core address configurations for AMT Relay.</t>
            </dd>
            <dt/>
            <dd>
              <t>This data node includes 'family', 'anycast-prefix', and 'local-
   address'. The 'family' indicates the address family (IPv4 or IPv6).
   The 'anycast-prefix' indicates the address prefix used by the Gateway
   to discover the Relay. The 'local-address' indicates the local
   interface address the Relay actually listens on and sends AMT
   messages on, or the actual communication address after the tunnel is
   established.</t>
            </dd>
            <dt>'tunnel-limit':</dt>
            <dd>
              <t>Indicates the maximum number of endpoint Gateways
   that a Relay can serve simultaneously.</t>
            </dd>
            <dt>'secret-key-rotation-interval':</dt>
            <dd>
              <t>Indicates the maximum recommended validity
   period or rotation interval for the private secret (or key) used by an
   AMT Relay to compute Response MAC values. In addition, the private
   secret (or key) is known only to the AMT Relay, and the provisioning
   of the private secret (or key) is out of scope.</t>
            </dd>
            <dt>'relay-dns-resource-records':</dt>
            <dd>
              <t>Indicates the DNS RR configuration for
   AMT Relay Discovery. Each DNS RR configuration ('record') includes
   the specific multicast source IP address to which this DNS RR applies
   ('source-address'), the priority value of this DNS RR ('precedence'),
   the discovery optional flag ('d-bit'), the type of AMT Relay Address
   ('relay-type'), the directly specified IP address of AMT Relay
   Discovery Address ('discovery-address'), and the wire-encoded domain
   name of AMT Relay ('domain-name').</t>
            </dd>
            <dt>'tunnels' (<xref target="fig-tunnel-subtree"/>):</dt>
            <dd>
              <t>Indicates tunnel information from various AMT Gateways
   connected to this AMT Relay.</t>
            </dd>
            <dt/>
            <dd>
              <t>Each tunnel entry ('tunnel') includes
   the IP address and port number of the tunnel opposite end ('gateway')
   ('gateway-address' and 'gateway-port'), the local IP address and UDP port number
   used by the local ('relay') end for this tunnel ('local-address' and 'local-
   port'), the tunnel status ('state'), the multicast flow information
   ('multicast-flows') carried by the tunnel, the number of different
   multicast groups currently carried by this tunnel ('multicast-group-
   num'), the message counter carried by the tunnel ('request-message-
   count', 'membership-query-message-count', and 'membership-update-
   message-count'), and the time on the most recent occasion at which
   any one or more of the tunnel's counters suffered a discontinuity
   ('discontinuity-time').</t>
            </dd>
            <dt/>
            <dd>
              <t>Each multicast flow information ('flow') has
   multicast source address ('source-address') and multicast group
   address ('group-address').</t>
            </dd>
          </dl>
          <ul empty="true">
            <li>
              <t>Design note: The four data nodes ('gateway-address',
'gateway-port', 'local-address', and 'local-port) do not reuse
the standard "udp-client" grouping defined in <xref target="I-D.ietf-netconf-udp-client-server"/>
because AMT requires the Gateway to be a specific IP address (inet:ip-address),
while the "udp-client" grouping allows the use of domain names (inet:host).
Reuse could lead to configuration errors or runtime risks, so a custom structure
must be defined to enforce this constraint.</t>
            </li>
          </ul>
          <figure anchor="fig-tunnel-subtree">
            <name>AMT Relay Tunnel Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-amt
  augment /rt:routing/rt:control-plane-protocols:
    +--rw amt!
       +--rw relay {amt-relay}?
       |  ...
       |  +--ro tunnels
       |  |  +--ro tunnel* [gateway-address gateway-port]
       |  |     +--ro gateway-address     inet:ip-address
       |  |     +--ro gateway-port        inet:port-number
       |  |     +--ro local-address       inet:ip-address
       |  |     +--ro local-port          inet:port-number
       |  |     +--ro state               identityref
       |  |     +--ro multicast-flows
       |  |     |  +--ro flow* [source-address
       |  |     |     |         group-address]
       |  |     |     +--ro source-address
       |  |     |     |         ip-multicast-source-address
       |  |     |     +--ro group-address
       |  |     |               rt-types:ip-multicast-group-address
       |  |     +--ro multicast-group-num        yang:gauge32
       |  |     +--ro request-message-count
       |  |     |              yang:zero-based-counter64
       |  |     +--ro membership-query-message-count
       |  |     |              yang:zero-based-counter64
       |  |     +--ro membership-update-message-count
       |  |     |              yang:zero-based-counter64
       |  |     +--ro discontinuity-time           yang:date-and-time
       |  +--ro relay-message-statistics
       |     ...
       +--rw gateway {amt-gateway}?
          ...
]]></artwork>
          </figure>
          <dl>
            <dt>'relay-message-statistics':</dt>
            <dd>
              <t>Indicates various messages and error
   statistics handled by AMT Relay as shown in <xref target="fig-stats-subtree"/>.</t>
            </dd>
          </dl>
          <figure anchor="fig-stats-subtree">
            <name>AMT Relay Statistics Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
  augment /rt:routing/rt:control-plane-protocols:
    +--rw amt!
       +--rw relay {amt-relay}?
       |  ...
       |  +--ro tunnels
       |  |  ...
       |  +--ro relay-message-statistics
       |     +--ro received
       |     |  +--ro relay-discovery       yang:zero-based-counter64
       |     |  +--ro request               yang:zero-based-counter64
       |     |  +--ro membership-update     yang:zero-based-counter64
       |     |  +--ro teardown              yang:zero-based-counter64
       |     +--ro sent
       |     |  +--ro relay-advertisement yang:zero-based-counter64
       |     |  +--ro membership-query      yang:zero-based-counter64
       |     +--ro error
       |     |  +--ro incomplete-packet     yang:zero-based-counter64
       |     |  +--ro invalid-mac           yang:zero-based-counter64
       |     |  +--ro unexpected-type       yang:zero-based-counter64
       |     |  +--ro invalid-relay-discovery-address
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro invalid-membership-request-address
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro invalid-membership-update-address
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro incomplete-relay-discovery-messages
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro incomplete-membership-request-messages
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro incomplete-membership-update-messages
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro no-active-gateway     yang:zero-based-counter64
       |     |  +--ro invalid-inner-header-checksum
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro gateways-timed-out                 yang:gauge64
       |     +--ro discontinuity-time       yang:date-and-time
       +--rw gateway {amt-gateway}?
          ...
]]></artwork>
          </figure>
        </section>
        <section anchor="gateway">
          <name>Gateway</name>
          <t>The structure of 'gateway' is shown in <xref target="fig-gateway-subtree"/>.</t>
          <figure anchor="fig-gateway-subtree">
            <name>AMT Gateway Subtree Structure</name>
            <artwork type="ascii-art"><![CDATA[
module: ietf-amt
  augment /rt:routing/rt:control-plane-protocols:
    +--rw amt!
       +--rw relay {amt-relay}?
       |  ...
       +--rw gateway {amt-gateway}?
          +--rw pseudo-interfaces
          |  +--rw interface* [interface]
          |     +--rw name                      if:interface-ref
          |     +--rw discovery-method          identityref
          |     +--rw relay-discovery-address?  inet:ip-address
          |     +--rw relay-address?            inet:ip-address
          |     +--rw relay-port?               inet:port-number
          |     +--ro local-address?            inet:ip-address
          |     +--ro local-port?               inet:port-number
          |     +--rw upstream-interface?       if:interface-ref
          |     +--rw discovery-timeout?        uint32
          |     +--rw discovery-retrans-count?  uint32
          |     +--rw request-timeout?          uint32
          |     +--rw request-retrans-count?    uint32
          |     +--rw dest-unreach-retry-count? uint32
          |     +--ro tunnel-state              identityref
          |     +--ro relay-discovery-message-count
          |     |                      yang:zero-based-counter64
          |     +--ro relay-advertisement-message-count
          |     |                      yang:zero-based-counter64
          |     +--ro request-message-count
          |     |                      yang:zero-based-counter64
          |     +--ro membership-query-message-count
          |     |                      yang:zero-based-counter64
          |     +--ro membership-update-message-count
          |                            yang:zero-based-counter64
          +--ro gateway-message-statistics
             +--ro discontinuity-time         yang:date-and-time
             +--ro received
             |  +--ro relay-advertisement yang:zero-based-counter64
             |  +--ro membership-query yang:zero-based-counter64
             +--ro sent
                +--ro relay-discovery yang:zero-based-counter64
                +--ro request           yang:zero-based-counter64
                +--ro membership-update yang:zero-based-counter64
                +--ro teardown          yang:zero-based-counter64
]]></artwork>
          </figure>
          <t>The 'gateway' data nodes are described as follows:</t>
          <dl>
            <dt>'pseudo-interfaces':</dt>
            <dd>
              <t>Indicates the configuration and operational
   state of pseudo interfaces used to establish AMT tunnels between
   Gateways and Relays.</t>
            </dd>
            <dt>'gateway-message-statistics':</dt>
            <dd>
              <t>Indicates the message statistics of the
   AMT Gateway. It has the time on the most recent occasion at which
   any one or more of the AMT Gateway message counters suffered a discontinuity
   ('discontinuity-time'), the received message statistics of AMT Gateway
   ('received'), and the sent message statistics of AMT Gateway ('sent').</t>
            </dd>
            <dt/>
            <dd>
              <t>'received' container includes the number of AMT Relay advertisement
   messages received ('relay-advertisement') and the number of AMT
   membership query messages received ('membership-query').</t>
            </dd>
            <dt/>
            <dd>
              <t>'sent' container includes the number of AMT Relay Discovery messages sent ('relay-
   discovery'), the number of AMT membership request messages sent
   ('request'), the number of AMT membership update messages sent
   ('membership-update'), and the number of AMT teardown messages sent
   ('teardown').</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="yang-module">
        <name>YANG Module</name>
        <t>This document imports modules defined in <xref target="RFC9911"/>, <xref target="RFC8294"/>,
   <xref target="RFC8343"/>, and <xref target="RFC8349"/>.</t>
        <sourcecode type="yang" markers="true" name="ietf-amt@2026-03-10.yang"><![CDATA[
module ietf-amt {
  yang-version "1.1";
  namespace "urn:ietf:params:xml:ns:yang:ietf-amt";
  prefix amt;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 9911: Common YANG Data Types, Section 4";
  }

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types, Section 3";
  }

  import ietf-routing-types {
    prefix rt-types;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area";
  }

  import ietf-interfaces {
    prefix if;
    reference
      "RFC 8343: A YANG Data Model for Interface Management";
  }

  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349: A YANG Data Model for Routing Management
                 (NMDA Version)";
  }

  organization
    "IETF Multicast Backbone Deployment (MBONED) Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/mboned/>
     WG List:  MBONED <mailto:mboned@ietf.org>

     Editor:   Yisong Liu
               <mailto:liuyisong@chinamobile.com>
     Editor:   Changwang Lin
               <mailto:linchangwang.04414@h3c.com>
     Editor:   Zheng(Sandy) Zhang
               <mailto:zhang.zheng@zte.com.cn>
     Editor:   Xuesong Geng
               <mailto:gengxuesong@huawei.com>
     Editor:   Vinod Kumar Nagaraj
               <mailto:vinkumar@juniper.net>";

  description
    "This module describes a YANG data model for managing the 
     Automatic Multicast Tunneling (AMT) protocol.

     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-10 {
    description
      "Initial Version";
    reference
      "RFC XXXX: A YANG Data Model for Automatic Multicast
                 Tunneling (AMT)";
  }

  feature amt-gateway {
    description
      "Indicates support of AMT Gateway functionality.";
    reference
      "RFC 7450: Automatic Multicast Tunneling, Section 4.1.2";
  }

  feature amt-relay {
    description
      "Indicates support of AMT Relay functionality.";
    reference
      "RFC 7450: Automatic Multicast Tunneling, Section 4.1.3";
  }

  typedef ip-multicast-source-address {
    type union {
      type rt-types:ipv4-multicast-source-address;
      type rt-types:ipv6-multicast-source-address;
    }
    description
      "This type represents a version-neutral IP multicast source
       address. The format of the textual representation implies
       the IP address family.";
  }

  identity tunnel-state-base {
    description
      "Base identity for AMT tunnel states.";
  }

  identity up {
    base tunnel-state-base;
    description
      "The AMT tunnel has been successfully established.";
  }

  identity establishing {
    base tunnel-state-base;
    description
      "The AMT tunnel is being established.";
  }

  identity initial {
    base tunnel-state-base;
    description
      "Initial AMT tunnel state.";
  }

  identity discoverying {
    base tunnel-state-base;
    description
      "The Relay Discovery message has been sent
       and is waiting for the Advertisement message.";
  }

  identity requesting {
    base tunnel-state-base;
    description
      "The Request message has been sent, waiting for the Query
       message.";
  }

  identity discovery-method-base {
    description
      "Base identity for all methods used to discover an
       AMT Relay Address.
       
       New discovery methods should be defined by creating
       new identities derived from this base identity.";
  }

  identity by-amt-solicit {
    base discovery-method-base;
    description
      "Find the Relay Address by sending an AMT Discovery message.
       
       This method involves sending an AMT Discovery message to
       discover available Relays in the network.";
    reference
      "RFC 7450: Automatic Multicast Tunneling, Section 5.1.1";
  }

  identity by-dns-reverse-ip {
    base discovery-method-base;
    description
      "Find the Relay Address by DNS reverse IP AMT Discovery.
       
       This method uses DNS reverse IP lookup to discover AMT
       Relays based on the client's IP address.";
    reference
      "RFC 8777: DNS Reverse IP Automatic Multicast Tunneling (AMT)
                 Discovery";
  }

  augment "/rt:routing/rt:control-plane-protocols" {
    description
      "AMT augmentation to the routing instance model.";
    container amt {
      description
        "Management parameters for the AMT protocol.";
      container relay {
        if-feature "amt-relay";
        description
          "Parameters of the AMT Relay service.";
        container addresses {
          description
            "Parameters of AMT Relay Addresses.";
          list address {
            key "family";
            description
              "Each entry contains parameters for an AMT Relay
               Address identified by the 'family' key. Under
               normal operation, these addresses SHOULD belong
               to the same address family indicated by 'family'.
               Any mismatch is an indication of abnormal
               configuration and is therefore allowed to be
               reported.
               
               The 'anycast-prefix' serve as the discovery entry
               for AMT Relays, while unicast IP addresses
               'local-address' are the actual communication entities
               of AMT Relays. The AMT Gateway first locates the AMT
               Relay via the 'anycast-prefix' and then uses its
               'local-address' to complete all subsequent AMT
               interactions.";
            leaf family {
              type identityref {
                base rt:address-family;
              }
              description
                "Indicates the address family for the entry.";
            }
            leaf anycast-prefix {
              type inet:ip-prefix;
              description
                "An anycast IP prefix of the AMT Relay Discovery
                 Address which is used when sending discovery
                 messages to a Relay.
                 
                 If 'family' is IPv4, it SHOULD be an IPv4 prefix;
                 If 'family' is IPv6, it SHOULD be an IPv6 prefix.
                 
                 Any mismatch is an indication of abnormal
                 configuration and is therefore allowed to be
                 reported.";
            }
            leaf local-address {
              type inet:ip-address;
              description
                "A unicast IP address of the AMT Relay Address
                 which is obtained as a result of the discovery
                 process.
                 
                 If 'family' is IPv4, it SHOULD be an IPv4 address;
                 If 'family' is IPv6, it SHOULD be an IPv6 address.
                 
                 Any mismatch is an indication of abnormal
                 configuration and is therefore allowed to be
                 reported.";
            }
          }
        }
        leaf tunnel-limit {
          type uint32;
          description
            "The total number of endpoints.";
        }
        leaf secret-key-rotation-interval {
          type uint32;
          units "minutes";
          description
            "Specifies the interval period for computing a new
             private secret. This maximum RECOMMENDED interval
             is 120 minutes.";
          reference
               "RFC 7450: Automatic Multicast Tunneling,
                          Section 5.3.6";
        }
        container relay-dns-resource-records {
          description
            "The DNS Resource Records (RRs) of the AMT Relay.";
          list record {
            key "source-address";
            description
              "Specifies an RR entry.";
            leaf source-address {
              type inet:ip-address;
              description
                "The unicast IP address of multicast sender.";
            }
            leaf precedence {
              type uint32;
              description
                "The precedence value of this record, used
                 for Relay selection priority.
                 
                 Lower values indicate higher priority.
                 Relays listed in AMT Relay records with
                 a lower value for precedence are to be
                 attempted first.";
              reference
                "RFC 8777: DNS Reverse IP Automatic Multicast
                           Tunneling (AMT) Discovery,
                           Section 4.2.1";
            }
            leaf d-bit {
              type boolean;
              default false;
              description
                "If the D-bit is set to true, the Gateway MAY
                 send an AMT Request message directly to the
                 discovered Relay Address without first
                 sending an AMT Discovery message.
                 
                 If the D-bit is set to false, the Gateway MUST
                 receive an AMT Relay advertisement message
                 for an address before sending an AMT
                 Request message to that address.";
              reference
                "RFC 8777: DNS Reverse IP Automatic Multicast
                           Tunneling (AMT) Discovery,
                           Section 4.2.2";
            }
            leaf relay-type {
              type enumeration {
                enum empty {
                  value 0;
                  description
                    "The relay field is empty.";
                }
                enum ipv4-address {
                  value 1;
                  description
                    "The relay field contains a 4-octet IPv4
                     address.";
                }
                enum ipv6-address {
                  value 2;
                  description
                    "The relay field contains a 16-octet IPv6
                     address.";
                }
                enum domain-name {
                  value 3;
                  description
                    "The relay field contains a wire-encoded
                     domain name.";
                }
              }
              description
                "Indicates the type of Relay in the AMT Relay RR.
                 
                 Value 0 indicates that no AMT Relay should be
                 used for multicast traffic from this source.
                 
                 Values 1 and 2 indicate that the IP address is
                 used to describe the AMT Relay.
                 
                 Value 3 indicates that the domain name is
                 used to describe the AMT Relay.";
              reference
                "RFC 8777: DNS Reverse IP Automatic Multicast
                           Tunneling (AMT) Discovery,
                           Section 4.2.3";
            }
            leaf discovery-address {
              type inet:ip-address;
              description
                "The IP address of AMT Relay Discovery Address.
                 
                 When the 'relay-type' value is 1 or 2, this
                 data node is used to indicate the AMT Relay of
                 the AMT Relay RR.";
            }
            leaf domain-name {
              type inet:domain-name;
              description
                "The wire-encoded domain name of the AMT Relay.
                 
                 When the 'relay-type' value is 3, this data node
                 is used to indicate the AMT Relay of the AMT
                 Relay RR.";
            }
          }
        }
        container tunnels {
          config false;
          description
            "AMT tunnel session information, which contains
             session parameters, state, and statistics for
             all AMT tunnels established between Gateways
             and this Relay.";
          list tunnel {
            key "gateway-address gateway-port";
            description
              "Records a tunnel entry.";
            leaf gateway-address {
              type inet:ip-address;
              description
                "The IP address of an AMT Gateway.";
            }
            leaf gateway-port {
              type inet:port-number;
              description
                "The UDP port number of an AMT Gateway.";
            }
            leaf local-address {
              type inet:ip-address;
              description
                "The local IP address of the AMT Relay.";
            }
            leaf local-port {
              type inet:port-number;
              description
                "The local UDP port number of the AMT Relay.";
            }
            leaf state {
              type identityref {
                base tunnel-state-base;
              }
              description
                "The state of AMT tunnel.";
            }
            container multicast-flows {
              config false;
              description
                "The multicast flow information in the AMT tunnel.

                 Contains operational data for all multicast
                 flows being forwarded through AMT tunnels between
                 this Relay and connected Gateways.";
              list flow {
                key "source-address group-address";
                description
                  "Records the characteristics of a multicast flow.";
                leaf source-address {
                  type ip-multicast-source-address;
                  description
                    "The source IP address of a multicast flow.

                     It MUST belong to the same address family as
                     group-address.";
                }
                leaf group-address {
                  type rt-types:ip-multicast-group-address;
                  description
                    "The group IP address of a multicast flow.

                     It MUST belong to the same address family as
                     source-address.";
                }
              }
            }
            leaf multicast-group-num {
              type yang:gauge32;
              description
                "Number of multicast groups.";
            }
            leaf request-message-count {
              type yang:zero-based-counter64;
              description
                "Number of AMT Request messages received
                 in the tunnel.";
            }
            leaf membership-query-message-count {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership Query messages sent
                 in the tunnel.";
            }
            leaf membership-update-message-count {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership Update messages received
                 in the tunnel.";
            }
            leaf discontinuity-time {
              type yang:date-and-time;
              description
                "The time on the most recent occasion at which any
                 one or more of this AMT tunnel's counters suffered
                 a discontinuity.

                 If no such discontinuities have occurred since the
                 last re-initialization of the AMT tunnel, then this
                 node contains the time when the AMT tunnel was last
                 initialized or the tunnel was established.";
            }
          }
        }
        container relay-message-statistics {
          config false;
          description
            "Message statistics of an AMT Relay.";
          container received {
            description
              "Received message statistics of AMT Relay.";
            leaf relay-discovery {
              type yang:zero-based-counter64;
              description
                "Number of AMT Relay Discovery messages
                 received.";
            }
            leaf request {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership Request messages
                 received.";
            }
            leaf membership-update {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership Update messages
                 received.";
            }
            leaf teardown {
              type yang:zero-based-counter64;
              description
                "Number of AMT Teardown messages received.";
            }
          }
          container sent {
            description
              "Sent message statistics of AMT Relay.";
            leaf relay-advertisement {
              type yang:zero-based-counter64;
              description
                "Number of AMT Relay advertisement messages sent.";
            }
            leaf membership-query {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership Query messages sent.";
            }
          }
          container error {
            description
              "Error message statistics of AMT Relay.";
            leaf incomplete-packet {
              type yang:zero-based-counter64;
              description
                "Number of messages received with length errors
                 so severe that further classification could not
                 occur.";
            }
            leaf invalid-mac {
              type yang:zero-based-counter64;
              description
                "Number of messages received with an invalid
                 Message Authentication Code (MAC).";
            }
            leaf unexpected-type {
              type yang:zero-based-counter64;
              description
                "Number of messages received with an unknown
                 message type specified.";
            }
            leaf invalid-relay-discovery-address {
              type yang:zero-based-counter64;
              description
                "Number of AMT Relay Discovery messages
                 received with an address other than the
                 configured anycast address.";
            }
            leaf invalid-membership-request-address {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership request messages
                 received with an address other than the
                 configured AMT local address.";
            }
            leaf invalid-membership-update-address {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership update messages
                 received with an address other than the
                 configured AMT local address.";
            }
            leaf incomplete-relay-discovery-messages {
              type yang:zero-based-counter64;
              description
                "Number of AMT Relay Discovery messages
                 received that are not fully formed.";
            }
            leaf incomplete-membership-request-messages {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership request messages
                 received that are not fully formed.";
            }
            leaf incomplete-membership-update-messages {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership update messages
                 received that are not fully formed.";
            }
            leaf no-active-gateway {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership update messages
                 received for a tunnel that does not exist
                 for the Gateway that sent the message.";
            }
            leaf invalid-inner-header-checksum {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership update messages
                 received with an invalid IP checksum.";
            }
            leaf gateways-timed-out {
              type yang:gauge64;
              description
                "Number of Gateways that timed out because
                 of inactivity.";
            }
          }
          leaf discontinuity-time {
            type yang:date-and-time;
            description
              "The time on the most recent occasion at which any
               one or more of this AMT tunnel's message counters
               suffered a discontinuity.

               If no such discontinuities have occurred since the
               last re-initialization of the AMT tunnel, then this
               node contains the time when the AMT tunnel was last
               initialized or the tunnel was established.";
          }
        }
      } // relay
      container gateway {
        if-feature "amt-gateway";
        description
          "Parameters of AMT Gateway service.";
        container pseudo-interfaces {
          description
            "Parameters of AMT pseudo-interface.";
          list interface {
            key "name";
            description
              "An entry of AMT pseudo-interface.";
            leaf name {
              type if:interface-ref;
              description
                "Indicates the name of a pseudo interface.";
            }
            leaf discovery-method {
              type identityref {
                base discovery-method-base;
              }
              description
                "The method used to discover the relay address.";
            }
            leaf relay-discovery-address {
              type inet:ip-address;
              description
                "Specifies the AMT Relay Discovery Address.";
            }
            leaf relay-address {
              type inet:ip-address;
              description
                "Specifies the IP address of the AMT Relay.";
            }
            leaf relay-port {
              type inet:port-number;
              description
                "The UDP port number of the AMT Relay.";
            }
            leaf local-address {
              type inet:ip-address;
              config false;
              description
                "The local IP address of this AMT tunnel.";
            }
            leaf local-port {
              type inet:port-number;
              config false;
              description
                "The local UDP port number of this AMT tunnel.";
            }
            leaf upstream-interface {
              type if:interface-ref;
              description
                "Indicates the upstream interface to reach the AMT
                 Relay.";
            }
            leaf discovery-timeout {
              type uint32;
              units "seconds";
              description
                "Initial time to wait for a response to
                 a Relay Discovery message.";
            }
            leaf discovery-retrans-count {
              type uint32;
              description
                "Maximum number of Relay Discovery retransmissions
                 to allow before terminating Relay Discovery
                 and reporting an error.";
            }
            leaf request-timeout {
              type uint32;
              units "seconds";
              description
                "Initial time to wait for a response
                 to a Request message";
            }
            leaf request-retrans-count {
              type uint32;
              description
                "Maximum number of Request retransmissions
                 to allow before abandoning a Relay and restarting
                 Relay Discovery or reporting an error.";
            }
            leaf dest-unreach-retry-count {
              type uint32;
              description
                "The maximum number of times a Gateway should
                 attempt to send the same Request or Membership
                 Update message after receiving an ICMP Destination
                 Unreachable message.";
            }
            leaf tunnel-state {
              type identityref {
                base tunnel-state-base;
              }
              config false;
              description
                "The tunnel's state.";
            }
            leaf relay-discovery-message-count {
              type yang:zero-based-counter64;
              config false;
              description
                "Number of AMT Relay Discovery messages sent
                 on the interface.";
            }
            leaf relay-advertisement-message-count {
              type yang:zero-based-counter64;
              config false;
              description
                "Number of AMT Relay advertisement messages received
                 on the interface.";
            }
            leaf request-message-count {
              type yang:zero-based-counter64;
              config false;
              description
                "Number of AMT membership request messages sent
                 on the interface.";
            }
            leaf membership-query-message-count {
              type yang:zero-based-counter64;
              config false;
              description
                "Number of AMT membership query messages received
                 on the interface.";
            }
            leaf membership-update-message-count {
              type yang:zero-based-counter64;
              config false;
              description
                "Number of AMT membership update messages sent
                 on the interface.";
            }
          }
        }
        container gateway-message-statistics {
          config false;
          description
            "Message statistics of the AMT Gateway.";
          leaf discontinuity-time {
            type yang:date-and-time;
            description
              "The time on the most recent occasion at which the AMT
               Gateway message counters suffered a discontinuity.

               If no such discontinuities have occurred since the
               last re-initialization of the Gateway, then this
               data node contains the time when the Gateway was last
               initialized.";
          }
          container received {
            description
              "Received message statistics of the AMT Gateway.";
            leaf relay-advertisement {
              type yang:zero-based-counter64;
              description
                "Number of AMT Relay advertisement messages
                 received.";
            }
            leaf membership-query {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership query messages
                 received.";
            }
          }
          container sent {
            description
              "Sent message statistics of the AMT Gateway.";
            leaf relay-discovery {
              type yang:zero-based-counter64;
              description
                "Number of AMT Relay Discovery messages sent.";
            }
            leaf request {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership request messages sent.";
            }
            leaf membership-update {
              type yang:zero-based-counter64;
              description
                "Number of AMT membership update messages sent.";
            }
            leaf teardown {
              type yang:zero-based-counter64;
              description
                "Number of AMT teardown messages sent.";
            }
          }
        }
      } // gateway
    } // amt
  } // augment
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>This document specifies a YANG data model for AMT that configures and monitors
   address parameters for both Relay and Gateway functions. Operators
   MUST monitor for address family mismatches between associated address parameters
   to ensure correct protocol operation, tunnel establishment, and forwarding behavior.</t>
      <t>The following address pairs and combinations are critical and MUST be validated
   for address family consistency:</t>
      <ul spacing="normal">
        <li>
          <t>On the AMT Relay:  </t>
          <t>
Within the 'relay/addresses/address' list entry indexed by a given address
family ('family'):  </t>
          <ul spacing="normal">
            <li>
              <t>The 'anycast-prefix' (discovery anycast prefix)</t>
            </li>
            <li>
              <t>The 'local-address' (unicast IP address)</t>
            </li>
          </ul>
          <t>
These IP addresses MUST belong to the same address family indicated by the 'family'
leaf (either both IPv4 or both IPv6). A mismatch (e.g., IPv4 'anycast-prefix' paired
with IPv6 'local-address' under the same IPv4 'family' entry) indicates a configuration
anomaly that can prevent Relay Discovery, Advertisement responses, and tunnel setup.</t>
        </li>
        <li>
          <t>On the AMT Gateway:  </t>
          <t>
Within each 'gateway/pseudo-interfaces/interface' entry:  </t>
          <ul spacing="normal">
            <li>
              <t>The 'relay-discovery-address'</t>
            </li>
            <li>
              <t>The 'relay-address'</t>
            </li>
            <li>
              <t>The 'local-address' (operational state)</t>
            </li>
          </ul>
          <t>
These IP addresses MUST all belong to the same address family. A mismatch can lead to
failure in Relay Discovery, tunnel establishment, or traffic decapsulation.</t>
        </li>
      </ul>
      <t>It is RECOMMENDED that operators implement automated configuration validation tools to
   detect such address family mismatches. When combined with the required monitoring,
   this provides a robust defense against misconfiguration.</t>
      <t>Upon detecting an address family mismatch, the device MUST log an appropriate error or alarm
   and prevent the inconsistent configuration from being applied.
   Corrective actions include reconfiguring the affected addresses to match the intended address
   family and verifying routing reachability for the configured addresses.</t>
      <t>This section focuses on fault management for address family mismatches, the core operational
   risk addressed here. While broader network management includes performance, security, and other aspects,
   this document does not define new requirements in those areas. The above recommendations for validation
   and logging still support overall network reliability and security.</t>
    </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-amt" YANG module defines a data model that is 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="I-D.ietf-tls-rfc8446bis"/>, 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 this YANG module 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[
  Under /rt:routing/rt:control-plane-protocols/rt:control-plane-
  protocol/: Unauthorized access to any data nodes in these subtrees
  can adversely affect the AMT subsystem of both the local device and
  the network. This may lead to network malfunctions, delivery of
  packets to inappropriate destinations, and other problems.

    amt/relay/addresses/address:
      This subtree specifies the IPv4 or IPv6 address information
      for an AMT Relay. Modifying the configuration may cause the
      AMT tunnel to be torn down or established.

    amt/relay/secret-key-rotation-interval:
      This data node defines the maximum validity period or rotation
      interval for the private secret key. Modifying this value can
      weaken security or disrupt operations, as AMT protocol security
      fundamentally depends on this key. Using a secret key beyond
      its validity period extends its exposure to potential attacks,
      increasing the likelihood of compromise and weakening the
      intended security protections. Therefore, write access to this
      node MUST be restricted to authorized administrators, and all
      changes SHOULD be logged. Note that while key provisioning is
      out of scope of this document, it MUST also be performed
      securely.

    amt/relay/relay-dns-resource-records/record:
      This subtree specifies the DNS RR configuration used to
      discover AMT Relays. Modifying this configuration may cause
      the AMT Gateway to discover new AMT Relay devices, or fail to
      discover AMT Relay devices.

    amt/gateway/pseudo-interfaces/interface:
      This subtree specifies the parameters of AMT pseudo-interface
      for an AMT Gateway. Modifying this configuration may cause the
      AMT Gateway to establish or tear down tunnels with multiple
      AMT Relays.
]]></artwork>
      <t>Some of the readable data nodes in this YANG module 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[
  Under /rt:routing/rt:control-plane-protocols/rt:control-plane-
  protocol/: amt/relay and amt/gateway. Unauthorized access to any
  data nodes in these subtrees can disclose operational state
  information about the AMT Relay or AMT Gateway on this device.
]]></artwork>
      <t>There are no particularly sensitive RPC or action operations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="ietf-xml-registry">
        <name>IETF XML 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-amt
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.
]]></artwork>
      </section>
      <section anchor="yang-module-names-registry">
        <name>YANG Module Names Registry</name>
        <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-amt
   Maintained by IANA?  N
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-amt
   Prefix:  amt
   Reference:  RFC XXXX
]]></artwork>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Mohamed Boucadair for review and comments.</t>
      <t>Thanks to David Blacka for the DNSDIR, Mike Ounsworth for the SECDIR,
Michael P for the OPSDIR, Robert Wills for the YANGDOCTORS, and
Behcet Sarikaya for the GENART review.</t>
      <t>Thanks to Deb Cooley, Eric Vyncke, Gorry Fairhurst, Roman Danyliw,
and Andy Newton for the IESG 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="RFC7450" target="https://www.rfc-editor.org/info/rfc7450" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7450.xml">
          <front>
            <title>Automatic Multicast Tunneling</title>
            <author fullname="G. Bumgardner" initials="G." surname="Bumgardner"/>
            <date month="February" year="2015"/>
            <abstract>
              <t>This document describes Automatic Multicast Tunneling (AMT), a protocol for delivering multicast traffic from sources in a multicast-enabled network to receivers that lack multicast connectivity to the source network. The protocol uses UDP encapsulation and unicast replication to provide this functionality.</t>
              <t>The AMT protocol is specifically designed to support rapid deployment by requiring minimal changes to existing network infrastructure.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7450"/>
          <seriesInfo name="DOI" value="10.17487/RFC7450"/>
        </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="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="RFC8777" target="https://www.rfc-editor.org/info/rfc8777" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8777.xml">
          <front>
            <title>DNS Reverse IP Automatic Multicast Tunneling (AMT) Discovery</title>
            <author fullname="J. Holland" initials="J." surname="Holland"/>
            <date month="April" year="2020"/>
            <abstract>
              <t>This document updates RFC 7450, "Automatic Multicast Tunneling" (or AMT), by modifying the relay discovery process. A new DNS resource record named AMTRELAY is defined for publishing AMT relays for source-specific multicast channels. The reverse IP DNS zone for a multicast sender's IP address is configured to use AMTRELAY resource records to advertise a set of AMT relays that can receive and forward multicast traffic from that sender over an AMT tunnel. Other extensions and clarifications to the relay discovery process are also defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8777"/>
          <seriesInfo name="DOI" value="10.17487/RFC8777"/>
        </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>
      </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="RFC7951" target="https://www.rfc-editor.org/info/rfc7951" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7951.xml">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </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="I-D.ietf-tls-rfc8446bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-tls-rfc8446bis-14" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-rfc8446bis.xml">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <date day="13" month="September" year="2025"/>
            <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. This document updates RFCs 5705, 6066, 7627, and 8422 and obsoletes RFCs 5077, 5246, 6961, 8422, and 8446. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8446bis-14"/>
        </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="W3C.REC-xml-20081126" target="https://www.w3.org/TR/2008/REC-xml-20081126">
          <front>
            <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title>
            <author initials="T." surname="Bray" fullname="Tim Bray">
              <organization/>
            </author>
            <author initials="J." surname="Paoli" fullname="Jean Paoli">
              <organization/>
            </author>
            <author initials="M." surname="Sperberg-McQueen" fullname="Michael Sperberg-McQueen">
              <organization/>
            </author>
            <author initials="E." surname="Maler" fullname="Eve Maler">
              <organization/>
            </author>
            <author initials="F." surname="Yergeau" fullname="François Yergeau">
              <organization/>
            </author>
            <date year="2008" month="November"/>
          </front>
          <refcontent>World Wide Web Consortium Recommendation REC-xml-20081126</refcontent>
        </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>
        <reference anchor="I-D.ietf-netconf-udp-client-server" target="https://datatracker.ietf.org/doc/html/draft-ietf-netconf-udp-client-server-10" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-netconf-udp-client-server.xml">
          <front>
            <title>YANG Groupings for UDP Clients and UDP Servers</title>
            <author fullname="Alex Huang Feng" initials="A. H." surname="Feng">
              <organization>INSA-Lyon</organization>
            </author>
            <author fullname="Pierre Francois" initials="P." surname="Francois">
              <organization>INSA-Lyon</organization>
            </author>
            <author fullname="Kent Watsen" initials="K." surname="Watsen">
              <organization>Watsen Networks</organization>
            </author>
            <date day="16" month="December" year="2025"/>
            <abstract>
              <t>This document defines two YANG 1.1 modules with reusable groupings for managing UDP clients and UDP servers. Notes to the RFC editor This note is to be removed before publishing as an RFC. Please replace "RFC XXXX" with the assigned RFC number prior to publication. Note that there are also several occurrences of "RFC XXXX" in the YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-udp-client-server-10"/>
        </reference>
      </references>
    </references>
    <?line 1540?>

<section anchor="full-tree">
      <name>Full Tree</name>
      <artwork type="ascii-art"><![CDATA[
module: ietf-amt
  augment /rt:routing/rt:control-plane-protocols:
    +--rw amt!
       +--rw relay {amt-relay}?
       |  +--rw addresses
       |  |  +--rw address* [family]
       |  |     +--rw family             identityref
       |  |     +--rw anycast-prefix     inet:ip-prefix
       |  |     +--rw local-address      inet:ip-address
       |  +--rw tunnel-limit?            uint32
       |  +--rw secret-key-rotation-interval?     uint32
       |  +--rw relay-dns-resource-records
       |  |  +--rw record* [source-address]
       |  |     +--rw source-address         inet:ip-address
       |  |     +--rw precedence?            uint32
       |  |     +--rw d-bit?                 boolean
       |  |     +--rw relay-type?            enumeration
       |  |     +--rw discovery-address?     inet:ip-address
       |  |     +--rw domain-name?           inet:domain-name
       |  +--ro tunnels
       |  |  +--ro tunnel* [gateway-address gateway-port]
       |  |     +--ro gateway-address     inet:ip-address
       |  |     +--ro gateway-port        inet:port-number
       |  |     +--ro local-address       inet:ip-address
       |  |     +--ro local-port          inet:port-number
       |  |     +--ro state               identityref
       |  |     +--ro multicast-flows
       |  |     |  +--ro flow* [source-address
       |  |     |     |         group-address]
       |  |     |     +--ro source-address
       |  |     |     |         ip-multicast-source-address
       |  |     |     +--ro group-address
       |  |     |               rt-types:ip-multicast-group-address
       |  |     +--ro multicast-group-num        yang:gauge32
       |  |     +--ro request-message-count
       |  |     |              yang:zero-based-counter64
       |  |     +--ro membership-query-message-count
       |  |     |              yang:zero-based-counter64
       |  |     +--ro membership-update-message-count
       |  |     |              yang:zero-based-counter64
       |  |     +--ro discontinuity-time           yang:date-and-time
       |  +--ro relay-message-statistics
       |     +--ro received
       |     |  +--ro relay-discovery       yang:zero-based-counter64
       |     |  +--ro request               yang:zero-based-counter64
       |     |  +--ro membership-update     yang:zero-based-counter64
       |     |  +--ro teardown              yang:zero-based-counter64
       |     +--ro sent
       |     |  +--ro relay-advertisement yang:zero-based-counter64
       |     |  +--ro membership-query      yang:zero-based-counter64
       |     +--ro error
       |     |  +--ro incomplete-packet     yang:zero-based-counter64
       |     |  +--ro invalid-mac           yang:zero-based-counter64
       |     |  +--ro unexpected-type       yang:zero-based-counter64
       |     |  +--ro invalid-relay-discovery-address
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro invalid-membership-request-address
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro invalid-membership-update-address
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro incomplete-relay-discovery-messages
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro incomplete-membership-request-messages
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro incomplete-membership-update-messages
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro no-active-gateway     yang:zero-based-counter64
       |     |  +--ro invalid-inner-header-checksum
       |     |  |                           yang:zero-based-counter64
       |     |  +--ro gateways-timed-out                 yang:gauge64
       |     +--ro discontinuity-time       yang:date-and-time
       +--rw gateway {amt-gateway}?
          +--rw pseudo-interfaces
          |  +--rw interface* [interface]
          |     +--rw name                      if:interface-ref
          |     +--rw discovery-method          identityref
          |     +--rw relay-discovery-address?  inet:ip-address
          |     +--rw relay-address?            inet:ip-address
          |     +--rw relay-port?               inet:port-number
          |     +--ro local-address?            inet:ip-address
          |     +--ro local-port?               inet:port-number
          |     +--rw upstream-interface?       if:interface-ref
          |     +--rw discovery-timeout?        uint32
          |     +--rw discovery-retrans-count?  uint32
          |     +--rw request-timeout?          uint32
          |     +--rw request-retrans-count?    uint32
          |     +--rw dest-unreach-retry-count? uint32
          |     +--ro tunnel-state              identityref
          |     +--ro relay-discovery-message-count
          |     |                      yang:zero-based-counter64
          |     +--ro relay-advertisement-message-count
          |     |                      yang:zero-based-counter64
          |     +--ro request-message-count
          |     |                      yang:zero-based-counter64
          |     +--ro membership-query-message-count
          |     |                      yang:zero-based-counter64
          |     +--ro membership-update-message-count
          |                            yang:zero-based-counter64
          +--ro gateway-message-statistics
             +--ro discontinuity-time         yang:date-and-time
             +--ro received
             |  +--ro relay-advertisement yang:zero-based-counter64
             |  +--ro membership-query yang:zero-based-counter64
             +--ro sent
                +--ro relay-discovery yang:zero-based-counter64
                +--ro request           yang:zero-based-counter64
                +--ro membership-update yang:zero-based-counter64
                +--ro teardown          yang:zero-based-counter64
]]></artwork>
    </section>
    <section anchor="data-model-example">
      <name>Data Model Example</name>
      <t>This section presents a simple and illustrative example of how to
   configure AMT.</t>
      <t>The example is represented in both XML <xref target="W3C.REC-xml-20081126"/> and
   JSON <xref target="RFC7951"/> formats.</t>
      <t><xref target="fig-example-xml"/> shows a sample configuration for an AMT Relay service in
   XML format. This example configures the protocol address family
   (IPv4 or IPv6), secret key rotation interval (120 minutes), and tunnel limit
   (10) for AMT Relay function. In addition, the AMT anycast prefix is
   set to 192.0.2.1/32 for IPv4 and 2001:db8::1/128 for IPv6, and the
   AMT local address is configured to 198.51.100.42 for IPv4 and
   2001:db8:abcd:12::42 for IPv6.</t>
      <figure anchor="fig-example-xml">
        <name>Data Model Example in XML</name>
        <sourcecode type="xml"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"
         xmlns:rt="urn:ietf:params:xml:ns:yang:ietf-routing">
  <control-plane-protocols>
    <amt xmlns="urn:ietf:params:xml:ns:yang:ietf-amt">
      <relay>
        <addresses>
          <address>
            <family>rt:ipv4</family>
            <anycast-prefix>192.0.2.1/32</anycast-prefix>
            <local-address>198.51.100.42</local-address>
          </address>
          <address>
            <family>rt:ipv6</family>
            <anycast-prefix>2001:db8::1/128</anycast-prefix>
            <local-address>2001:db8:abcd:12::42</local-address>
          </address>
        </addresses>
        <tunnel-limit>10</tunnel-limit>
        <secret-key-rotation-interval>
          120
        </secret-key-rotation-interval>
      </relay>
    </amt>
  </control-plane-protocols>
</routing>
]]></sourcecode>
      </figure>
      <t><xref target="fig-example-json"/> shows the same sample configuration for an AMT Relay
   service in JSON format.</t>
      <figure anchor="fig-example-json">
        <name>Data Model Example in JSON</name>
        <sourcecode type="json"><![CDATA[
{
  "ietf-routing:routing": {
    "control-plane-protocols": {
      "ietf-amt:amt": {
        "relay": {
          "addresses": {
            "address": [
              {
                "family": "ietf-routing:ipv4",
                "anycast-prefix": "192.0.2.1/32",
                "local-address": "198.51.100.42"
              },
              {
                "family": "ietf-routing:ipv6",
                "anycast-prefix": "2001:db8::1/128",
                "local-address": "2001:db8:abcd:12::42"
              }
            ]
          },
          "tunnel-limit": 10,
          "secret-key-rotation-interval": 120
        }
      }
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
  </back>
  <!-- ##markdown-source:
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
vwwWLyBkb1hB/x9odCLOrwcBAA==

-->

</rfc>
