<?xml version="1.0" encoding="UTF-8"?> <module name="ietf-ip" xmlns="urn:ietf:params:xml:ns:yang:yin:1" xmlns:ip="urn:ietf:params:xml:ns:yang:ietf-ip" xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces" xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types" xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types"> <yang-version value="1"/> <namespace uri="urn:ietf:params:xml:ns:yang:ietf-ip"/> <prefix value="ip"/> <import module="ietf-interfaces"> <prefix value="if"/> </import> <import module="ietf-inet-types"> <prefix value="inet"/> </import> <import module="ietf-yang-types"> <prefix value="yang"/> </import> <organization> <text>IETF NETMOD (NETCONF Data Modeling Language) Working Group</text> </organization> <contact> <text>WG Web: &lt;http://tools.ietf.org/wg/netmod/&gt; WG List: &lt;mailto:netmod@ietf.org&gt; WG Chair: Thomas Nadeau &lt;mailto:tnadeau@lucidvision.com&gt; WG Chair: Juergen Schoenwaelder &lt;mailto:j.schoenwaelder@jacobs-university.de&gt; Editor: Martin Bjorklund &lt;mailto:mbj@tail-f.com&gt;</text> </contact> <description> <text>This module contains a collection of YANG definitions for configuring IP implementations. Copyright (c) 2014 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 Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 7277; see the RFC itself for full legal notices.</text> </description> <revision date="2014-06-16"> <description> <text>Initial revision.</text> </description> <reference> <text>RFC 7277: A YANG Data Model for IP Management</text> </reference> </revision> <feature name="ipv4-non-contiguous-netmasks"> <description> <text>Indicates support for configuring non-contiguous subnet masks.</text> </description> </feature> <feature name="ipv6-privacy-autoconf"> <description> <text>Indicates support for Privacy Extensions for Stateless Address Autoconfiguration in IPv6.</text> </description> <reference> <text>RFC 4941: Privacy Extensions for Stateless Address Autoconfiguration in IPv6</text> </reference> </feature> <typedef name="ip-address-origin"> <type name="enumeration"> <enum name="other"> <value value="0"/> <description> <text>None of the following.</text> </description> </enum> <enum name="static"> <value value="1"/> <description> <text>Indicates that the address has been statically configured - for example, using NETCONF or a Command Line Interface.</text> </description> </enum> <enum name="dhcp"> <value value="2"/> <description> <text>Indicates an address that has been assigned to this system by a DHCP server.</text> </description> </enum> <enum name="link-layer"> <value value="3"/> <description> <text>Indicates an address created by IPv6 stateless autoconfiguration that embeds a link-layer address in its interface identifier.</text> </description> </enum> <enum name="random"> <value value="4"/> <description> <text>Indicates an address chosen by the system at random, e.g., an IPv4 address within 169.254/16, an RFC 4941 temporary address, or an RFC 7217 semantically opaque address.</text> </description> <reference> <text>RFC 4941: Privacy Extensions for Stateless Address Autoconfiguration in IPv6 RFC 7217: A Method for Generating Semantically Opaque Interface Identifiers with IPv6 Stateless Address Autoconfiguration (SLAAC)</text> </reference> </enum> </type> <description> <text>The origin of an address.</text> </description> </typedef> <typedef name="neighbor-origin"> <type name="enumeration"> <enum name="other"> <value value="0"/> <description> <text>None of the following.</text> </description> </enum> <enum name="static"> <value value="1"/> <description> <text>Indicates that the mapping has been statically configured - for example, using NETCONF or a Command Line Interface.</text> </description> </enum> <enum name="dynamic"> <value value="2"/> <description> <text>Indicates that the mapping has been dynamically resolved using, e.g., IPv4 ARP or the IPv6 Neighbor Discovery protocol.</text> </description> </enum> </type> <description> <text>The origin of a neighbor entry.</text> </description> </typedef> <augment target-node="/if:interfaces/if:interface"> <description> <text>Parameters for configuring IP on interfaces. If an interface is not capable of running IP, the server must not allow the client to configure these parameters.</text> </description> <container name="ipv4"> <presence value="Enables IPv4 unless the 'enabled' leaf (which defaults to 'true') is set to 'false'"/> <description> <text>Parameters for the IPv4 address family.</text> </description> <leaf name="enabled"> <type name="boolean"/> <default value="true"/> <description> <text>Controls whether IPv4 is enabled or disabled on this interface. When IPv4 is enabled, this interface is connected to an IPv4 stack, and the interface can send and receive IPv4 packets.</text> </description> </leaf> <leaf name="forwarding"> <type name="boolean"/> <default value="false"/> <description> <text>Controls IPv4 packet forwarding of datagrams received by, but not addressed to, this interface. IPv4 routers forward datagrams. IPv4 hosts do not (except those source-routed via the host).</text> </description> </leaf> <leaf name="mtu"> <type name="uint16"> <range value="68..max"/> </type> <units name="octets"/> <description> <text>The size, in octets, of the largest IPv4 packet that the interface will send and receive. The server may restrict the allowed values for this leaf, depending on the interface's type. If this leaf is not configured, the operationally used MTU depends on the interface's type.</text> </description> <reference> <text>RFC 791: Internet Protocol</text> </reference> </leaf> <list name="address"> <key value="ip"/> <description> <text>The list of configured IPv4 addresses on the interface.</text> </description> <leaf name="ip"> <type name="inet:ipv4-address-no-zone"/> <description> <text>The IPv4 address on the interface.</text> </description> </leaf> <choice name="subnet"> <mandatory value="true"/> <description> <text>The subnet can be specified as a prefix-length, or, if the server supports non-contiguous netmasks, as a netmask.</text> </description> <leaf name="prefix-length"> <type name="uint8"> <range value="0..32"/> </type> <description> <text>The length of the subnet prefix.</text> </description> </leaf> <leaf name="netmask"> <if-feature name="ipv4-non-contiguous-netmasks"/> <type name="yang:dotted-quad"/> <description> <text>The subnet specified as a netmask.</text> </description> </leaf> </choice> </list> <list name="neighbor"> <key value="ip"/> <description> <text>A list of mappings from IPv4 addresses to link-layer addresses. Entries in this list are used as static entries in the ARP Cache.</text> </description> <reference> <text>RFC 826: An Ethernet Address Resolution Protocol</text> </reference> <leaf name="ip"> <type name="inet:ipv4-address-no-zone"/> <description> <text>The IPv4 address of the neighbor node.</text> </description> </leaf> <leaf name="link-layer-address"> <type name="yang:phys-address"/> <mandatory value="true"/> <description> <text>The link-layer address of the neighbor node.</text> </description> </leaf> </list> </container> <container name="ipv6"> <presence value="Enables IPv6 unless the 'enabled' leaf (which defaults to 'true') is set to 'false'"/> <description> <text>Parameters for the IPv6 address family.</text> </description> <leaf name="enabled"> <type name="boolean"/> <default value="true"/> <description> <text>Controls whether IPv6 is enabled or disabled on this interface. When IPv6 is enabled, this interface is connected to an IPv6 stack, and the interface can send and receive IPv6 packets.</text> </description> </leaf> <leaf name="forwarding"> <type name="boolean"/> <default value="false"/> <description> <text>Controls IPv6 packet forwarding of datagrams received by, but not addressed to, this interface. IPv6 routers forward datagrams. IPv6 hosts do not (except those source-routed via the host).</text> </description> <reference> <text>RFC 4861: Neighbor Discovery for IP version 6 (IPv6) Section 6.2.1, IsRouter</text> </reference> </leaf> <leaf name="mtu"> <type name="uint32"> <range value="1280..max"/> </type> <units name="octets"/> <description> <text>The size, in octets, of the largest IPv6 packet that the interface will send and receive. The server may restrict the allowed values for this leaf, depending on the interface's type. If this leaf is not configured, the operationally used MTU depends on the interface's type.</text> </description> <reference> <text>RFC 2460: Internet Protocol, Version 6 (IPv6) Specification Section 5</text> </reference> </leaf> <list name="address"> <key value="ip"/> <description> <text>The list of configured IPv6 addresses on the interface.</text> </description> <leaf name="ip"> <type name="inet:ipv6-address-no-zone"/> <description> <text>The IPv6 address on the interface.</text> </description> </leaf> <leaf name="prefix-length"> <type name="uint8"> <range value="0..128"/> </type> <mandatory value="true"/> <description> <text>The length of the subnet prefix.</text> </description> </leaf> </list> <list name="neighbor"> <key value="ip"/> <description> <text>A list of mappings from IPv6 addresses to link-layer addresses. Entries in this list are used as static entries in the Neighbor Cache.</text> </description> <reference> <text>RFC 4861: Neighbor Discovery for IP version 6 (IPv6)</text> </reference> <leaf name="ip"> <type name="inet:ipv6-address-no-zone"/> <description> <text>The IPv6 address of the neighbor node.</text> </description> </leaf> <leaf name="link-layer-address"> <type name="yang:phys-address"/> <mandatory value="true"/> <description> <text>The link-layer address of the neighbor node.</text> </description> </leaf> </list> <leaf name="dup-addr-detect-transmits"> <type name="uint32"/> <default value="1"/> <description> <text>The number of consecutive Neighbor Solicitation messages sent while performing Duplicate Address Detection on a tentative address. A value of zero indicates that Duplicate Address Detection is not performed on tentative addresses. A value of one indicates a single transmission with no follow-up retransmissions.</text> </description> <reference> <text>RFC 4862: IPv6 Stateless Address Autoconfiguration</text> </reference> </leaf> <container name="autoconf"> <description> <text>Parameters to control the autoconfiguration of IPv6 addresses, as described in RFC 4862.</text> </description> <reference> <text>RFC 4862: IPv6 Stateless Address Autoconfiguration</text> </reference> <leaf name="create-global-addresses"> <type name="boolean"/> <default value="true"/> <description> <text>If enabled, the host creates global addresses as described in RFC 4862.</text> </description> <reference> <text>RFC 4862: IPv6 Stateless Address Autoconfiguration Section 5.5</text> </reference> </leaf> <leaf name="create-temporary-addresses"> <if-feature name="ipv6-privacy-autoconf"/> <type name="boolean"/> <default value="false"/> <description> <text>If enabled, the host creates temporary addresses as described in RFC 4941.</text> </description> <reference> <text>RFC 4941: Privacy Extensions for Stateless Address Autoconfiguration in IPv6</text> </reference> </leaf> <leaf name="temporary-valid-lifetime"> <if-feature name="ipv6-privacy-autoconf"/> <type name="uint32"/> <units name="seconds"/> <default value="604800"/> <description> <text>The time period during which the temporary address is valid.</text> </description> <reference> <text>RFC 4941: Privacy Extensions for Stateless Address Autoconfiguration in IPv6 - TEMP_VALID_LIFETIME</text> </reference> </leaf> <leaf name="temporary-preferred-lifetime"> <if-feature name="ipv6-privacy-autoconf"/> <type name="uint32"/> <units name="seconds"/> <default value="86400"/> <description> <text>The time period during which the temporary address is preferred.</text> </description> <reference> <text>RFC 4941: Privacy Extensions for Stateless Address Autoconfiguration in IPv6 - TEMP_PREFERRED_LIFETIME</text> </reference> </leaf> </container> </container> </augment> <augment target-node="/if:interfaces-state/if:interface"> <description> <text>Data nodes for the operational state of IP on interfaces.</text> </description> <container name="ipv4"> <presence value="Present if IPv4 is enabled on this interface"/> <config value="false"/> <description> <text>Interface-specific parameters for the IPv4 address family.</text> </description> <leaf name="forwarding"> <type name="boolean"/> <description> <text>Indicates whether IPv4 packet forwarding is enabled or disabled on this interface.</text> </description> </leaf> <leaf name="mtu"> <type name="uint16"> <range value="68..max"/> </type> <units name="octets"/> <description> <text>The size, in octets, of the largest IPv4 packet that the interface will send and receive.</text> </description> <reference> <text>RFC 791: Internet Protocol</text> </reference> </leaf> <list name="address"> <key value="ip"/> <description> <text>The list of IPv4 addresses on the interface.</text> </description> <leaf name="ip"> <type name="inet:ipv4-address-no-zone"/> <description> <text>The IPv4 address on the interface.</text> </description> </leaf> <choice name="subnet"> <description> <text>The subnet can be specified as a prefix-length, or, if the server supports non-contiguous netmasks, as a netmask.</text> </description> <leaf name="prefix-length"> <type name="uint8"> <range value="0..32"/> </type> <description> <text>The length of the subnet prefix.</text> </description> </leaf> <leaf name="netmask"> <if-feature name="ipv4-non-contiguous-netmasks"/> <type name="yang:dotted-quad"/> <description> <text>The subnet specified as a netmask.</text> </description> </leaf> </choice> <leaf name="origin"> <type name="ip-address-origin"/> <description> <text>The origin of this address.</text> </description> </leaf> </list> <list name="neighbor"> <key value="ip"/> <description> <text>A list of mappings from IPv4 addresses to link-layer addresses. This list represents the ARP Cache.</text> </description> <reference> <text>RFC 826: An Ethernet Address Resolution Protocol</text> </reference> <leaf name="ip"> <type name="inet:ipv4-address-no-zone"/> <description> <text>The IPv4 address of the neighbor node.</text> </description> </leaf> <leaf name="link-layer-address"> <type name="yang:phys-address"/> <description> <text>The link-layer address of the neighbor node.</text> </description> </leaf> <leaf name="origin"> <type name="neighbor-origin"/> <description> <text>The origin of this neighbor entry.</text> </description> </leaf> </list> </container> <container name="ipv6"> <presence value="Present if IPv6 is enabled on this interface"/> <config value="false"/> <description> <text>Parameters for the IPv6 address family.</text> </description> <leaf name="forwarding"> <type name="boolean"/> <default value="false"/> <description> <text>Indicates whether IPv6 packet forwarding is enabled or disabled on this interface.</text> </description> <reference> <text>RFC 4861: Neighbor Discovery for IP version 6 (IPv6) Section 6.2.1, IsRouter</text> </reference> </leaf> <leaf name="mtu"> <type name="uint32"> <range value="1280..max"/> </type> <units name="octets"/> <description> <text>The size, in octets, of the largest IPv6 packet that the interface will send and receive.</text> </description> <reference> <text>RFC 2460: Internet Protocol, Version 6 (IPv6) Specification Section 5</text> </reference> </leaf> <list name="address"> <key value="ip"/> <description> <text>The list of IPv6 addresses on the interface.</text> </description> <leaf name="ip"> <type name="inet:ipv6-address-no-zone"/> <description> <text>The IPv6 address on the interface.</text> </description> </leaf> <leaf name="prefix-length"> <type name="uint8"> <range value="0..128"/> </type> <mandatory value="true"/> <description> <text>The length of the subnet prefix.</text> </description> </leaf> <leaf name="origin"> <type name="ip-address-origin"/> <description> <text>The origin of this address.</text> </description> </leaf> <leaf name="status"> <type name="enumeration"> <enum name="preferred"> <value value="0"/> <description> <text>This is a valid address that can appear as the destination or source address of a packet.</text> </description> </enum> <enum name="deprecated"> <value value="1"/> <description> <text>This is a valid but deprecated address that should no longer be used as a source address in new communications, but packets addressed to such an address are processed as expected.</text> </description> </enum> <enum name="invalid"> <value value="2"/> <description> <text>This isn't a valid address, and it shouldn't appear as the destination or source address of a packet.</text> </description> </enum> <enum name="inaccessible"> <value value="3"/> <description> <text>The address is not accessible because the interface to which this address is assigned is not operational.</text> </description> </enum> <enum name="unknown"> <value value="4"/> <description> <text>The status cannot be determined for some reason.</text> </description> </enum> <enum name="tentative"> <value value="5"/> <description> <text>The uniqueness of the address on the link is being verified. Addresses in this state should not be used for general communication and should only be used to determine the uniqueness of the address.</text> </description> </enum> <enum name="duplicate"> <value value="6"/> <description> <text>The address has been determined to be non-unique on the link and so must not be used.</text> </description> </enum> <enum name="optimistic"> <value value="7"/> <description> <text>The address is available for use, subject to restrictions, while its uniqueness on a link is being verified.</text> </description> </enum> </type> <description> <text>The status of an address. Most of the states correspond to states from the IPv6 Stateless Address Autoconfiguration protocol.</text> </description> <reference> <text>RFC 4293: Management Information Base for the Internet Protocol (IP) - IpAddressStatusTC RFC 4862: IPv6 Stateless Address Autoconfiguration</text> </reference> </leaf> </list> <list name="neighbor"> <key value="ip"/> <description> <text>A list of mappings from IPv6 addresses to link-layer addresses. This list represents the Neighbor Cache.</text> </description> <reference> <text>RFC 4861: Neighbor Discovery for IP version 6 (IPv6)</text> </reference> <leaf name="ip"> <type name="inet:ipv6-address-no-zone"/> <description> <text>The IPv6 address of the neighbor node.</text> </description> </leaf> <leaf name="link-layer-address"> <type name="yang:phys-address"/> <description> <text>The link-layer address of the neighbor node.</text> </description> </leaf> <leaf name="origin"> <type name="neighbor-origin"/> <description> <text>The origin of this neighbor entry.</text> </description> </leaf> <leaf name="is-router"> <type name="empty"/> <description> <text>Indicates that the neighbor node acts as a router.</text> </description> </leaf> <leaf name="state"> <type name="enumeration"> <enum name="incomplete"> <value value="0"/> <description> <text>Address resolution is in progress, and the link-layer address of the neighbor has not yet been determined.</text> </description> </enum> <enum name="reachable"> <value value="1"/> <description> <text>Roughly speaking, the neighbor is known to have been reachable recently (within tens of seconds ago).</text> </description> </enum> <enum name="stale"> <value value="2"/> <description> <text>The neighbor is no longer known to be reachable, but until traffic is sent to the neighbor no attempt should be made to verify its reachability.</text> </description> </enum> <enum name="delay"> <value value="3"/> <description> <text>The neighbor is no longer known to be reachable, and traffic has recently been sent to the neighbor. Rather than probe the neighbor immediately, however, delay sending probes for a short while in order to give upper-layer protocols a chance to provide reachability confirmation.</text> </description> </enum> <enum name="probe"> <value value="4"/> <description> <text>The neighbor is no longer known to be reachable, and unicast Neighbor Solicitation probes are being sent to verify reachability.</text> </description> </enum> </type> <description> <text>The Neighbor Unreachability Detection state of this entry.</text> </description> <reference> <text>RFC 4861: Neighbor Discovery for IP version 6 (IPv6) Section 7.3.2</text> </reference> </leaf> </list> </container> </augment> </module>