<?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-06" 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-06"/>
    <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="March" day="24"/>
    <area>Ops</area>
    <workgroup>MBONED Working Group</workgroup>
    <keyword>YANG, AMT</keyword>
    <abstract>
      <?line 90?>

<t>This document defines a YANG data model for the management of
   Automatic Multicast Tunneling (AMT) protocol operations.</t>
    </abstract>
  </front>
  <middle>
    <?line 95?>

<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>Network operators SHOULD implement configuration validation and operational monitoring
   to detect such address family mismatches. When detected, the device MUST log an appropriate
   error or alarm, and MAY 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>
    </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="I-D.ietf-netmod-rfc8407bis"/>.</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/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>
    </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>
    </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="I-D.ietf-netmod-rfc8407bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-netmod-rfc8407bis-28" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-netmod-rfc8407bis.xml">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="5" month="June" year="2025"/>
            <abstract>
              <t>This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained 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. This document obsoletes RFC 8407. Also, this document updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained modules.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-28"/>
        </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 1499?>

<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"?>
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <routing xmlns="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>ipv4</family>
              <anycast-prefix>192.0.2.1/32</anycast-prefix>
              <local-address>198.51.100.42</local-address>
            </address>
            <address>
              <family>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>
</config>
]]></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": "ipv4",
                "anycast-prefix": "192.0.2.1/32",
                "local-address": "198.51.100.42"
              },
              {
                "family": "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:
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
v8SagGk0KyhjaNHEPGnLd7ZUb7xbau6sT4fJ+2wKxoedQSGu0u40q5wkpV7T
BR861yfiMGkqKNSUoej69BJ0zwJOYjlER+7xJcJpvsAgx0kQ7lJ278LnG1lG
cOkRTY5hmIqcRsgJaSxRGS7dVHD2CWUtHXe+wTC3XbZ0Z2Qi/aZBKhx9jDQ3
ujQddYpMXz7cjBSjQ7UmDE7TGvp9aMztZn1/G1glJ7WJUxBCPTs4fKWeUP7C
JNoD9ZapQznmujMW7zqqm6qbS0cj30roGaPVyU65sI8Lr826pb/lxj3p5q1t
CVkTP8AytsW113h9TYRo2SJvj2q7EUHuPhDzjojQ5b6WW/f/k4Zr3j0hWu7a
uWtSfIKIzrunRdsNPDcnxOIIvvZLrz5FDJ82I3+NHU76Gh2uLbbK0rdvfX5n
qqC4wJNqT7IucKfqnnbwpbZ5Sz9pgObCGfW1B4bFlOqbRDl+uWgxn3XfrD+f
OGiw+wz5igJ5u4YMfsmY3aj+8m8TnhsTtF9lJG78Or3lJD5tVDnXN/ILvruc
f3IO6pUrc1coH9/CjAD9aVK+A6r92MPkUz33C26J/NjTl979ZG9bGSAl8NbQ
b9RL53DmQZFXYHTy31Xkxr/KZqaL3hxFBMFdXxPPwxd5Tosc77ciDqR9vkHq
5eOiPhPXF9YIr0qpBoKpQKHTbwKWvUP+sTed2zE1B0RVUlXFKKNUyU0cECbe
T5pXuAM4KkpMwmWSb3uJm+Xsu96HnNIFBIiznFNFv8FxClpCVpQDczErX7lK
PgXTeFZWcjR1eizeBb6sFSYfhlxO6Ksc9FO07Y/oI8hIl0c4elWd5qNLvtj1
T+ql3XQl0g5Fz/ktA43DTQKxaRIk61+rvHXIm31ZPk7fc4rpRJ2CxDCRXQxP
MFjTiTrXdUN/iud2XnP2gCSYkD+te9WClMZrzVSE6/ausSr1Ej13PR/p5c+u
nWzeK5arrKUZxa/RHKV0pYX9Y299oPZtLtG1dHA62OBSjX7jkGvLieI5KG9p
2M85JlS0CDMonQKVBmTdSYKT+AlJGXiSF9NkIoEyeKHUDNP7wwp+7Uu0jeAW
D+1hreT2UJ0fo57PBs05JYs0mFW0i6Cv691s7HNvmp/SmWCutOxPrkYKRT+F
k8Y9fU5+q+vmDJ5Mv3beeGOOBIaJMjabDydJNkE+AtRoEDzOPzDQQfIzjdNR
MqvmE0Kaqf6C76oQNoQXukn2W7wFiEfOz0orvEInqHVpIExTnMaUFKlGXke2
TisXHXDaGC6bjjnV3zjF+Aam2qQgb2kyA545K5HNIng+aUDH/ZNyypPqcP93
Mx3ZTDacK+wGpariJAAAeJJJLvkDZs+UR5Clg77Ml1JoMgR9gSEQlY/922GG
TvPAaSs9H9vvK5afIbYwaNkJXbajL30QZ2820XfA0PF9JzzaXGeA8vUoBUMR
S7YJ10pSOvH9jOkEIZAXmqy9FAYYFSHv/kFzq+vg+8E2AgJd5MOHZ/0ndBVd
P09rgNQvT0b3d7e+P84qulZX5JBRB3re5W58vQxyE0ekE/dA+Z/i9XGpnt+Y
cpmuZII3mLAe4bBGxVdHyn0W+n6NDZlalZnGB94gv9JCdu3F0zcHL1/8QkKA
7gTe29ndvrqicXj99Ig+ymXBW7tb0CtZw1EEEIjBQa1tr7PhDmOPNxomSHdc
orQTQ3u4sE6B6sK/j/jr0VkK3GDt6OjPFqndne928ObiN8+PBJnd3T19lfFf
3j47kNuPt7YARb7Oem3Hax1BTed0wUDina+wwxQn1T6RnTJrlEAwvt1u7cX+
weG6uUQZCCZdP8/07dbTNMkr3uLF2x1htfMAchZZ3EIaAb8plQyAXOdoSA4o
l5JBfmYXWDrmSwUoaTgyTXvTTgucpjql9R9cg7Xpfcn5bBNnP8i5zd65Zrpx
R6EOo0VAF7DsEJtNui+JfuHyol9qLRukMMziOOO0rSYzunhzJDvsOt+YqcG5
qCCWk+xdytlajykZaZURY+Kun88nYC1TNbpDc2ruHQLZd56VBV/KCNwVoKcu
XXgeEg8dZ3WfEeXZRL3wCrOcqjzcdDZY5Md8IQmSXzgHcmT/ZA/KMJqiUD8F
4Y19SIl1oitOkCZeY5odBIotzIa6TEXldzAhsHaWIRBNJ/KobWoqIUuFv7VC
wFepqG63+DQ/CRBdYnMI8Pg+VAotlBWAszq/dNFlxRiIqfsjgEZ0noHy/aFs
YNpoVQhXwiWIsClOVlINaxMlImIy0dd5criaXD8llzGBjiAahJkgoMAZ62cD
Bz3jjVydtY5P1FWchc2Ru7Rlq80JuYm25qTUBUzEaeV6O0EQbLZYAENbaiii
ignimIEcLsUKsZuD380W5BrC4SU7A+RhIl9dMcpzEqlCMcOhf9WJIuV1BwoN
KCdohkMDbohotKvtSeM3+d+uXacUkK8DrCVKz8XXvUbLXBPj9jyr2rrugtGT
zYTBO6GAeAmc47KiKVeRXonK6LX46BohwTqo8V2JNbs2dLVlpuhcaR0pFpss
DsXM7CCdG+9ipnmj00mRWUbZZUCzDsHI0BGNjgqbgBEEzDiUDTHxhDgep2yp
j3UeDFdmdBcYz2qWVHNiT3ypPd+qrIQNElaazYlag+raaQr2BvxHZMqGiCq8
olefcl2PSZSBkjBJ4GkT3rmwzJ860o3/B8zfFZOhALgbCeCKAMMECElnhg8W
SAcNZ5GQIPGA62pSVKlqGJ0ahJtFLTlG+Rwkziy9+VroW8ppdZJBQbdGh8bE
N9/wtdJ/O3wOFidfC01EpNKUB428wRw/zBdHi4lh5ffb1890kppeXvWUvl+a
lCnrMeo1WupJLitSQe/t3b9/dQVDiK5K0PpHWdaHsUcg0MBQqXmZD9EIGRJD
qIbvp5NhXg3JOauNE1IbGTpOakolN6qHrBs/e3r0K9mBgAO8erG5/4OsQt1H
6gldn4Foohu0muE+LLtPkVq0Kg95Vb7A7zcnm3dHtpAI35Gb0mnBElSMm60d
MBA8ygY3fPcQhH/Ld5SuCB4I4RLvMMn0nenHl9Sdx1BOFyZqLDEUr8h/NVTK
DI3kRx4qcxe4pi0YKXjOGuzYU740feXNWZK/o7V0WJwleBzo52I+Ao6ZlXIN
x3kG0ks8oczfVlb6/b46BhUHQf6CN4m/QZHy4Rs8HNfHJXfVIAUPwtAlhL4L
shsLYVH2bb9fXmBX/0OvWn4j1y2amxWvHuvvH02l8J65j82Pf1L/YP/CP/1C
ph3xPriPEwrWUim4xox5jXtrWUs9PxTcqxdcIWX64d5C9NjFkqP/GuWblwY9
Xli+XT2LUZU/AVH9jHZtxA1yJRoCt/bZrWwvXFncb7cO3UriFadHbiRpqWQz
M3s1nSsb2loL/aaPl+iek6PabTbMXx0MWKF1p+bo6E8wOotSEMfHqmhkEe7a
k8LP7et2wzkP0FI1siA6NuocSFBLNspRoP5z3ZovwvSvjVJmFPBzY4XEipv/
4uOluWyOkYf/cpAXJCJd2IyHUUtJ+3RI3nktYW0mS3nc3JUttaPxjddh27o3
3YbiwiDCT9haLE7vrpuLhJkFwLzosgZDakt85xR0RsuPZ/wYA2X3K7t3yIfC
wRjLk8WF0gzNuAkUE7FwE1xkuafemDfp5QdU3aKfHMG0PIa08dQCvpmV6iZk
dLM43XxIwxxJN4NyTSKiRq2QU95gIjTp0Jrb53M372fK+cStX5t45nO1vyD5
yxdAIci+8kkxaOY/uVk/FuQG+aT4R3JzREFKWo4Yu2sVmO3CklV+kwjByXlg
7VpTrOH+dUp81IXMV1A1ze9/+iUNRDquH33Cc64tABpH9i2ApuIc1G3hk49b
Nf1ofc/C0m0vUR/NgtAwbLMXlD/enpGyNAKuqXIjBC4ih5Y1oKWHz/cJhNZ0
azXv0Obja6oFh1WdTneqFrZ1HZItZyYfL6pW+CcC/UG5ZkY31NS4eq4c1hN7
rmVc0UYXnGz7dA0vsLDuurFultYnbHWRxdXeYPdmfZdJu9Xkll5gobWLHBdA
/BjZ7cyIAEbDjOgIoGnjNHD3bcKOcFUwfZccJhdC0xJcFkLTCmyHoD37T3D/
i4OOnr5PUOlrhrHNQOqgBx8jrCg6kfz62WQyx70cDivhurh5elZcyNa0iSrC
/S8bB6XL0l6MwObYHwqywO2dDx9+u3cweP30oP9+OunvbG3d397e2eOwMQTz
n0cvX/COy/cPvsNwMt6Bk23cDx+g2b40gxCgQHWGlw8lGPeJbQcxiUEIg07z
BDjJnpQ0IKEdugdOSDzthutYKD/kEkGsuREV6xviP6dsTTrZwtr2zpaawuqr
02rdi9UlrzxB2d5aN0H5cm2qhJMM1DMK4M4kol12IP1QbLlIUy543n6wM9jC
a7g37+0QVMKRLgPd2toejo/vD4fbm9s79/XHPcGK9+IbST2Vs3/Pu2vbD+4P
vtsebG9tDXb9JhCAaSU5Ho2H2zvDoS20N5CdIBi9lYeP4b8YtYknBX/sbQ+2
eoquTszy0x97b9/80r/fe/xo5aFEfkHhvPqx17IRBroQlhvighgiqEeAy0Md
CLq4rt1Ek/JUGaq37D09koX6EDTxzqAxjvORWeEPaZgfOSv+odmQeuTxAf3+
UcAdHvIsfIT3Kz/clD/CMv5W0yN3ajzcDD6GdT3F9ZE35g83/Y8+wpvx19f3
Y69rP4KJvGRXYhN0+R493IwO2EN3y+3R9tbDTe+FW7K52fYIeMXDzch7O282
vYkDSEzl68PNBbMVqvHMhuW0yevpkTmg9E3AVoF11ZP0x15ThiAzB66Jx5FU
yI//VRW5YcgmFL8TX2bmpVkzSwFhzMIuEPgKHhTructUbxP3hnKIrNdCAlNA
2aDqIS7IoXP6rEe4eK/gpRnk4IP9BB/+EUy4ZgqQHk9sKNvDBdtrXh3c8+cw
lnSXa6yGN2W5grNIe0GFqxDCdVjudcMyWIydEI0twQa+3t+uc8LrSc9dXwB7
e8v72lxMWGZny5QxJ/tW9H+vnMN734RTfPHiwKkLq+P/AwsMppZJ/wAA

-->

</rfc>
