<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 3.2.3) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mboned-amt-yang-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.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-07"/>
    <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="08"/>
    <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"/>
   and <xref target="RFC7950"/>, 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 Timeout: 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 timeout.</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 relay or 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-timeout?      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-timeout':</dt>
            <dd>
              <t>Indicates the maximum recommended validity
   period or rotation interval for the private secret (or key) used by a
   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-timeout {
          type uint32;
          description
            "The timeout interval of secret key.";
        }
        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;
              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;
              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="RFC8446"/>, and QUIC <xref target="RFC9000"/>) and (2) have to use
   mutual authentication.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in 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-timeout:
    : 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. 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, and Robert Wills for the YANGDOCTORS 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="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9000" target="https://www.rfc-editor.org/info/rfc9000" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9000.xml">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="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 1524?>

<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-timeout?      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 timeout (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-timeout>120</secret-key-timeout>
      </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-timeout": 120
        }
      }
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9V923bcxrHoO7+i93itQzLmDC+iZWksS6Yp2WG2KCkkHdvJ
ygM4gyERYYAJgCFFS9q/c37ivO0fO3XrG9AYYniRFGTFGgLd1dXV1dVV1dXV
/X5/ZZSPk+xsqObVpP9oZaVKqjQeqj31+96rn9XzqIrUYT6OUzXJC7U3r/Jp
VCUjdThP4Z+orNTJPMviFECotb3Dk/WV6PS0iC+G4fqHJyvjfJRFU2hiXEST
qp/E0O70NM/icT+aVv2rKDvrb327Moqq+CwvroaqrMYrK2UVZeMohWJDdRWX
K+X8dJqUZZJn1dUM3h28OPlpZZYM1T+qfLShyryoinhSwq+rKf8Y5dNpnFXl
P1dWklkxVFUxL6udra3HWzsrURFHQ/V6Vq5cAiUOf3z96sVz9WtevMVu/Vzk
89nK20vu0gZ1YiWaV+d5MVxRqg//VyrJSvg+UC+TOf09macpd/P3pMwBiv5Q
5EjeeJxUeUEv8uIsypI/gKp5NlT750mGFDtN0pg+j/J5ViEZ6Au9iqdRkg5V
msyvCPYPI/w0pToD6KaP1D4ildWQ2j8HMl9GhFfWBa9X8aX684N9dRKPzrM8
zc8SGITr8MtGupnB1u7u9u4P5w9GTQT/PlB/x3I1FP9+Hmdna8cw7FfrTgEf
rb+fvFD7eTHLC3pxDUZ/IJTBHwj4hz8qotVglPnY/DZQP8cNZH6bxzSK5pOP
xp/n0WWcLEMcdQaQ3jHUH86pepMyfxuo/55Po0K9is6iIvpXDam/JVk+DpTw
cfvLPEtmMZSIq0vg6NLD4iLJ3mL9H/7FpQZZXK2sZHmBs/wiRv4++ml/Z3v7
sfx88PDRI/n5cGtnS35+u/uN+fnY/Hy0/e2u/rnz2Px8sLttfz6wP3UTj779
9lv5+fjxNpVVys43oJDi/v/lf/9fAWRUx6Pz/DJKxzEzboCXRajtgwjIM0cy
nYDsYIKMQdwM1fN4FE9PgVg7Wzvf8LSIJyOQMSA4hoiQQow21PPXB2p7awD9
e/TtpuDJDUWAERQ9r6pZOdzcvLy8HBSTUZ9xGcDIbCbZJN+Ed1QH//Bpvbvz
zY4m8I6hFFDVEG1rd8sSzfzc3X2oiba1RW9/fbA/OHqx3383Tfsg5x5tb+88
bCfmSTJVPxbRlU/hOMrUmyhPE+/1YQITG0T6MXAMUOusfzj66zyOM6/Qi4tY
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
OKj6JgQBAA==

-->

</rfc>
