<?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"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std"
  docName="draft-ietf-6man-ipv6-neighbor-discovery-yang-00"
  ipr="trust200902">
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?>
  <?rfc strict="yes"?>
  <?rfc toc="yes"?>

  <!-- generate a ToC -->
  <?rfc tocdepth="4"?>
  <?rfc compact="yes"?>

  <front>
    <title abbrev="ND YANG model">YANG Data Model for IPv6 Neighbor Discovery</title>

    <author initials="F" surname="Zhang" fullname="Fan Zhang">
      <organization>China Telecom</organization>
      <address>
        <postal>
          <city>Guangzhou</city>
          <country>China</country>
        </postal>
        <email>zhangf52@chinatelecom.cn</email>
      </address>
    </author>
    <author initials="Y" surname="Zhu" fullname="Yongqing Zhu">
      <organization>China Telecom</organization>
      <address>
        <postal>
          <city>Guangzhou</city>
          <country>China</country>
        </postal>
        <email>zhuyq8@chinatelecom.cn</email>
      </address>
    </author>

    <author initials="B" surname="Wu" fullname="Bo Wu">
      <organization>Huawei</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>lana.wubo@huawei.com</email>
      </address>
    </author>

    <author initials="J" surname="Hu" fullname="Jiayuan Hu">
      <organization>China Telecom</organization>
      <address>
        <postal>
          <city>Guangzhou</city>
          <country>China</country>
        </postal>
        <email>hujy5@chinatelecom.cn</email>
      </address>
    </author>
    <date year="2025" />

    <!-- Meta-data Declarations -->

    <area>Internet Area</area>

    <workgroup>6MAN</workgroup>

    <abstract>
      <t>This document defines a YANG data model to configure and manage IPv6 Neighbor Discovery
        (ND) and related functions,
        including IPv6 address resolution, redirect function, proxy Neighbor Advertisement, Neighbor
        Unreachability Detection (NUD), Duplicate
        Address Detection (DAD), and Enhanced Duplicate Address Detection. </t>

    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>This document defines a YANG data model "ietf-nd" to configure and manage IPv6 Neighbor
        Discovery (ND) and related functions, including IPv6 address resolution <xref
          target="RFC4861" />, redirect function <xref target="RFC4861" />, proxy Neighbor
        Advertisement <xref target="RFC4861" />, Neighbor Unreachability Detection (NUD) <xref
          target="RFC4861" />, Duplicate Address Detection (DAD) <xref target="RFC4862" />, and
        Enhanced Duplicate Address Detection <xref target="RFC7527" />. </t>

      <t>Basic neighbor management functionality is supported by the "ietf-ip" YANG data model <xref
          target="RFC8344" />, and there has already been a draft <xref
          target="I-D.wz-intarea-arp-yang-model" /> to extend the basic ARP YANG functionality to
        cover optional ARP features and related statistics, which is only for IPv4. Thus, an
        extension for IPv6 address resolution is required to maintain the Neighbor Cache entries for
        IPv6. </t>

      <t><xref target="RFC4861" /> specifies the Neighbor Discovery protocol for IPv6 and <xref
          target="RFC4862" /> specifies its related functions. However, the YANG module defined in
        the document only covers IPv6 address resolution <xref target="RFC4861" />, redirect
        function <xref target="RFC4861" />, proxy Neighbor Advertisement <xref target="RFC4861" />,
        NUD <xref target="RFC4861" />, DAD <xref target="RFC4862" />, and Enhanced DAD <xref
          target="RFC7527" />. Router and prefix discovery <xref target="RFC4861" /> are covered by
        submodule "ietf-ipv6-router-advertisements" in <xref target="RFC8349" />. Static neighbor
        cache entries and Stateless address autoconfiguration <xref target="RFC4862" /> are covered
        by module "ietf-ip" in <xref
          target="RFC8344" />. </t>

      <t>The model is based on YANG 1.1 as defined in <xref target="RFC7950" /> and conforms to
        Network Management Datastore Architecture (NMDA) as defined in <xref target="RFC8342" />.</t>

      <section title="Terminology">
        <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>
        <t>The following terms are defined in <xref target="RFC8342" />: <list
            style="symbols">
            <t>configuration</t>
            <t>system state</t>
            <t>operational state</t>
          </list>
        </t>
        <t>The following terms are defined in <xref target="RFC7950" />: <list
            style="symbols">
            <t>augment</t>
            <t>container</t>
            <t>data model</t>
            <t>data node</t>
            <t>leaf</t>
            <t>list</t>
            <t>module</t>
            <t>schema tree</t>
          </list>
        </t>
        <t>The following terms are defined in <xref target="RFC4861" />: <list
            style="symbols">
            <t>Neighbor Discovery</t>
            <t>Neighbor Advertisement</t>
            <t>proxy Neighbor Advertisement</t>
            <t>Neighbor Unreachability Detection</t>
          </list>
        </t>
        <t>The following term is defined in <xref target="RFC4862" />: <list
            style="symbols">
            <t>Duplicate Address Detection</t>
            <t>Stateless Address Autoconfiguration</t>
          </list>
        </t>
        <t>The following term is defined in <xref target="RFC7527" />: <list
            style="symbols">
            <t>Enhanced Duplicate Address Detection</t>
          </list>
        </t>
      </section>

      <section title="Tree Diagrams">
        <t>Tree diagrams used in this document follow the notation defined in <xref
            target="RFC8340" />.</t>
      </section>

    </section>


    <section anchor="design" title="Design of the Data Model">
      <t>The YANG data model for IPv6 ND defines global configurations and augments the "ietf-ip" <xref
          target="RFC8344" /> for per-interface configuration, which configures and manages IPv6
        address resolution and redirect function based on IPv6 ND protocol and other related
        functions, including proxy Neighbor Advertisement, NUD, DAD, and Enhanced DAD.</t>

      <t>Note that the features related to ICMP Router and Prefix Discovery are outside the scope of
        this module since they have already been defined in the submodule
        "ietf-ipv6-router-advertisements" <xref target="RFC8349" />, while static neighbor cache
        entries and stateless address autoconfiguration <xref target="RFC4862" /> are also out of
        the scope since it is covered by "ietf-ip"<xref target="RFC8344" />. </t>

      <section title="IPv6 Address Resolution and Redirect Function">
        <t>The data model augments the "/if:interfaces/if:interface/ip:ipv6" path defined in the
          "ietf-ip" module <xref target="RFC8344" /> for IPv6 address resolution based on ND
          protocol <xref target="RFC4861" />. </t>
        <t>The "dynamic-discovery" leaf enables the dynamic IPv6 address resolution based on ND
          protocol. </t>
        <t>The "ns-interval" leaf defines the interval of retransmitting Neighbor Solicitation
          messages when the node tries to learn the link-layer address of another node.</t>
        <t>As for the management of Neighbor Cache entries, the "stale-timeout" leaves define the
          timeout for STALE entries, while the "age" leaf augments the
          "/if:interfaces/if:interface/ip:ipv6/ip:neighbor" path to indicate the time that has
          passed since the last time the Neighbor Cache entry is confirmed reachable.</t>
        <t>The "statistics" container defines a collection of interface-related statistics about
          IPv6 ND messages.</t>
        <t>The "redirect" leaf enables the sending and processing of Redirect messages.</t>
      </section>

      <section title="Proxy Neighbor Advertisement">
        <t>The "proxy-na" container augmenting "ietf-ip"<xref target="RFC8344" /> defines the
          configurations of proxy Neighbor Advertisements <xref target="RFC4861" />, which indicates
          that a router is willing to accept packets not explicitly addressed to itself. After
          receiving a Neighbor Solicitation message that the destination address is not its own IPv6
          address, a proxy router replies the source with a Neighbor Advertisement message carrying
          its own link-layer address and the IPv6 address of the original destination.</t>
        <t>The "inter-vlan-proxy" leaf enables the router to proxy for hosts in the same subnet with
          different VLANs to enable the communication between them.</t>
        <t>The "all-proxy" leaf enables the router to proxy for all hosts, that is, responds
          unconditionally to Neighbor Solicitation messages no matter whether the sources and
          destinations are in the same subnet or not with its own Neighbor Advertisement
          messages,which can attract the traffic to the router itself for centralized control or
          hidding the topology of the network.</t>
      </section>

      <section title="Neighbor Unreachability Detection">
        <t>The "nud" leaf augmenting "ietf-ip"<xref target="RFC8344" /> enables Neighbor
          Unreachability Detection (NUD) <xref target="RFC4861" />, which is used for a node to
          track the reachability of the neighbors to which it is sending packets and update the
          state of the related Neighbor Cache entry.</t>
        <t>The "reachable-time" leaf defines the time to confirm a neighbor's reachability for NUD.
          The neighbor's state changes from REACHABLE to STALE when there is no other reachability
          confirmation from the neighbor in "reachable-time" milliseconds.</t>
        <t>The "ns-interval" leaf also indicates the interval of retransmitting Neighbor
          Solicitation messages for NUD.</t>
      </section>

      <section title="Duplicate Address Detection">
        <t>The "dup-addr-detect-transmits" leaf, which indicates the number of consecutive Neighbor
          Solicitation messages sent while performing Duplicate Address Detection (DAD) <xref
            target="RFC4862" />, has already been defined in "ietf-ip" [RFC8344]. The value of the
          "dup-addr-detect-transmits" leaf can be set to 0 in order to disable DAD.</t>
        <t>The "ns-interval" leaf also indicates the interval of retransmitting Neighbor
          Solicitation messages for DAD.</t>
        <t>The "enhanced-dad" container augmenting "ietf-ip"<xref target="RFC8344" /> defines the
          configurations of enhanced DAD <xref target="RFC7527" />, which automaticly detect the looped-back
          IPv6 ND messages used by DAD. </t>
        <t>The "enhanced-dad-auto-resolve" enables the automated action when detecting duplicates.
          A trusted router can log a system management message, drop the received ND message, and block the untrusted IPv6
          host nodes from which the duplicate NS(DAD) or NA message was received. </t>
      </section>

      <section title="IPv6 Neighbor Discovery Data Model">
        <t>This document defines the YANG module "ietf-nd", which has the following structure.</t>

        <figure>
          <artwork><![CDATA[
module: ietf-nd
  +--rw nd
     +--rw stale-timeout?   uint32

  augment /if:interfaces/if:interface/ip:ipv6:
    +--rw nd
       +--rw dynamic-discovery?   boolean
       +--rw nud?                 boolean
       +--rw reachable-time?      uint32
       +--rw ns-interval?         uint32
       +--rw stale-timeout?       uint32
       +--rw redirect?            boolean
       +--rw proxy-na
       |  +--rw inter-vlan-proxy?   boolean
       |  +--rw all-proxy?          boolean
       +--rw enhanced-dad
       |  +--rw enable?                      boolean
       |  +--rw enhanced-dad-auto-resolve?   boolean
       +--ro statistics
          +--ro in-ns-pkts?          yang:counter32
          +--ro in-na-pkts?          yang:counter32
          +--ro in-rs-pkts?          yang:counter32
          +--ro in-ra-pkts?          yang:counter32
          +--ro in-redirect-pkts?    yang:counter32
          +--ro out-ns-pkts?         yang:counter32
          +--ro out-na-pkts?         yang:counter32
          +--ro out-rs-pkts?         yang:counter32
          +--ro out-ra-pkts?         yang:counter32
          +--ro out-redirect-pkts?   yang:counter32
  augment /if:interfaces/if:interface/ip:ipv6/ip:neighbor:
    +--ro age?   uint32
        ]]></artwork>
        </figure>

      </section>
    </section>

    <section anchor="yangmodel" title="IPv6 Neighbor Discovery YANG Module">
      <t>This section presents the YANG module of IPv6 Neighbor Discovery defined in this
        document.</t>

      <t>This module imports modules from Common YANG Data Types <xref target="RFC6991" />, A YANG
        Data Model for Interface Management <xref target="RFC8343" />, and A YANG Data Model for IP
        Management <xref target="RFC8344" />.</t>

      <figure>
        <artwork><![CDATA[
<CODE BEGINS> file "ietf-nd@2025-08-26.yang"                
module ietf-nd {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-nd";
  prefix nd;

  import ietf-inet-types {
    prefix inet;
  }
  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types";
  }
  import ietf-interfaces {
    prefix if;
    reference
      "RFC 8343: A Yang Data Model for Interface Management";
  }
  import ietf-ip {
    prefix ip;
    reference
      "RFC 8344: A Yang Data Model for IP Management";
  }

  organization
    "IETF IPv6 Maintenance Working Group (6man)";
  contact
    "WG Web:  <https://datatracker.ietf.org/wg/6man/>
     WG List: <mailto: 6man@ietf.org>

     Author:  Fan Zhang
              <zhangf52@chinatelecom.cn>
     Author:  Yongqing Zhu
              <zhuyq8@chinatelecom.cn>
     Author:  Bo Wu
              <lana.wubo@huawei.com>
     Author:  Jiayuan Hu
              <hujy5@chinatelecom.cn>";
  description
    "This YANG module defines a YANG data model to configure and manage
     IPv6 Neighbor Discovery (ND) and related functions, including
     IPv6 address resolution, redirect function, proxy Neighbor
     Advertisement, Neighbor Unreachability Detection (NUD), Duplicate
     Address Detection (DAD), and Enhanced Duplicate Address Detection.

     The model is based on YANG 1.1 as defined in RFC 7950 and
     conforms to Network Management Datastore Architecture (NMDA)
     as defined in RFC 8342.

     Copyright (c) 2025 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).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.

     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.";
  reference
    "RFC4861: Neighbor Discovery for IP version 6 (IPv6)
     RFC4862: IPv6 Stateless Address Autoconfiguration
     RFC7527: Enhanced Duplicate Address Detection";

  revision 2025-08-26 {
    description
      "Init revision";
    reference
      "RFC XXXX: YANG Data Model for IPv6 Neighbor Discovery";
  }

  /* Data nodes */

  container nd {
    description
      "Global parameters for IPv6 ND.";
    leaf stale-timeout {
      type uint32;
      units "second";
      description
        "The global timeout for Neighbor Cache entry in the STALE
         state.";
      reference
        "RFC4861: Neighbor Discovery for IP version 6 (IPv6)
                  Section 5.3";
    }
  }

  augment "/if:interfaces/if:interface/ip:ipv6" {
    description
      "Augments interface configuration and state data with
       parameters of IPv6 ND.";
    container nd {
      description
        "Parameters of IPv6 ND.";
      leaf dynamic-discovery {
        type boolean;
        default "true";
        description
          "Controls whether dynamic link-layer address resolution
           for IPv6 on the interface is enabled or disabled.
            true -  dynamic link-layer address resolution based on
                    IPv6 ND is enabled,
            false - dynamic link-layer address resolution based on
                    IPv6 ND is disabled.";
        reference
          "RFC4861: Neighbor Discovery for IP version 6 (IPv6)
                    Section 7.2";
      }
      leaf nud {
        type boolean;
        default "true";
        description
          "Controls whether Neighbor Unreachability Detection (NUD)
           on the interface is enabled or disabled.
            true -  NUD is enabled,
            false - NUD is disabled.";
        reference
          "RFC4861: Neighbor Discovery for IP version 6 (IPv6)
                    Section 7.3";
      }
      leaf reachable-time {
        type uint32 {
          range "0..3600000";
        }
        units "millisecond";
        description
          "The time to confirm a neighbor's reachability for NUD.";
        reference
          "RFC4861: Neighbor Discovery for IP version 6 (IPv6)
                    - ReachableTime";
      }
      leaf ns-interval {
        type uint32;
        units "milliseconds";
        description
          "The interval of retransmitting Neighbor Solicitations to a
           neighbor for address resolution, NUD, or DAD.";
        reference
          "RFC4861: Neighbor Discovery for IP version 6 (IPv6)
                    Section 7.3.3";
      }
      leaf stale-timeout {
        type uint32;
        units "second";
        description
          "The timeout for Neighbor Cache entry in the STALE state on
           the interface.";
        reference
          "RFC4861: Neighbor Discovery for IP version 6 (IPv6)
                    Section 5.3";
      }
      leaf redirect {
        type boolean;
        default "false";
        description
          "Controls whether sending of ICMP Redirect messages
           on the interface is enabled or disabled.
            true -  Sending of ICMP Redirect messages is enabled,
            false - Sending of ICMP Redirect messages is disabled.";
        reference
          "RFC4861: Neighbor Discovery for IP version 6 (IPv6)
                    Section 8";
      }
      container proxy-na {
        description
          "Parameters of proxy Neighbor Advertisements.";
        leaf inter-vlan-proxy {
          type boolean;
          default "false";
          description
            "Controls whether the router proxies for hosts in the
             same subnet with different VLANs";
        }
        leaf all-proxy {
          type boolean;
          default "false";
          description
            "Controls whether the router proxies for all hosts,
             that is, responds unconditionally to Neighbor
             Solicitation with its own Neighbor Advertisement.";
        }
        reference
          "RFC4861: Neighbor Discovery for IP version 6 (IPv6)
                    Section 7.2.8";
      }
      container enhanced-dad {
        description
          "Parameters of Enhanced DAD algorithm.";
        leaf enable {
          type boolean;
          default "false";
          description
            "Controls whether Enhanced DAD algorithm is enabled or
             disabled.";
        }
        leaf enhanced-dad-auto-resolve {
          type boolean;
          default "false";
          description
            "Controls whether the automated action is taken when
             detecting duplicates. A trusted router can log a system
             management message, drop the received ND message, and
             block the untrusted IPv6 host nodes from which the
             duplicate NS(DAD) or NA message was received.";
        }
        reference
          "RFC7527: Enhanced Duplicate Address Detection";
      }
      container statistics {
        config false;
        description
          "A collection of interface-related statistics about IPv6
           ND messages.";
        leaf in-ns-pkts {
          type yang:counter32;
          description
            "The number of received Neighbor Solicitation packets.";
        }
        leaf in-na-pkts {
          type yang:counter32;
          description
            "The number of received Neighbor Advertisement packets.";
        }
        leaf in-rs-pkts {
          type yang:counter32;
          description
            "The number of received Router Solicitation packets.";
        }
        leaf in-ra-pkts {
          type yang:counter32;
          description
            "The number of received Router Advertisement packets.";
        }
        leaf in-redirect-pkts {
          type yang:counter32;
          description
            "The number of received Redirect packets.";
        }
        leaf out-ns-pkts {
          type yang:counter32;
          description
            "The number of sent Neighbor Solicitation packets.";
        }
        leaf out-na-pkts {
          type yang:counter32;
          description
            "The number of sent Neighbor Advertisement packets.";
        }
        leaf out-rs-pkts {
          type yang:counter32;
          description
            "The number of sent Router Solicitation packets.";
        }
        leaf out-ra-pkts {
          type yang:counter32;
          description
            "The number of sent Router Advertisement packets.";
        }
        leaf out-redirect-pkts {
          type yang:counter32;
          description
            "The number of sent Redirect packets.";
        }
      }
    }
  }

  augment "/if:interfaces/if:interface/ip:ipv6/ip:neighbor" {
    description
      "Augments IPv6 neighbor list with parameters of IPv6 address
       resolution based on IPv6 ND.";
    leaf age {
      type uint32;
      units "milliseconds";
      config false;
      description
        "The time that has passed since receipt of the last
         reachability confirmation for the neighbor.";
      reference
        "RFC4861: Neighbor Discovery for IP version 6 (IPv6)
                  Section 5.1";
    }
  }
}

<CODE ENDS>                    
]]></artwork>
      </figure>
    </section>

    <section title="IANA Considerations">
      <t>This document registers a URI in the IETF XML registry <xref target="RFC3688" />. Following
        the format in <xref target="RFC3688" />, the following registration is requested to be made:</t>

      <figure>
        <artwork><![CDATA[
    URI: urn:ietf:params:xml:ns:yang:ietf-nd
    Registrant Contact: The IESG.
    XML: N/A, the requested URI is an XML namespace.
                ]]></artwork>
      </figure>

      <t>This document registers a YANG module in the YANG Module Names registry <xref
          target="RFC6020" />.</t>

      <figure>
        <artwork><![CDATA[
    name: ietf-nd
    namespace: urn:ietf:params:xml:ns:yang:ietf-nd
    prefix: nd
    reference: RFC XXXX
                ]]></artwork>
      </figure>
    </section>

    <section anchor="security" title="Security Considerations">
      <t>The YANG module specified in this document defines a schema for data that is designed to be
        accessed via network management protocols such as NETCONF <xref
          target="RFC6241" /> or RESTCONF <xref target="RFC8040" /> . The lowest NETCONF layer is
        the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell
        (SSH) <xref
          target="RFC6242" />. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement
        secure transport is TLS <xref
          target="RFC8446" />.</t>

      <t>The NETCONF 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).
        These data nodes may be considered sensitive or vulnerable in some
        network environments. Write operations (e.g., edit-config) to these data
        nodes without proper protection can have a negative effect on network
        operations. These are the subtrees and data nodes and their
        sensitivity/vulnerability:</t>

      <list style="symbols">
        <t>/if:interfaces/if:interface/ip:ipv6/ipv6-addr-res:nd/ipv6-addr-res:dynamic-discovery -
          This leaf is used to enable IPv6 address resolution, which could allow traffic to be
          hijacked.</t>
        <t>/if:interfaces/if:interface/ip:ipv6/ipv6-addr-res:nd/ipv6-addr-res:proxy-na - This
          subtree is used to enable proxy Neighbor Advertisement on an interface, which could allow
          spoofing traffic to be injected.</t>
        <t>/if:interfaces/if:interface/ip:ipv6/ipv6-addr-res:nd/ipv6-addr-res:nud - This leaf could
          be used to disable NUD on an interface, which could lead to delays in Neighbor Cache
          updates and cause packets forwarding to unreachable nodes.</t>
        <t>/if:interfaces/if:interface/ip:ipv6/ipv6-addr-res:nd/ipv6-addr-res:reachable-time - This
          leaf is used to consider a neighbor reachable since the last confirmation of reachability,
          which could be set to big values to prolong the effect of spoofing Neighbor Cache entries
          or small values to cause unnecessary frequent NUDs.</t>
        <t>/if:interfaces/if:interface/ip:ipv6/ipv6-addr-res:nd/ipv6-addr-res:ns-interval - This
          leaf is used to set the interval of retransmitting Neighbor Solicitations, which could
          allow DoS attacks.</t>
        <t>/ipv6-addr-res:nd/ipv6-addr-res:stale-timeout and
          /if:interfaces/if:interface/ip:ipv6/ipv6-addr-res:nd/ipv6-addr-res:stale-timeout - These
          leaves are used to set the timeout for Neighbor Cache entry in the STALE state,
          which could allow the consumption of cache.</t>
      </list>

      <t>Some of the readable data nodes in the ietf-ipv6-nd 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.</t>
    </section>

    <section anchor="ack" title="Acknowledgments">
      <t>The authors would like to thank Bin Han for the helpful comments and everyone who
        contributed to the draft.</t>
    </section>

  </middle>

  <back>

  <references title="Normative References">
    <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
      <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">
      <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="RFC4861" target="https://www.rfc-editor.org/info/rfc4861">
      <front>
        <title>Neighbor Discovery for IP version 6 (IPv6)</title>
        <author fullname="T. Narten" initials="T." surname="Narten" />
        <author fullname="E. Nordmark" initials="E." surname="Nordmark" />
        <author fullname="W. Simpson" initials="W." surname="Simpson" />
        <author fullname="H. Soliman" initials="H." surname="Soliman" />
        <date month="September" year="2007" />
        <abstract>
          <t>This document specifies the Neighbor Discovery protocol for IP Version 6.
            IPv6 nodes on the same
            link use Neighbor Discovery to discover each other's presence, to
            determine each other's link-layer
            addresses, to find routers, and to maintain reachability information
            about the paths to active
            neighbors. [STANDARDS-TRACK]</t>
        </abstract>
      </front>
      <seriesInfo name="RFC" value="4861" />
      <seriesInfo name="DOI" value="10.17487/RFC4861" />
    </reference>

    <reference anchor="RFC4862" target="https://www.rfc-editor.org/info/rfc4862">
      <front>
        <title>IPv6 Stateless Address Autoconfiguration</title>
        <author fullname="S. Thomson" initials="S." surname="Thomson" />
        <author fullname="T. Narten" initials="T." surname="Narten" />
        <author fullname="T. Jinmei" initials="T." surname="Jinmei" />
        <date month="September" year="2007" />
        <abstract>
          <t>This document specifies the steps a host takes in deciding how to
            autoconfigure its interfaces in
            IP version 6. The autoconfiguration process includes generating a
            link-local address, generating
            global addresses via stateless address autoconfiguration, and the
            Duplicate Address Detection procedure
            to verify the uniqueness of the addresses on a link. [STANDARDS-TRACK]</t>
        </abstract>
      </front>
      <seriesInfo name="RFC" value="4862" />
      <seriesInfo name="DOI" value="10.17487/RFC4862" />
    </reference>

    <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020">
      <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="RFC6241" target="https://www.rfc-editor.org/info/rfc6241">
      <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="RFC6242" target="https://www.rfc-editor.org/info/rfc6242">
      <front>
        <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
        <author fullname="M. Wasserman" initials="M." surname="Wasserman" />
        <date month="June" year="2011" />
        <abstract>
          <t>
            This document describes a method for invoking and running the Network
            Configuration Protocol (NETCONF)
            within a Secure Shell (SSH) session as an SSH subsystem. This document
            obsoletes RFC 4742. [STANDARDS-TRACK]
          </t>
        </abstract>
      </front>
      <seriesInfo name="RFC" value="6242" />
      <seriesInfo name="DOI" value="10.17487/RFC6242" />
    </reference>

    <reference anchor="RFC6991" target="https://www.rfc-editor.org/info/rfc6991">
      <front>
        <title>Common YANG Data Types</title>
        <author fullname="J. Schoenwaelder" initials="J." role="editor"
          surname="Schoenwaelder" />
        <date month="July" year="2013" />
        <abstract>
          <t>This document introduces a collection of common data types to be used
            with the YANG data modeling
            language. This document obsoletes RFC 6021.</t>
        </abstract>
      </front>
      <seriesInfo name="RFC" value="6991" />
      <seriesInfo name="DOI" value="10.17487/RFC6991" />
    </reference>

    <reference anchor="RFC7527" target="https://www.rfc-editor.org/info/rfc7527">
      <front>
        <title>Enhanced Duplicate Address Detection</title>
        <author fullname="R. Asati" initials="R." surname="Asati" />
        <author fullname="H. Singh" initials="H." surname="Singh" />
        <author fullname="W. Beebee" initials="W." surname="Beebee" />
        <author fullname="C. Pignataro" initials="C." surname="Pignataro" />
        <author fullname="E. Dart" initials="E." surname="Dart" />
        <author fullname="W. George" initials="W." surname="George" />
        <date month="April" year="2015" />
        <abstract>
          <t>
            IPv6 Loopback Suppression and Duplicate Address Detection (DAD) are discussed in
            Appendix A of RFC 4862. That specification mentions a hardware-assisted mechanism to
            detect looped back DAD messages. If hardware cannot suppress looped back DAD messages,
            a software solution is required. Several service provider communities have expressed a
            need for automated detection of looped back Neighbor Discovery (ND) messages used by
            DAD. This document includes mitigation techniques and outlines the Enhanced DAD
            algorithm to automate the detection of looped back IPv6 ND messages used by DAD. For
            network loopback tests, the Enhanced DAD algorithm allows IPv6 to self-heal after a
            loopback is placed and removed. Further, for certain access networks, this document
            automates resolving a specific duplicate address conflict. This document updates RFCs
            4429, 4861, and 4862.</t>
        </abstract>
      </front>
      <seriesInfo name="RFC" value="7527" />
      <seriesInfo name="DOI" value="10.17487/RFC7527" />
    </reference>

    <reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950">
      <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="RFC8040" target="https://www.rfc-editor.org/info/rfc8040">
      <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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
      <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="RFC8341" target="https://www.rfc-editor.org/info/rfc8341">
      <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="RFC8342" target="https://www.rfc-editor.org/info/rfc8342">
      <front>
        <title>Network Management Datastore Architecture (NMDA)</title>
        <author fullname="M. Bjorklund" initials="M." surname="Bjorklund" />
        <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder" />
        <author fullname="P. Shafer" initials="P." surname="Shafer" />
        <author fullname="K. Watsen" initials="K." surname="Watsen" />
        <author fullname="R. Wilton" initials="R." surname="Wilton" />
        <date month="March" year="2018" />
        <abstract>
          <t>
            Datastores are a fundamental concept binding the data models written in
            the YANG data modeling language to network management protocols such as
            the Network Configuration Protocol (NETCONF) and RESTCONF. This document
            defines an architectural framework for datastores based on the
            experience gained with the initial simpler model, addressing
            requirements that were not well supported in the initial model. This
            document updates RFC 7950.
          </t>
        </abstract>
      </front>
      <seriesInfo name="RFC" value="8342" />
      <seriesInfo name="DOI" value="10.17487/RFC8342" />
    </reference>

    <reference anchor="RFC8343" target="https://www.rfc-editor.org/info/rfc8343">
      <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="RFC8344" target="https://www.rfc-editor.org/info/rfc8344">
      <front>
        <title>A YANG Data Model for IP 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 management of IP
            implementations. The data model
            includes configuration and system state.</t>
          <t>The YANG data model in this document conforms to the Network Management
            Datastore
            Architecture defined in RFC 8342.</t>
          <t>This document obsoletes RFC 7277.</t>
        </abstract>
      </front>
      <seriesInfo name="RFC" value="8344" />
      <seriesInfo name="DOI" value="10.17487/RFC8344" />
    </reference>

    <reference anchor="RFC8349" target="https://www.rfc-editor.org/info/rfc8349">
      <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="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
      <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="I-D.wz-intarea-arp-yang-model"
      target="https://datatracker.ietf.org/doc/html/draft-wz-intarea-arp-yang-model-00">
      <front>
        <title>A YANG Data Model for ARP</title>
        <author initials="F." surname="Zheng" fullname="Feng Zheng">
          <organization>Huawei</organization>
        </author>
        <author initials="B." surname="Wu" fullname="Bo Wu">
          <organization>Huawei</organization>
        </author>
        <author initials="R." surname="Wilton" fullname="Robert Wilton">
          <organization>Cisco Systems</organization>
        </author>
        <author initials="F." surname="Zhang" fullname="Fan Zhang">
          <organization>China Telecom</organization>
        </author>
        <author initials="Y." surname="Zhu" fullname="Yongqing Zhu">
          <organization>China Telecom</organization>
        </author>
        <author initials="X." surname="Ding" fullname="Xiaojian Ding"> </author>
        <date month="August" day="20" year="2025" />
        <abstract>
          <t>
            This document defines a YANG data model for the management of the Address Resolution
            Protocol (ARP). It extends the basic ARP functionality contained in the ietf-ip YANG
            data model, defined in RFC 8344, to provide management of optional ARP features and
            statistics.</t>
        </abstract>
      </front>
      <seriesInfo name="Internet-Draft" value="draft-wz-intarea-arp-yang-model-00" />
    </reference>
    </references>

    <references title="Informative References">
      <reference anchor="RFC8340" target="https://www.rfc-editor.org/info/rfc8340">
        <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="RFC8792" target="https://www.rfc-editor.org/info/rfc8792">
        <front>
          <title>
            Handling Long Lines in Content of Internet-Drafts and RFCs
          </title>
          <author fullname="K. Watsen" initials="K." surname="Watsen" />
          <author fullname="E. Auerswald" initials="E." surname="Auerswald" />
          <author fullname="A. Farrel" initials="A." surname="Farrel" />
          <author fullname="Q. Wu" initials="Q." surname="Wu" />
          <date month="June" year="2020" />
          <abstract>
            <t>
              This document defines two strategies for handling long lines in width-bounded text
              content. One strategy, called the "single backslash" strategy, is based on the
              historical use of a single backslash ('\') character to indicate where line-folding
              has occurred, with the continuation occurring with the first character that is not a
              space character (' ') on the next line. The second strategy, called the "double
              backslash" strategy, extends the first strategy by adding a second backslash character
              to identify where the continuation begins and is thereby able to handle cases not
              supported by the first strategy. Both strategies use a self-describing header enabling
              automated reconstitution of the original content.
            </t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8792" />
        <seriesInfo name="DOI" value="10.17487/RFC8792" />
      </reference>
    </references>

    <!-- appendix -->
    <section anchor="datamodel" title="Data Model Examples">
      <section anchor="configStatic" title="Configured Static IPv6 Neighbor Cache Entry">
        <t>This example illustrates the manual configuration for a Neighbor Cache entry of
          interface eth0 for
          peer 2001:db8::2 with link-layer address 00:00:5E:00:53:AB statically. </t>
        <t>Note: '\' line wrapping per <xref target="RFC8792" format="default" />. </t>
        <figure>
          <artwork> <![CDATA[
<?xml version="1.0" encoding="utf-8"?>
<interfaces \
  xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" \
  xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
  <interface>
  <name>eth0</name>
  <type>ianaift:ethernetCsmacd</type>
  <!-- other parameters from ietf-interfaces omitted -->

  <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
    <!-- ipv6 address configuration parameters omitted -->
    <neighbor>
    <ip>2001:db8::2</ip>
    <link-layer-address>00:00:5E:00:53:AB</link-layer-address>
    </neighbor>
  </ipv6>
  </interface>
</interfaces>
                    ]]></artwork>
        </figure>
      </section>
      <section anchor="configProxy"
        title="Configuration of Proxy Neighbor Advertisement, NUD, and DAD">
        <t>This example illustrates the configuration of enabling proxy Neighbor Advertisement, NUD,
          and DAD with setting the "dup-addr-detect-transmits" leaf as 1, the "reachable-time" leaf
          as 30000 milliseconds, and the "ns-interval" leaf as 1000 milliseconds.</t>
        <t>Note: '\' line wrapping per <xref target="RFC8792" format="default" />. </t>
        <figure>
          <artwork><![CDATA[
<?xml version="1.0" encoding="utf-8"?>
<interfaces \
  xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" \
  xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
  <interface>
  <name>eth0</name>
  <type>ianaift:ethernetCsmacd</type>
  <!-- other parameters from ietf-interfaces omitted -->

    <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
      <dup-addr-detect-transmits>1</dup-addr-detect-transmits>
      <!-- ipv6 address configuration parameters omitted -->

      <nd xmlns="urn:ietf:params:xml:ns:yang:ietf-ipv6-nd">
        <dynamic-discovery>true</dynamic-discovery>
        <nud>true</nud>
        <reachable-time>30000</reachable-time>
        <ns-interval>1000</ns-interval>
        <stale-timeout>1200</stale-timeout>
        <proxy-na>
          <inter-vlan-proxy>true</inter-vlan-proxy>
        </proxy-na>
      </nd>
    </ipv6>
  </interface>
</interfaces>
                    ]]></artwork>
        </figure>
      </section>
    </section>
    <section numbered="false" toc="include" removeInRFC="false" anchor="contributors"
      title="Contributors">
      <contact fullname="Bin Han">
        <organization showOnFrontPage="true">Huawei</organization>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>hanbin3@huawei.com</email>
        </address>
      </contact>
    </section>
  </back>
</rfc>