6 "urn:ietf:params:xml:ns:yang:ietf-ip";
10 import ietf-interfaces {
13 import ietf-inet-types {
16 import ietf-yang-types {
21 "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
24 "WG Web: <http://tools.ietf.org/wg/netmod/>
25 WG List: <mailto:netmod@ietf.org>
27 WG Chair: Thomas Nadeau
28 <mailto:tnadeau@lucidvision.com>
30 WG Chair: Juergen Schoenwaelder
31 <mailto:j.schoenwaelder@jacobs-university.de>
33 Editor: Martin Bjorklund
34 <mailto:mbj@tail-f.com>";
37 "This module contains a collection of YANG definitions for
38 configuring IP implementations.
40 Copyright (c) 2014 IETF Trust and the persons identified as
41 authors of the code. All rights reserved.
43 Redistribution and use in source and binary forms, with or
44 without modification, is permitted pursuant to, and subject
45 to the license terms contained in, the Simplified BSD License
46 set forth in Section 4.c of the IETF Trust's Legal Provisions
47 Relating to IETF Documents
48 (http://trustee.ietf.org/license-info).
50 This version of this YANG module is part of RFC 7277; see
51 the RFC itself for full legal notices.";
53 revision "2014-06-16" {
54 description "Initial revision.";
56 "RFC 7277: A YANG Data Model for IP Management";
61 feature ipv4-non-contiguous-netmasks {
63 "Indicates support for configuring non-contiguous
67 feature ipv6-privacy-autoconf {
69 "Indicates support for Privacy Extensions for Stateless Address
70 Autoconfiguration in IPv6.";
72 "RFC 4941: Privacy Extensions for Stateless Address
73 Autoconfiguration in IPv6";
77 typedef ip-address-origin {
82 "None of the following.";
87 "Indicates that the address has been statically
88 configured - for example, using NETCONF or a Command Line
94 "Indicates an address that has been assigned to this
95 system by a DHCP server.";
100 "Indicates an address created by IPv6 stateless
101 autoconfiguration that embeds a link-layer address in its
102 interface identifier.";
107 "Indicates an address chosen by the system at
109 random, e.g., an IPv4 address within 169.254/16, an
110 RFC 4941 temporary address, or an RFC 7217 semantically
113 "RFC 4941: Privacy Extensions for Stateless Address
114 Autoconfiguration in IPv6
115 RFC 7217: A Method for Generating Semantically Opaque
116 Interface Identifiers with IPv6 Stateless
117 Address Autoconfiguration (SLAAC)";
122 "The origin of an address.";
125 typedef neighbor-origin {
130 "None of the following.";
135 "Indicates that the mapping has been statically
136 configured - for example, using NETCONF or a Command Line
142 "Indicates that the mapping has been dynamically resolved
143 using, e.g., IPv4 ARP or the IPv6 Neighbor Discovery
148 "The origin of a neighbor entry.";
151 augment /if:interfaces/if:interface {
153 "Parameters for configuring IP on interfaces.
155 If an interface is not capable of running IP, the server
156 must not allow the client to configure these parameters.";
159 "Enables IPv4 unless the 'enabled' leaf
160 (which defaults to 'true') is set to 'false'";
162 "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.";
177 "Controls IPv4 packet forwarding of datagrams received by,
178 but not addressed to, this interface. IPv4 routers
179 forward datagrams. IPv4 hosts do not (except those
180 source-routed via the host).";
189 "The size, in octets, of the largest IPv4 packet that the
190 interface will send and receive.
192 The server may restrict the allowed values for this leaf,
193 depending on the interface's type.
195 If this leaf is not configured, the operationally used MTU
196 depends on the interface's type.";
198 "RFC 791: Internet Protocol";
205 "The list of configured IPv4 addresses on the interface.";
207 type inet:ipv4-address-no-zone;
209 "The IPv4 address on the interface.";
215 "The subnet can be specified as a prefix-length, or,
216 if the server supports non-contiguous netmasks, as
223 "The length of the subnet prefix.";
226 if-feature ipv4-non-contiguous-netmasks;
227 type yang:dotted-quad;
229 "The subnet specified as a netmask.";
237 "A list of mappings from IPv4 addresses to
238 link-layer addresses.
240 Entries in this list are used as static entries in the
243 "RFC 826: An Ethernet Address Resolution Protocol";
246 type inet:ipv4-address-no-zone;
248 "The IPv4 address of the neighbor node.";
251 leaf link-layer-address {
252 type yang:phys-address;
255 "The link-layer address of the neighbor node.";
262 "Enables IPv6 unless the 'enabled' leaf
263 (which defaults to 'true') is set to 'false'";
265 "Parameters for the IPv6 address family.";
270 "Controls whether IPv6 is enabled or disabled on this
271 interface. When IPv6 is enabled, this interface is
272 connected to an IPv6 stack, and the interface can send
273 and receive IPv6 packets.";
280 "Controls IPv6 packet forwarding of datagrams received by,
281 but not addressed to, this interface. IPv6 routers
282 forward datagrams. IPv6 hosts do not (except those
283 source-routed via the host).";
285 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
286 Section 6.2.1, IsRouter";
296 "The size, in octets, of the largest IPv6 packet that the
297 interface will send and receive.
299 The server may restrict the allowed values for this leaf,
300 depending on the interface's type.
302 If this leaf is not configured, the operationally used MTU
303 depends on the interface's type.";
305 "RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
313 "The list of configured IPv6 addresses on the interface.";
315 type inet:ipv6-address-no-zone;
317 "The IPv6 address on the interface.";
326 "The length of the subnet prefix.";
333 "A list of mappings from IPv6 addresses to
334 link-layer addresses.
336 Entries in this list are used as static entries in the
339 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
342 type inet:ipv6-address-no-zone;
344 "The IPv6 address of the neighbor node.";
347 leaf link-layer-address {
348 type yang:phys-address;
351 "The link-layer address of the neighbor node.";
355 leaf dup-addr-detect-transmits {
359 "The number of consecutive Neighbor Solicitation messages
360 sent while performing Duplicate Address Detection on a
361 tentative address. A value of zero indicates that
362 Duplicate Address Detection is not performed on
363 tentative addresses. A value of one indicates a single
364 transmission with no follow-up retransmissions.";
366 "RFC 4862: IPv6 Stateless Address Autoconfiguration";
372 "Parameters to control the autoconfiguration of IPv6
373 addresses, as described in RFC 4862.";
375 "RFC 4862: IPv6 Stateless Address Autoconfiguration";
377 leaf create-global-addresses {
381 "If enabled, the host creates global addresses as
382 described in RFC 4862.";
384 "RFC 4862: IPv6 Stateless Address Autoconfiguration
389 leaf create-temporary-addresses {
390 if-feature ipv6-privacy-autoconf;
394 "If enabled, the host creates temporary addresses as
395 described in RFC 4941.";
397 "RFC 4941: Privacy Extensions for Stateless Address
398 Autoconfiguration in IPv6";
402 leaf temporary-valid-lifetime {
403 if-feature ipv6-privacy-autoconf;
408 "The time period during which the temporary address
411 "RFC 4941: Privacy Extensions for Stateless Address
412 Autoconfiguration in IPv6
413 - TEMP_VALID_LIFETIME";
417 leaf temporary-preferred-lifetime {
418 if-feature ipv6-privacy-autoconf;
423 "The time period during which the temporary address is
426 "RFC 4941: Privacy Extensions for Stateless Address
427 Autoconfiguration in IPv6
428 - TEMP_PREFERRED_LIFETIME";
431 } // container autoconf
435 augment /if:interfaces-state/if:interface {
437 "Data nodes for the operational state of IP on interfaces.";
440 "Present if IPv4 is enabled on this interface";
443 "Interface-specific parameters for the IPv4 address family.";
447 "Indicates whether IPv4 packet forwarding is enabled or
448 disabled on this interface.";
457 "The size, in octets, of the largest IPv4 packet that the
458 interface will send and receive.";
460 "RFC 791: Internet Protocol";
467 "The list of IPv4 addresses on the interface.";
469 type inet:ipv4-address-no-zone;
471 "The IPv4 address on the interface.";
476 "The subnet can be specified as a prefix-length, or,
477 if the server supports non-contiguous netmasks, as
484 "The length of the subnet prefix.";
487 if-feature ipv4-non-contiguous-netmasks;
488 type yang:dotted-quad;
490 "The subnet specified as a netmask.";
495 type ip-address-origin;
497 "The origin of this address.";
504 "A list of mappings from IPv4 addresses to
505 link-layer addresses.
507 This list represents the ARP Cache.";
509 "RFC 826: An Ethernet Address Resolution Protocol";
512 type inet:ipv4-address-no-zone;
514 "The IPv4 address of the neighbor node.";
517 leaf link-layer-address {
518 type yang:phys-address;
520 "The link-layer address of the neighbor node.";
524 type neighbor-origin;
526 "The origin of this neighbor entry.";
533 "Present if IPv6 is enabled on this interface";
536 "Parameters for the IPv6 address family.";
541 "Indicates whether IPv6 packet forwarding is enabled or
542 disabled on this interface.";
544 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
545 Section 6.2.1, IsRouter";
555 "The size, in octets, of the largest IPv6 packet that the
556 interface will send and receive.";
558 "RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
566 "The list of IPv6 addresses on the interface.";
568 type inet:ipv6-address-no-zone;
570 "The IPv6 address on the interface.";
579 "The length of the subnet prefix.";
583 type ip-address-origin;
585 "The origin of this address.";
593 "This is a valid address that can appear as the
594 destination or source address of a packet.";
599 "This is a valid but deprecated address that should
600 no longer be used as a source address in new
601 communications, but packets addressed to such an
602 address are processed as expected.";
607 "This isn't a valid address, and it shouldn't appear
608 as the destination or source address of a packet.";
610 enum "inaccessible" {
613 "The address is not accessible because the interface
614 to which this address is assigned is not
620 "The status cannot be determined for some reason.";
625 "The uniqueness of the address on the link is being
626 verified. Addresses in this state should not be
627 used for general communication and should only be
628 used to determine the uniqueness of the address.";
633 "The address has been determined to be non-unique on
634 the link and so must not be used.";
639 "The address is available for use, subject to
640 restrictions, while its uniqueness on a link is
645 "The status of an address. Most of the states correspond
646 to states from the IPv6 Stateless Address
647 Autoconfiguration protocol.";
649 "RFC 4293: Management Information Base for the
650 Internet Protocol (IP)
652 RFC 4862: IPv6 Stateless Address Autoconfiguration";
660 "A list of mappings from IPv6 addresses to
661 link-layer addresses.
663 This list represents the Neighbor Cache.";
665 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
668 type inet:ipv6-address-no-zone;
670 "The IPv6 address of the neighbor node.";
673 leaf link-layer-address {
674 type yang:phys-address;
676 "The link-layer address of the neighbor node.";
680 type neighbor-origin;
682 "The origin of this neighbor entry.";
688 "Indicates that the neighbor node acts as a router.";
696 "Address resolution is in progress, and the link-layer
697 address of the neighbor has not yet been
703 "Roughly speaking, the neighbor is known to have been
704 reachable recently (within tens of seconds ago).";
709 "The neighbor is no longer known to be reachable, but
710 until traffic is sent to the neighbor no attempt
711 should be made to verify its reachability.";
716 "The neighbor is no longer known to be reachable, and
717 traffic has recently been sent to the neighbor.
718 Rather than probe the neighbor immediately, however,
719 delay sending probes for a short while in order to
720 give upper-layer protocols a chance to provide
721 reachability confirmation.";
726 "The neighbor is no longer known to be reachable, and
727 unicast Neighbor Solicitation probes are being sent
728 to verify reachability.";
732 "The Neighbor Unreachability Detection state of this
735 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)