3 namespace "urn:ietf:params:xml:ns:yang:ietf-ip";
6 import ietf-interfaces {
9 import ietf-inet-types {
12 import ietf-yang-types {
17 "IETF NETMOD (Network Modeling) Working Group";
20 "WG Web: <https://datatracker.ietf.org/wg/netmod/>
21 WG List: <mailto:netmod@ietf.org>
22 Editor: Martin Bjorklund
23 <mailto:mbj@tail-f.com>";
25 "This module contains a collection of YANG definitions for
26 managing IP implementations.
27 Copyright (c) 2018 IETF Trust and the persons identified as
28 authors of the code. All rights reserved.
29 Redistribution and use in source and binary forms, with or
30 without modification, is permitted pursuant to, and subject
31 to the license terms contained in, the Simplified BSD License
32 set forth in Section 4.c of the IETF Trust's Legal Provisions
33 Relating to IETF Documents
34 (https://trustee.ietf.org/license-info).
35 This version of this YANG module is part of RFC 8344; see
36 the RFC itself for full legal notices.";
40 "Updated to support NMDA.";
42 "RFC 8344: A YANG Data Model for IP Management";
49 "RFC 7277: A YANG Data Model for IP Management";
56 feature ipv4-non-contiguous-netmasks {
58 "Indicates support for configuring non-contiguous
62 feature ipv6-privacy-autoconf {
64 "Indicates support for privacy extensions for stateless address
65 autoconfiguration in IPv6.";
67 "RFC 4941: Privacy Extensions for Stateless Address
68 Autoconfiguration in IPv6";
75 typedef ip-address-origin {
79 "None of the following.";
84 "Indicates that the address has been statically
85 configured -- for example, using the Network Configuration
86 Protocol (NETCONF) or a command line interface.";
90 "Indicates an address that has been assigned to this
91 system by a DHCP server.";
95 "Indicates an address created by IPv6 stateless
96 autoconfiguration that embeds a link-layer address in its
97 interface identifier.";
101 "Indicates an address chosen by the system at
102 random, e.g., an IPv4 address within 169.254/16, a
103 temporary address as described in RFC 4941, or a
104 semantically opaque address as described in RFC 7217.";
106 "RFC 4941: Privacy Extensions for Stateless Address
107 Autoconfiguration in IPv6
108 RFC 7217: A Method for Generating Semantically Opaque
109 Interface Identifiers with IPv6 Stateless
110 Address Autoconfiguration (SLAAC)";
114 "The origin of an address.";
117 typedef neighbor-origin {
121 "None of the following.";
125 "Indicates that the mapping has been statically
126 configured -- for example, using NETCONF or a command line
132 "Indicates that the mapping has been dynamically resolved
133 using, for example, IPv4 ARP or the IPv6 Neighbor
134 Discovery protocol.";
138 "The origin of a neighbor entry.";
145 augment "/if:interfaces/if:interface" {
147 "IP parameters on interfaces.
148 If an interface is not capable of running IP, the server
149 must not allow the client to configure these parameters.";
153 "Enables IPv4 unless the 'enabled' leaf
154 (which defaults to 'true') is set to 'false'";
156 "Parameters for the IPv4 address family.";
162 "Controls whether IPv4 is enabled or disabled on this
163 interface. When IPv4 is enabled, this interface is
164 connected to an IPv4 stack, and the interface can send
165 and receive IPv4 packets.";
171 "Controls IPv4 packet forwarding of datagrams received by,
172 but not addressed to, this interface. IPv4 routers
173 forward datagrams. IPv4 hosts do not (except those
174 source-routed via the host).";
183 "The size, in octets, of the largest IPv4 packet that the
184 interface will send and receive.
185 The server may restrict the allowed values for this leaf,
186 depending on the interface's type.
187 If this leaf is not configured, the operationally used MTU
188 depends on the interface's type.";
190 "RFC 791: Internet Protocol";
195 "The list of IPv4 addresses on the interface.";
198 type inet:ipv4-address-no-zone;
200 "The IPv4 address on the interface.";
205 "The subnet can be specified as a prefix length or,
206 if the server supports non-contiguous netmasks, as
213 "The length of the subnet prefix.";
216 if-feature ipv4-non-contiguous-netmasks;
217 type yang:dotted-quad;
219 "The subnet specified as a netmask.";
224 type ip-address-origin;
227 "The origin of this address.";
233 "A list of mappings from IPv4 addresses to
234 link-layer addresses.
235 Entries in this list in the intended configuration are
236 used as static entries in the ARP Cache.
237 In the operational state, this list represents the ARP
240 "RFC 826: An Ethernet Address Resolution Protocol";
243 type inet:ipv4-address-no-zone;
245 "The IPv4 address of the neighbor node.";
247 leaf link-layer-address {
248 type yang:phys-address;
251 "The link-layer address of the neighbor node.";
254 type neighbor-origin;
257 "The origin of this neighbor entry.";
264 "Enables IPv6 unless the 'enabled' leaf
265 (which defaults to 'true') is set to 'false'";
267 "Parameters for the IPv6 address family.";
273 "Controls whether IPv6 is enabled or disabled on this
274 interface. When IPv6 is enabled, this interface is
275 connected to an IPv6 stack, and the interface can send
276 and receive IPv6 packets.";
282 "Controls IPv6 packet forwarding of datagrams received by,
283 but not addressed to, this interface. IPv6 routers
284 forward datagrams. IPv6 hosts do not (except those
285 source-routed via the host).";
287 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
288 Section 6.2.1, IsRouter";
296 "The size, in octets, of the largest IPv6 packet that the
297 interface will send and receive.
298 The server may restrict the allowed values for this leaf,
299 depending on the interface's type.
300 If this leaf is not configured, the operationally used MTU
301 depends on the interface's type.";
303 "RFC 8200: Internet Protocol, Version 6 (IPv6)
311 "The list of IPv6 addresses on the interface.";
314 type inet:ipv6-address-no-zone;
316 "The IPv6 address on the interface.";
324 "The length of the subnet prefix.";
327 type ip-address-origin;
330 "The origin of this address.";
336 "This is a valid address that can appear as the
337 destination or source address of a packet.";
341 "This is a valid but deprecated address that should
342 no longer be used as a source address in new
343 communications, but packets addressed to such an
344 address are processed as expected.";
348 "This isn't a valid address, and it shouldn't appear
349 as the destination or source address of a packet.";
354 "The address is not accessible because the interface
355 to which this address is assigned is not
360 "The status cannot be determined for some reason.";
364 "The uniqueness of the address on the link is being
365 verified. Addresses in this state should not be
366 used for general communication and should only be
367 used to determine the uniqueness of the address.";
371 "The address has been determined to be non-unique on
372 the link and so must not be used.";
376 "The address is available for use, subject to
377 restrictions, while its uniqueness on a link is
383 "The status of an address. Most of the states correspond
384 to states from the IPv6 Stateless Address
385 Autoconfiguration protocol.";
387 "RFC 4293: Management Information Base for the
388 Internet Protocol (IP)
390 RFC 4862: IPv6 Stateless Address Autoconfiguration";
397 "A list of mappings from IPv6 addresses to
398 link-layer addresses.
399 Entries in this list in the intended configuration are
400 used as static entries in the Neighbor Cache.
401 In the operational state, this list represents the
404 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
407 type inet:ipv6-address-no-zone;
409 "The IPv6 address of the neighbor node.";
411 leaf link-layer-address {
412 type yang:phys-address;
415 "The link-layer address of the neighbor node.
416 In the operational state, if the neighbor's 'state' leaf
417 is 'incomplete', this leaf is not instantiated.";
420 type neighbor-origin;
423 "The origin of this neighbor entry.";
429 "Indicates that the neighbor node acts as a router.";
436 "Address resolution is in progress, and the
437 link-layer address of the neighbor has not yet been
442 "Roughly speaking, the neighbor is known to have been
443 reachable recently (within tens of seconds ago).";
447 "The neighbor is no longer known to be reachable, but
448 until traffic is sent to the neighbor no attempt
449 should be made to verify its reachability.";
453 "The neighbor is no longer known to be reachable, and
454 traffic has recently been sent to the neighbor.
455 Rather than probe the neighbor immediately, however,
456 delay sending probes for a short while in order to
457 give upper-layer protocols a chance to provide
458 reachability confirmation.";
462 "The neighbor is no longer known to be reachable, and
463 unicast Neighbor Solicitation probes are being sent
464 to verify reachability.";
469 "The Neighbor Unreachability Detection state of this
472 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
477 leaf dup-addr-detect-transmits {
481 "The number of consecutive Neighbor Solicitation messages
482 sent while performing Duplicate Address Detection on a
483 tentative address. A value of zero indicates that
484 Duplicate Address Detection is not performed on
485 tentative addresses. A value of one indicates a single
486 transmission with no follow-up retransmissions.";
488 "RFC 4862: IPv6 Stateless Address Autoconfiguration";
492 "Parameters to control the autoconfiguration of IPv6
493 addresses, as described in RFC 4862.";
495 "RFC 4862: IPv6 Stateless Address Autoconfiguration";
497 leaf create-global-addresses {
501 "If enabled, the host creates global addresses as
502 described in RFC 4862.";
504 "RFC 4862: IPv6 Stateless Address Autoconfiguration
507 leaf create-temporary-addresses {
508 if-feature ipv6-privacy-autoconf;
512 "If enabled, the host creates temporary addresses as
513 described in RFC 4941.";
515 "RFC 4941: Privacy Extensions for Stateless Address
516 Autoconfiguration in IPv6";
519 leaf temporary-valid-lifetime {
520 if-feature ipv6-privacy-autoconf;
525 "The time period during which the temporary address
528 "RFC 4941: Privacy Extensions for Stateless Address
529 Autoconfiguration in IPv6
530 - TEMP_VALID_LIFETIME";
532 leaf temporary-preferred-lifetime {
533 if-feature ipv6-privacy-autoconf;
538 "The time period during which the temporary address is
541 "RFC 4941: Privacy Extensions for Stateless Address
542 Autoconfiguration in IPv6
543 - TEMP_PREFERRED_LIFETIME";
550 * Legacy operational state data nodes
553 augment "/if:interfaces-state/if:interface" {
556 "Data nodes for the operational state of IP on interfaces.";
560 "Present if IPv4 is enabled on this interface";
564 "Interface-specific parameters for the IPv4 address family.";
570 "Indicates whether IPv4 packet forwarding is enabled or
571 disabled on this interface.";
580 "The size, in octets, of the largest IPv4 packet that the
581 interface will send and receive.";
583 "RFC 791: Internet Protocol";
589 "The list of IPv4 addresses on the interface.";
592 type inet:ipv4-address-no-zone;
595 "The IPv4 address on the interface.";
600 "The subnet can be specified as a prefix length or,
601 if the server supports non-contiguous netmasks, as
609 "The length of the subnet prefix.";
612 if-feature ipv4-non-contiguous-netmasks;
613 type yang:dotted-quad;
616 "The subnet specified as a netmask.";
620 type ip-address-origin;
623 "The origin of this address.";
630 "A list of mappings from IPv4 addresses to
631 link-layer addresses.
632 This list represents the ARP Cache.";
634 "RFC 826: An Ethernet Address Resolution Protocol";
637 type inet:ipv4-address-no-zone;
640 "The IPv4 address of the neighbor node.";
643 leaf link-layer-address {
644 type yang:phys-address;
647 "The link-layer address of the neighbor node.";
650 type neighbor-origin;
653 "The origin of this neighbor entry.";
660 "Present if IPv6 is enabled on this interface";
664 "Parameters for the IPv6 address family.";
671 "Indicates whether IPv6 packet forwarding is enabled or
672 disabled on this interface.";
674 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
675 Section 6.2.1, IsRouter";
684 "The size, in octets, of the largest IPv6 packet that the
685 interface will send and receive.";
687 "RFC 8200: Internet Protocol, Version 6 (IPv6)
695 "The list of IPv6 addresses on the interface.";
698 type inet:ipv6-address-no-zone;
701 "The IPv6 address on the interface.";
710 "The length of the subnet prefix.";
713 type ip-address-origin;
716 "The origin of this address.";
722 "This is a valid address that can appear as the
723 destination or source address of a packet.";
727 "This is a valid but deprecated address that should
728 no longer be used as a source address in new
729 communications, but packets addressed to such an
730 address are processed as expected.";
734 "This isn't a valid address, and it shouldn't appear
735 as the destination or source address of a packet.";
740 "The address is not accessible because the interface
741 to which this address is assigned is not
746 "The status cannot be determined for some reason.";
750 "The uniqueness of the address on the link is being
751 verified. Addresses in this state should not be
752 used for general communication and should only be
753 used to determine the uniqueness of the address.";
757 "The address has been determined to be non-unique on
758 the link and so must not be used.";
762 "The address is available for use, subject to
763 restrictions, while its uniqueness on a link is
769 "The status of an address. Most of the states correspond
770 to states from the IPv6 Stateless Address
771 Autoconfiguration protocol.";
773 "RFC 4293: Management Information Base for the
774 Internet Protocol (IP)
776 RFC 4862: IPv6 Stateless Address Autoconfiguration";
784 "A list of mappings from IPv6 addresses to
785 link-layer addresses.
786 This list represents the Neighbor Cache.";
788 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
791 type inet:ipv6-address-no-zone;
794 "The IPv6 address of the neighbor node.";
796 leaf link-layer-address {
797 type yang:phys-address;
800 "The link-layer address of the neighbor node.";
803 type neighbor-origin;
806 "The origin of this neighbor entry.";
812 "Indicates that the neighbor node acts as a router.";
818 "Address resolution is in progress, and the
819 link-layer address of the neighbor has not yet been
824 "Roughly speaking, the neighbor is known to have been
825 reachable recently (within tens of seconds ago).";
829 "The neighbor is no longer known to be reachable, but
830 until traffic is sent to the neighbor no attempt
831 should be made to verify its reachability.";
835 "The neighbor is no longer known to be reachable, and
836 traffic has recently been sent to the neighbor.
837 Rather than probe the neighbor immediately, however,
838 delay sending probes for a short while in order to
839 give upper-layer protocols a chance to provide
840 reachability confirmation.";
844 "The neighbor is no longer known to be reachable, and
845 unicast Neighbor Solicitation probes are being sent
846 to verify reachability.";
851 "The Neighbor Unreachability Detection state of this
854 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)