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 (NETCONF Data Modeling Language) Working Group";
20 "WG Web: <http://tools.ietf.org/wg/netmod/>
21 WG List: <mailto:netmod@ietf.org>
23 WG Chair: Thomas Nadeau
24 <mailto:tnadeau@lucidvision.com>
26 WG Chair: Juergen Schoenwaelder
27 <mailto:j.schoenwaelder@jacobs-university.de>
29 Editor: Martin Bjorklund
30 <mailto:mbj@tail-f.com>";
33 "This module contains a collection of YANG definitions for
34 configuring IP implementations.
36 Copyright (c) 2014 IETF Trust and the persons identified as
37 authors of the code. All rights reserved.
39 Redistribution and use in source and binary forms, with or
40 without modification, is permitted pursuant to, and subject
41 to the license terms contained in, the Simplified BSD License
42 set forth in Section 4.c of the IETF Trust's Legal Provisions
43 Relating to IETF Documents
44 (http://trustee.ietf.org/license-info).
46 This version of this YANG module is part of RFC 7277; see
47 the RFC itself for full legal notices.";
53 "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";
80 typedef ip-address-origin {
84 "None of the following.";
88 "Indicates that the address has been statically
89 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.";
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
107 random, e.g., an IPv4 address within 169.254/16, an
108 RFC 4941 temporary address, or an RFC 7217 semantically
111 "RFC 4941: Privacy Extensions for Stateless Address
112 Autoconfiguration in IPv6
113 RFC 7217: A Method for Generating Semantically Opaque
114 Interface Identifiers with IPv6 Stateless
115 Address Autoconfiguration (SLAAC)";
119 "The origin of an address.";
122 typedef neighbor-origin {
126 "None of the following.";
130 "Indicates that the mapping has been statically
131 configured - for example, using NETCONF or a Command Line
136 "Indicates that the mapping has been dynamically resolved
137 using, e.g., IPv4 ARP or the IPv6 Neighbor Discovery
142 "The origin of a neighbor entry.";
146 * Configuration data nodes
149 augment "/if:interfaces/if:interface" {
151 "Parameters for configuring IP 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).";
187 "The size, in octets, of the largest IPv4 packet that the
188 interface will send and receive.
190 The server may restrict the allowed values for this leaf,
191 depending on the interface's type.
193 If this leaf is not configured, the operationally used MTU
194 depends on the interface's type.";
196 "RFC 791: Internet Protocol";
201 "The list of configured IPv4 addresses on the interface.";
204 type inet:ipv4-address-no-zone;
206 "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.";
233 "A list of mappings from IPv4 addresses to
234 link-layer addresses.
236 Entries in this list are used as static entries in the
239 "RFC 826: An Ethernet Address Resolution Protocol";
242 type inet:ipv4-address-no-zone;
244 "The IPv4 address of the neighbor node.";
246 leaf link-layer-address {
247 type yang:phys-address;
250 "The link-layer address of the neighbor node.";
258 "Enables IPv6 unless the 'enabled' leaf
259 (which defaults to 'true') is set to 'false'";
261 "Parameters for the IPv6 address family.";
267 "Controls whether IPv6 is enabled or disabled on this
268 interface. When IPv6 is enabled, this interface is
269 connected to an IPv6 stack, and the interface can send
270 and receive IPv6 packets.";
276 "Controls IPv6 packet forwarding of datagrams received by,
277 but not addressed to, this interface. IPv6 routers
278 forward datagrams. IPv6 hosts do not (except those
279 source-routed via the host).";
281 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
282 Section 6.2.1, IsRouter";
290 "The size, in octets, of the largest IPv6 packet that the
291 interface will send and receive.
293 The server may restrict the allowed values for this leaf,
294 depending on the interface's type.
296 If this leaf is not configured, the operationally used MTU
297 depends on the interface's type.";
299 "RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
306 "The list of configured IPv6 addresses on the interface.";
309 type inet:ipv6-address-no-zone;
311 "The IPv6 address on the interface.";
319 "The length of the subnet prefix.";
325 "A list of mappings from IPv6 addresses to
326 link-layer addresses.
328 Entries in this list are used as static entries in the
331 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
334 type inet:ipv6-address-no-zone;
336 "The IPv6 address of the neighbor node.";
338 leaf link-layer-address {
339 type yang:phys-address;
342 "The link-layer address of the neighbor node.";
346 leaf dup-addr-detect-transmits {
350 "The number of consecutive Neighbor Solicitation messages
351 sent while performing Duplicate Address Detection on a
352 tentative address. A value of zero indicates that
353 Duplicate Address Detection is not performed on
354 tentative addresses. A value of one indicates a single
355 transmission with no follow-up retransmissions.";
357 "RFC 4862: IPv6 Stateless Address Autoconfiguration";
361 "Parameters to control the autoconfiguration of IPv6
362 addresses, as described in RFC 4862.";
364 "RFC 4862: IPv6 Stateless Address Autoconfiguration";
366 leaf create-global-addresses {
370 "If enabled, the host creates global addresses as
371 described in RFC 4862.";
373 "RFC 4862: IPv6 Stateless Address Autoconfiguration
376 leaf create-temporary-addresses {
377 if-feature ipv6-privacy-autoconf;
381 "If enabled, the host creates temporary addresses as
382 described in RFC 4941.";
384 "RFC 4941: Privacy Extensions for Stateless Address
385 Autoconfiguration in IPv6";
388 leaf temporary-valid-lifetime {
389 if-feature ipv6-privacy-autoconf;
394 "The time period during which the temporary address
397 "RFC 4941: Privacy Extensions for Stateless Address
398 Autoconfiguration in IPv6
399 - TEMP_VALID_LIFETIME";
401 leaf temporary-preferred-lifetime {
402 if-feature ipv6-privacy-autoconf;
407 "The time period during which the temporary address is
410 "RFC 4941: Privacy Extensions for Stateless Address
411 Autoconfiguration in IPv6
412 - TEMP_PREFERRED_LIFETIME";
419 * Operational state data nodes
422 augment "/if:interfaces-state/if:interface" {
424 "Data nodes for the operational state of IP on interfaces.";
427 presence "Present if IPv4 is enabled on this interface";
430 "Interface-specific parameters for the IPv4 address family.";
435 "Indicates whether IPv4 packet forwarding is enabled or
436 disabled on this interface.";
444 "The size, in octets, of the largest IPv4 packet that the
445 interface will send and receive.";
447 "RFC 791: Internet Protocol";
452 "The list of IPv4 addresses on the interface.";
455 type inet:ipv4-address-no-zone;
457 "The IPv4 address on the interface.";
461 "The subnet can be specified as a prefix-length, or,
462 if the server supports non-contiguous netmasks, as
469 "The length of the subnet prefix.";
472 if-feature ipv4-non-contiguous-netmasks;
473 type yang:dotted-quad;
475 "The subnet specified as a netmask.";
480 type ip-address-origin;
482 "The origin of this address.";
488 "A list of mappings from IPv4 addresses to
489 link-layer addresses.
491 This list represents the ARP Cache.";
493 "RFC 826: An Ethernet Address Resolution Protocol";
496 type inet:ipv4-address-no-zone;
498 "The IPv4 address of the neighbor node.";
500 leaf link-layer-address {
501 type yang:phys-address;
503 "The link-layer address of the neighbor node.";
506 type neighbor-origin;
508 "The origin of this neighbor entry.";
515 presence "Present if IPv6 is enabled on this interface";
518 "Parameters for the IPv6 address family.";
524 "Indicates whether IPv6 packet forwarding is enabled or
525 disabled on this interface.";
527 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
528 Section 6.2.1, IsRouter";
536 "The size, in octets, of the largest IPv6 packet that the
537 interface will send and receive.";
539 "RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
545 "The list of IPv6 addresses on the interface.";
548 type inet:ipv6-address-no-zone;
550 "The IPv6 address on the interface.";
558 "The length of the subnet prefix.";
561 type ip-address-origin;
563 "The origin of this address.";
570 "This is a valid address that can appear as the
571 destination or source address of a packet.";
575 "This is a valid but deprecated address that should
576 no longer be used as a source address in new
577 communications, but packets addressed to such an
578 address are processed as expected.";
582 "This isn't a valid address, and it shouldn't appear
583 as the destination or source address of a packet.";
587 "The address is not accessible because the interface
588 to which this address is assigned is not
593 "The status cannot be determined for some reason.";
597 "The uniqueness of the address on the link is being
598 verified. Addresses in this state should not be
599 used for general communication and should only be
600 used to determine the uniqueness of the address.";
604 "The address has been determined to be non-unique on
605 the link and so must not be used.";
610 "The address is available for use, subject to
611 restrictions, while its uniqueness on a link is
616 "The status of an address. Most of the states correspond
617 to states from the IPv6 Stateless Address
618 Autoconfiguration protocol.";
620 "RFC 4293: Management Information Base for the
621 Internet Protocol (IP)
623 RFC 4862: IPv6 Stateless Address Autoconfiguration";
629 "A list of mappings from IPv6 addresses to
630 link-layer addresses.
632 This list represents the Neighbor Cache.";
634 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
637 type inet:ipv6-address-no-zone;
639 "The IPv6 address of the neighbor node.";
641 leaf link-layer-address {
642 type yang:phys-address;
644 "The link-layer address of the neighbor node.";
647 type neighbor-origin;
649 "The origin of this neighbor entry.";
654 "Indicates that the neighbor node acts as a router.";
660 "Address resolution is in progress, and the link-layer
661 address of the neighbor has not yet been
666 "Roughly speaking, the neighbor is known to have been
667 reachable recently (within tens of seconds ago).";
671 "The neighbor is no longer known to be reachable, but
672 until traffic is sent to the neighbor no attempt
673 should be made to verify its reachability.";
677 "The neighbor is no longer known to be reachable, and
678 traffic has recently been sent to the neighbor.
679 Rather than probe the neighbor immediately, however,
680 delay sending probes for a short while in order to
681 give upper-layer protocols a chance to provide
682 reachability confirmation.";
686 "The neighbor is no longer known to be reachable, and
687 unicast Neighbor Solicitation probes are being sent
688 to verify reachability.";
692 "The Neighbor Unreachability Detection state of this
695 "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)