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>
23 Editor: Martin Bjorklund
24 <mailto:mbj@tail-f.com>";
26 "This module contains a collection of YANG definitions for
27 managing IP implementations.
29 Copyright (c) 2018 IETF Trust and the persons identified as
30 authors of the code. All rights reserved.
32 Redistribution and use in source and binary forms, with or
33 without modification, is permitted pursuant to, and subject
34 to the license terms contained in, the Simplified BSD License
35 set forth in Section 4.c of the IETF Trust's Legal Provisions
36 Relating to IETF Documents
37 (https://trustee.ietf.org/license-info).
39 This version of this YANG module is part of RFC 8344; see
40 the RFC itself for full legal notices.";
44 "Updated to support NMDA.";
46 "RFC 8344: A YANG Data Model for IP Management";
53 "RFC 7277: A YANG Data Model for IP Management";
60 feature ipv4-non-contiguous-netmasks {
62 "Indicates support for configuring non-contiguous
66 feature ipv6-privacy-autoconf {
68 "Indicates support for privacy extensions for stateless address
69 autoconfiguration in IPv6.";
71 "RFC 4941: Privacy Extensions for Stateless Address
72 Autoconfiguration in IPv6";
79 typedef ip-address-origin {
83 "None of the following.";
88 "Indicates that the address has been statically
89 configured -- for example, using the Network Configuration
90 Protocol (NETCONF) or a command line interface.";
94 "Indicates an address that has been assigned to this
95 system by a DHCP server.";
99 "Indicates an address created by IPv6 stateless
100 autoconfiguration that embeds a link-layer address in its
101 interface identifier.";
105 "Indicates an address chosen by the system at
106 random, e.g., an IPv4 address within 169.254/16, a
107 temporary address as described in RFC 4941, or a
108 semantically opaque address as described in RFC 7217.";
110 "RFC 4941: Privacy Extensions for Stateless Address
111 Autoconfiguration in IPv6
112 RFC 7217: A Method for Generating Semantically Opaque
113 Interface Identifiers with IPv6 Stateless
114 Address Autoconfiguration (SLAAC)";
118 "The origin of an address.";
121 typedef neighbor-origin {
125 "None of the following.";
129 "Indicates that the mapping has been statically
130 configured -- for example, using NETCONF or a command line
136 "Indicates that the mapping has been dynamically resolved
137 using, for example, IPv4 ARP or the IPv6 Neighbor
138 Discovery protocol.";
142 "The origin of a neighbor entry.";
149 augment "/if:interfaces/if:interface" {
151 "IP parameters on interfaces.
153 If an interface is not capable of running IP, the server
154 must not allow the client to configure these parameters.";
158 "Enables IPv4 unless the 'enabled' leaf
159 (which defaults to 'true') is set to 'false'";
161 "Parameters for the IPv4 address family.";
167 "Controls whether IPv4 is enabled or disabled on this
168 interface. When IPv4 is enabled, this interface is
169 connected to an IPv4 stack, and the interface can send
170 and receive IPv4 packets.";
176 "Controls IPv4 packet forwarding of datagrams received by,
177 but not addressed to, this interface. IPv4 routers
178 forward datagrams. IPv4 hosts do not (except those
179 source-routed via the host).";
188 "The size, in octets, of the largest IPv4 packet that the
189 interface will send and receive.
191 The server may restrict the allowed values for this leaf,
192 depending on the interface's type.
194 If this leaf is not configured, the operationally used MTU
195 depends on the interface's type.";
197 "RFC 791: Internet Protocol";
202 "The list of IPv4 addresses on the interface.";
205 type inet:ipv4-address-no-zone;
207 "The IPv4 address on the interface.";
212 "The subnet can be specified as a prefix length or,
213 if the server supports non-contiguous netmasks, as
220 "The length of the subnet prefix.";
223 if-feature ipv4-non-contiguous-netmasks;
224 type yang:dotted-quad;
226 "The subnet specified as a netmask.";
231 type ip-address-origin;
234 "The origin of this address.";
240 "A list of mappings from IPv4 addresses to
241 link-layer addresses.
243 Entries in this list in the intended configuration are
244 used as static entries in the ARP Cache.
246 In the operational state, this list represents the ARP
249 "RFC 826: An Ethernet Address Resolution Protocol";
252 type inet:ipv4-address-no-zone;
254 "The IPv4 address of the neighbor node.";
256 leaf link-layer-address {
257 type yang:phys-address;
260 "The link-layer address of the neighbor node.";
263 type neighbor-origin;
266 "The origin of this neighbor entry.";
273 "Enables IPv6 unless the 'enabled' leaf
274 (which defaults to 'true') is set to 'false'";
276 "Parameters for the IPv6 address family.";
282 "Controls whether IPv6 is enabled or disabled on this
283 interface. When IPv6 is enabled, this interface is
284 connected to an IPv6 stack, and the interface can send
285 and receive IPv6 packets.";
291 "Controls IPv6 packet forwarding of datagrams received by,
292 but not addressed to, this interface. IPv6 routers
293 forward datagrams. IPv6 hosts do not (except those
294 source-routed via the host).";
296 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
297 Section 6.2.1, IsRouter";
305 "The size, in octets, of the largest IPv6 packet that the
306 interface will send and receive.
308 The server may restrict the allowed values for this leaf,
309 depending on the interface's type.
311 If this leaf is not configured, the operationally used MTU
312 depends on the interface's type.";
314 "RFC 8200: Internet Protocol, Version 6 (IPv6)
322 "The list of IPv6 addresses on the interface.";
325 type inet:ipv6-address-no-zone;
327 "The IPv6 address on the interface.";
335 "The length of the subnet prefix.";
338 type ip-address-origin;
341 "The origin of this address.";
347 "This is a valid address that can appear as the
348 destination or source address of a packet.";
352 "This is a valid but deprecated address that should
353 no longer be used as a source address in new
354 communications, but packets addressed to such an
355 address are processed as expected.";
359 "This isn't a valid address, and it shouldn't appear
360 as the destination or source address of a packet.";
365 "The address is not accessible because the interface
366 to which this address is assigned is not
371 "The status cannot be determined for some reason.";
375 "The uniqueness of the address on the link is being
376 verified. Addresses in this state should not be
377 used for general communication and should only be
378 used to determine the uniqueness of the address.";
382 "The address has been determined to be non-unique on
383 the link and so must not be used.";
387 "The address is available for use, subject to
388 restrictions, while its uniqueness on a link is
394 "The status of an address. Most of the states correspond
395 to states from the IPv6 Stateless Address
396 Autoconfiguration protocol.";
398 "RFC 4293: Management Information Base for the
399 Internet Protocol (IP)
401 RFC 4862: IPv6 Stateless Address Autoconfiguration";
408 "A list of mappings from IPv6 addresses to
409 link-layer addresses.
411 Entries in this list in the intended configuration are
412 used as static entries in the Neighbor Cache.
414 In the operational state, this list represents the
417 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
420 type inet:ipv6-address-no-zone;
422 "The IPv6 address of the neighbor node.";
424 leaf link-layer-address {
425 type yang:phys-address;
428 "The link-layer address of the neighbor node.
430 In the operational state, if the neighbor's 'state' leaf
431 is 'incomplete', this leaf is not instantiated.";
434 type neighbor-origin;
437 "The origin of this neighbor entry.";
443 "Indicates that the neighbor node acts as a router.";
450 "Address resolution is in progress, and the
451 link-layer address of the neighbor has not yet been
456 "Roughly speaking, the neighbor is known to have been
457 reachable recently (within tens of seconds ago).";
461 "The neighbor is no longer known to be reachable, but
462 until traffic is sent to the neighbor no attempt
463 should be made to verify its reachability.";
467 "The neighbor is no longer known to be reachable, and
468 traffic has recently been sent to the neighbor.
469 Rather than probe the neighbor immediately, however,
470 delay sending probes for a short while in order to
471 give upper-layer protocols a chance to provide
472 reachability confirmation.";
476 "The neighbor is no longer known to be reachable, and
477 unicast Neighbor Solicitation probes are being sent
478 to verify reachability.";
483 "The Neighbor Unreachability Detection state of this
486 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
491 leaf dup-addr-detect-transmits {
495 "The number of consecutive Neighbor Solicitation messages
496 sent while performing Duplicate Address Detection on a
497 tentative address. A value of zero indicates that
498 Duplicate Address Detection is not performed on
499 tentative addresses. A value of one indicates a single
500 transmission with no follow-up retransmissions.";
502 "RFC 4862: IPv6 Stateless Address Autoconfiguration";
506 "Parameters to control the autoconfiguration of IPv6
507 addresses, as described in RFC 4862.";
509 "RFC 4862: IPv6 Stateless Address Autoconfiguration";
511 leaf create-global-addresses {
515 "If enabled, the host creates global addresses as
516 described in RFC 4862.";
518 "RFC 4862: IPv6 Stateless Address Autoconfiguration
521 leaf create-temporary-addresses {
522 if-feature ipv6-privacy-autoconf;
526 "If enabled, the host creates temporary addresses as
527 described in RFC 4941.";
529 "RFC 4941: Privacy Extensions for Stateless Address
530 Autoconfiguration in IPv6";
533 leaf temporary-valid-lifetime {
534 if-feature ipv6-privacy-autoconf;
539 "The time period during which the temporary address
542 "RFC 4941: Privacy Extensions for Stateless Address
543 Autoconfiguration in IPv6
544 - TEMP_VALID_LIFETIME";
546 leaf temporary-preferred-lifetime {
547 if-feature ipv6-privacy-autoconf;
552 "The time period during which the temporary address is
555 "RFC 4941: Privacy Extensions for Stateless Address
556 Autoconfiguration in IPv6
557 - TEMP_PREFERRED_LIFETIME";
564 * Legacy operational state data nodes
567 augment "/if:interfaces-state/if:interface" {
570 "Data nodes for the operational state of IP on interfaces.";
574 "Present if IPv4 is enabled on this interface";
578 "Interface-specific parameters for the IPv4 address family.";
584 "Indicates whether IPv4 packet forwarding is enabled or
585 disabled on this interface.";
594 "The size, in octets, of the largest IPv4 packet that the
595 interface will send and receive.";
597 "RFC 791: Internet Protocol";
603 "The list of IPv4 addresses on the interface.";
606 type inet:ipv4-address-no-zone;
609 "The IPv4 address on the interface.";
614 "The subnet can be specified as a prefix length or,
615 if the server supports non-contiguous netmasks, as
623 "The length of the subnet prefix.";
626 if-feature ipv4-non-contiguous-netmasks;
627 type yang:dotted-quad;
630 "The subnet specified as a netmask.";
634 type ip-address-origin;
637 "The origin of this address.";
644 "A list of mappings from IPv4 addresses to
645 link-layer addresses.
647 This list represents the ARP Cache.";
649 "RFC 826: An Ethernet Address Resolution Protocol";
652 type inet:ipv4-address-no-zone;
655 "The IPv4 address of the neighbor node.";
658 leaf link-layer-address {
659 type yang:phys-address;
662 "The link-layer address of the neighbor node.";
665 type neighbor-origin;
668 "The origin of this neighbor entry.";
675 "Present if IPv6 is enabled on this interface";
679 "Parameters for the IPv6 address family.";
686 "Indicates whether IPv6 packet forwarding is enabled or
687 disabled on this interface.";
689 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
690 Section 6.2.1, IsRouter";
699 "The size, in octets, of the largest IPv6 packet that the
700 interface will send and receive.";
702 "RFC 8200: Internet Protocol, Version 6 (IPv6)
710 "The list of IPv6 addresses on the interface.";
713 type inet:ipv6-address-no-zone;
716 "The IPv6 address on the interface.";
725 "The length of the subnet prefix.";
728 type ip-address-origin;
731 "The origin of this address.";
737 "This is a valid address that can appear as the
738 destination or source address of a packet.";
742 "This is a valid but deprecated address that should
743 no longer be used as a source address in new
744 communications, but packets addressed to such an
745 address are processed as expected.";
749 "This isn't a valid address, and it shouldn't appear
750 as the destination or source address of a packet.";
755 "The address is not accessible because the interface
756 to which this address is assigned is not
761 "The status cannot be determined for some reason.";
765 "The uniqueness of the address on the link is being
766 verified. Addresses in this state should not be
767 used for general communication and should only be
768 used to determine the uniqueness of the address.";
772 "The address has been determined to be non-unique on
773 the link and so must not be used.";
777 "The address is available for use, subject to
778 restrictions, while its uniqueness on a link is
784 "The status of an address. Most of the states correspond
785 to states from the IPv6 Stateless Address
786 Autoconfiguration protocol.";
788 "RFC 4293: Management Information Base for the
789 Internet Protocol (IP)
791 RFC 4862: IPv6 Stateless Address Autoconfiguration";
799 "A list of mappings from IPv6 addresses to
800 link-layer addresses.
802 This list represents the Neighbor Cache.";
804 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
807 type inet:ipv6-address-no-zone;
810 "The IPv6 address of the neighbor node.";
812 leaf link-layer-address {
813 type yang:phys-address;
816 "The link-layer address of the neighbor node.";
819 type neighbor-origin;
822 "The origin of this neighbor entry.";
828 "Indicates that the neighbor node acts as a router.";
834 "Address resolution is in progress, and the
835 link-layer address of the neighbor has not yet been
840 "Roughly speaking, the neighbor is known to have been
841 reachable recently (within tens of seconds ago).";
845 "The neighbor is no longer known to be reachable, but
846 until traffic is sent to the neighbor no attempt
847 should be made to verify its reachability.";
851 "The neighbor is no longer known to be reachable, and
852 traffic has recently been sent to the neighbor.
853 Rather than probe the neighbor immediately, however,
854 delay sending probes for a short while in order to
855 give upper-layer protocols a chance to provide
856 reachability confirmation.";
860 "The neighbor is no longer known to be reachable, and
861 unicast Neighbor Solicitation probes are being sent
862 to verify reachability.";
867 "The Neighbor Unreachability Detection state of this
870 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)