| ietf-ip@2018-02-22.yang | ietf-ip@2018-02-22-f.yang | |||
|---|---|---|---|---|
| skipping to change at line 45 | skipping to change at line 44 | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC 8344; see | This version of this YANG module is part of RFC 8344; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2018-02-22 { | revision 2018-02-22 { | |||
| description | description | |||
| "Updated to support NMDA."; | "Updated to support NMDA."; | |||
| reference | reference "RFC 8344: A YANG Data Model for IP Management"; | |||
| "RFC 8344: A YANG Data Model for IP Management"; | ||||
| } | } | |||
| revision 2014-06-16 { | revision 2014-06-16 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference "RFC 7277: A YANG Data Model for IP Management"; | |||
| "RFC 7277: A YANG Data Model for IP Management"; | ||||
| } | } | |||
| /* | ||||
| * Features | ||||
| */ | ||||
| feature ipv4-non-contiguous-netmasks { | feature ipv4-non-contiguous-netmasks { | |||
| description | description | |||
| "Indicates support for configuring non-contiguous | "Indicates support for configuring non-contiguous | |||
| subnet masks."; | subnet masks."; | |||
| } | } | |||
| feature ipv6-privacy-autoconf { | feature ipv6-privacy-autoconf { | |||
| description | description | |||
| "Indicates support for privacy extensions for stateless address | "Indicates support for privacy extensions for stateless address | |||
| autoconfiguration in IPv6."; | autoconfiguration in IPv6."; | |||
| reference | reference | |||
| "RFC 4941: Privacy Extensions for Stateless Address | "RFC 4941: Privacy Extensions for Stateless Address | |||
| Autoconfiguration in IPv6"; | Autoconfiguration in IPv6"; | |||
| } | } | |||
| /* | ||||
| * Typedefs | ||||
| */ | ||||
| typedef ip-address-origin { | typedef ip-address-origin { | |||
| type enumeration { | type enumeration { | |||
| enum other { | enum "other" { | |||
| description | description | |||
| "None of the following."; | "None of the following."; | |||
| } | } | |||
| enum static { | enum "static" { | |||
| description | description | |||
| "Indicates that the address has been statically | "Indicates that the address has been statically | |||
| configured -- for example, using the Network Configuration | configured -- for example, using the Network Configuration | |||
| Protocol (NETCONF) or a command line interface."; | Protocol (NETCONF) or a command line interface."; | |||
| } | } | |||
| enum dhcp { | enum "dhcp" { | |||
| description | description | |||
| "Indicates an address that has been assigned to this | "Indicates an address that has been assigned to this | |||
| system by a DHCP server."; | system by a DHCP server."; | |||
| } | } | |||
| enum link-layer { | enum "link-layer" { | |||
| description | description | |||
| "Indicates an address created by IPv6 stateless | "Indicates an address created by IPv6 stateless | |||
| autoconfiguration that embeds a link-layer address in its | autoconfiguration that embeds a link-layer address in its | |||
| interface identifier."; | interface identifier."; | |||
| } | } | |||
| enum random { | enum "random" { | |||
| description | description | |||
| "Indicates an address chosen by the system at | "Indicates an address chosen by the system at | |||
| random, e.g., an IPv4 address within 169.254/16, a | random, e.g., an IPv4 address within 169.254/16, a | |||
| temporary address as described in RFC 4941, or a | temporary address as described in RFC 4941, or a | |||
| semantically opaque address as described in RFC 7217."; | semantically opaque address as described in RFC 7217."; | |||
| reference | reference | |||
| "RFC 4941: Privacy Extensions for Stateless Address | "RFC 4941: Privacy Extensions for Stateless Address | |||
| Autoconfiguration in IPv6 | Autoconfiguration in IPv6 | |||
| RFC 7217: A Method for Generating Semantically Opaque | RFC 7217: A Method for Generating Semantically Opaque | |||
| Interface Identifiers with IPv6 Stateless | Interface Identifiers with IPv6 Stateless | |||
| Address Autoconfiguration (SLAAC)"; | Address Autoconfiguration (SLAAC)"; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "The origin of an address."; | "The origin of an address."; | |||
| } | } | |||
| typedef neighbor-origin { | typedef neighbor-origin { | |||
| type enumeration { | type enumeration { | |||
| enum other { | enum "other" { | |||
| description | description | |||
| "None of the following."; | "None of the following."; | |||
| } | } | |||
| enum static { | enum "static" { | |||
| description | description | |||
| "Indicates that the mapping has been statically | "Indicates that the mapping has been statically | |||
| configured -- for example, using NETCONF or a command line | configured -- for example, using NETCONF or a command line | |||
| interface."; | interface."; | |||
| } | } | |||
| enum dynamic { | enum "dynamic" { | |||
| description | description | |||
| "Indicates that the mapping has been dynamically resolved | "Indicates that the mapping has been dynamically resolved | |||
| using, for example, IPv4 ARP or the IPv6 Neighbor | using, for example, IPv4 ARP or the IPv6 Neighbor | |||
| Discovery protocol."; | Discovery protocol."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "The origin of a neighbor entry."; | "The origin of a neighbor entry."; | |||
| } | } | |||
| /* | ||||
| * Data nodes | ||||
| */ | ||||
| augment "/if:interfaces/if:interface" { | augment "/if:interfaces/if:interface" { | |||
| description | description | |||
| "IP parameters on interfaces. | "IP parameters on interfaces. | |||
| If an interface is not capable of running IP, the server | If an interface is not capable of running IP, the server | |||
| must not allow the client to configure these parameters."; | must not allow the client to configure these parameters."; | |||
| container ipv4 { | container ipv4 { | |||
| presence | presence | |||
| "Enables IPv4 unless the 'enabled' leaf | "Enables IPv4 unless the 'enabled' leaf | |||
| (which defaults to 'true') is set to 'false'"; | (which defaults to 'true') is set to 'false'"; | |||
| description | description | |||
| "Parameters for the IPv4 address family."; | "Parameters for the IPv4 address family."; | |||
| leaf enabled { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| default true; | default "true"; | |||
| description | description | |||
| "Controls whether IPv4 is enabled or disabled on this | "Controls whether IPv4 is enabled or disabled on this | |||
| interface. When IPv4 is enabled, this interface is | interface. When IPv4 is enabled, this interface is | |||
| connected to an IPv4 stack, and the interface can send | connected to an IPv4 stack, and the interface can send | |||
| and receive IPv4 packets."; | and receive IPv4 packets."; | |||
| } | } | |||
| leaf forwarding { | leaf forwarding { | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "Controls IPv4 packet forwarding of datagrams received by, | "Controls IPv4 packet forwarding of datagrams received by, | |||
| but not addressed to, this interface. IPv4 routers | but not addressed to, this interface. IPv4 routers | |||
| forward datagrams. IPv4 hosts do not (except those | forward datagrams. IPv4 hosts do not (except those | |||
| source-routed via the host)."; | source-routed via the host)."; | |||
| } | } | |||
| leaf mtu { | leaf mtu { | |||
| type uint16 { | type uint16 { | |||
| range "68..max"; | range "68..max"; | |||
| } | } | |||
| units octets; | units "octets"; | |||
| description | description | |||
| "The size, in octets, of the largest IPv4 packet that the | "The size, in octets, of the largest IPv4 packet that the | |||
| interface will send and receive. | interface will send and receive. | |||
| The server may restrict the allowed values for this leaf, | The server may restrict the allowed values for this leaf, | |||
| depending on the interface's type. | depending on the interface's type. | |||
| If this leaf is not configured, the operationally used MTU | If this leaf is not configured, the operationally used MTU | |||
| depends on the interface's type."; | depends on the interface's type."; | |||
| reference | reference "RFC 791: Internet Protocol"; | |||
| "RFC 791: Internet Protocol"; | ||||
| } | } | |||
| list address { | list address { | |||
| key "ip"; | key "ip"; | |||
| description | description | |||
| "The list of IPv4 addresses on the interface."; | "The list of IPv4 addresses on the interface."; | |||
| leaf ip { | leaf ip { | |||
| type inet:ipv4-address-no-zone; | type inet:ipv4-address-no-zone; | |||
| description | description | |||
| "The IPv4 address on the interface."; | "The IPv4 address on the interface."; | |||
| } | } | |||
| choice subnet { | choice subnet { | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "The subnet can be specified as a 'prefix-length' or, | "The subnet can be specified as a 'prefix-length' or, | |||
| if the server supports non-contiguous netmasks, as | if the server supports non-contiguous netmasks, as | |||
| skipping to change at line 220 | skipping to change at line 200 | |||
| if the server supports non-contiguous netmasks, as | if the server supports non-contiguous netmasks, as | |||
| a netmask."; | a netmask."; | |||
| leaf prefix-length { | leaf prefix-length { | |||
| type uint8 { | type uint8 { | |||
| range "0..32"; | range "0..32"; | |||
| } | } | |||
| description | description | |||
| "The length of the subnet prefix."; | "The length of the subnet prefix."; | |||
| } | } | |||
| leaf netmask { | leaf netmask { | |||
| if-feature ipv4-non-contiguous-netmasks; | if-feature "ipv4-non-contiguous-netmasks"; | |||
| type yang:dotted-quad; | type yang:dotted-quad; | |||
| description | description | |||
| "The subnet specified as a netmask."; | "The subnet specified as a netmask."; | |||
| } | } | |||
| } | } | |||
| leaf origin { | leaf origin { | |||
| type ip-address-origin; | type ip-address-origin; | |||
| config false; | config false; | |||
| description | description | |||
| "The origin of this address."; | "The origin of this address."; | |||
| skipping to change at line 244 | skipping to change at line 224 | |||
| key "ip"; | key "ip"; | |||
| description | description | |||
| "A list of mappings from IPv4 addresses to | "A list of mappings from IPv4 addresses to | |||
| link-layer addresses. | link-layer addresses. | |||
| Entries in this list in the intended configuration are | Entries in this list in the intended configuration are | |||
| used as static entries in the ARP Cache. | used as static entries in the ARP Cache. | |||
| In the operational state, this list represents the ARP | In the operational state, this list represents the ARP | |||
| Cache."; | Cache."; | |||
| reference | reference "RFC 826: An Ethernet Address Resolution Protocol"; | |||
| "RFC 826: An Ethernet Address Resolution Protocol"; | ||||
| leaf ip { | leaf ip { | |||
| type inet:ipv4-address-no-zone; | type inet:ipv4-address-no-zone; | |||
| description | description | |||
| "The IPv4 address of the neighbor node."; | "The IPv4 address of the neighbor node."; | |||
| } | } | |||
| leaf link-layer-address { | leaf link-layer-address { | |||
| type yang:phys-address; | type yang:phys-address; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "The link-layer address of the neighbor node."; | "The link-layer address of the neighbor node."; | |||
| skipping to change at line 266 | skipping to change at line 244 | |||
| "The link-layer address of the neighbor node."; | "The link-layer address of the neighbor node."; | |||
| } | } | |||
| leaf origin { | leaf origin { | |||
| type neighbor-origin; | type neighbor-origin; | |||
| config false; | config false; | |||
| description | description | |||
| "The origin of this neighbor entry."; | "The origin of this neighbor entry."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container ipv6 { | container ipv6 { | |||
| presence | presence | |||
| "Enables IPv6 unless the 'enabled' leaf | "Enables IPv6 unless the 'enabled' leaf | |||
| (which defaults to 'true') is set to 'false'"; | (which defaults to 'true') is set to 'false'"; | |||
| description | description | |||
| "Parameters for the IPv6 address family."; | "Parameters for the IPv6 address family."; | |||
| leaf enabled { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| default true; | default "true"; | |||
| description | description | |||
| "Controls whether IPv6 is enabled or disabled on this | "Controls whether IPv6 is enabled or disabled on this | |||
| interface. When IPv6 is enabled, this interface is | interface. When IPv6 is enabled, this interface is | |||
| connected to an IPv6 stack, and the interface can send | connected to an IPv6 stack, and the interface can send | |||
| and receive IPv6 packets."; | and receive IPv6 packets."; | |||
| } | } | |||
| leaf forwarding { | leaf forwarding { | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "Controls IPv6 packet forwarding of datagrams received by, | "Controls IPv6 packet forwarding of datagrams received by, | |||
| but not addressed to, this interface. IPv6 routers | but not addressed to, this interface. IPv6 routers | |||
| forward datagrams. IPv6 hosts do not (except those | forward datagrams. IPv6 hosts do not (except those | |||
| source-routed via the host)."; | source-routed via the host)."; | |||
| reference | reference | |||
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) | "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) | |||
| Section 6.2.1, IsRouter"; | Section 6.2.1, IsRouter"; | |||
| } | } | |||
| leaf mtu { | leaf mtu { | |||
| type uint32 { | type uint32 { | |||
| range "1280..max"; | range "1280..max"; | |||
| } | } | |||
| units octets; | units "octets"; | |||
| description | description | |||
| "The size, in octets, of the largest IPv6 packet that the | "The size, in octets, of the largest IPv6 packet that the | |||
| interface will send and receive. | interface will send and receive. | |||
| The server may restrict the allowed values for this leaf, | The server may restrict the allowed values for this leaf, | |||
| depending on the interface's type. | depending on the interface's type. | |||
| If this leaf is not configured, the operationally used MTU | If this leaf is not configured, the operationally used MTU | |||
| depends on the interface's type."; | depends on the interface's type."; | |||
| reference | reference | |||
| skipping to change at line 341 | skipping to change at line 315 | |||
| "The length of the subnet prefix."; | "The length of the subnet prefix."; | |||
| } | } | |||
| leaf origin { | leaf origin { | |||
| type ip-address-origin; | type ip-address-origin; | |||
| config false; | config false; | |||
| description | description | |||
| "The origin of this address."; | "The origin of this address."; | |||
| } | } | |||
| leaf status { | leaf status { | |||
| type enumeration { | type enumeration { | |||
| enum preferred { | enum "preferred" { | |||
| description | description | |||
| "This is a valid address that can appear as the | "This is a valid address that can appear as the | |||
| destination or source address of a packet."; | destination or source address of a packet."; | |||
| } | } | |||
| enum deprecated { | enum "deprecated" { | |||
| description | description | |||
| "This is a valid but deprecated address that should | "This is a valid but deprecated address that should | |||
| no longer be used as a source address in new | no longer be used as a source address in new | |||
| communications, but packets addressed to such an | communications, but packets addressed to such an | |||
| address are processed as expected."; | address are processed as expected."; | |||
| } | } | |||
| enum invalid { | enum "invalid" { | |||
| description | description | |||
| "This isn't a valid address, and it shouldn't appear | "This isn't a valid address, and it shouldn't appear | |||
| as the destination or source address of a packet."; | as the destination or source address of a packet."; | |||
| } | } | |||
| enum inaccessible { | enum "inaccessible" { | |||
| description | description | |||
| "The address is not accessible because the interface | "The address is not accessible because the interface | |||
| to which this address is assigned is not | to which this address is assigned is not | |||
| operational."; | operational."; | |||
| } | } | |||
| enum unknown { | enum "unknown" { | |||
| description | description | |||
| "The status cannot be determined for some reason."; | "The status cannot be determined for some reason."; | |||
| } | } | |||
| enum tentative { | enum "tentative" { | |||
| description | description | |||
| "The uniqueness of the address on the link is being | "The uniqueness of the address on the link is being | |||
| verified. Addresses in this state should not be | verified. Addresses in this state should not be | |||
| used for general communication and should only be | used for general communication and should only be | |||
| used to determine the uniqueness of the address."; | used to determine the uniqueness of the address."; | |||
| } | } | |||
| enum duplicate { | enum "duplicate" { | |||
| description | description | |||
| "The address has been determined to be non-unique on | "The address has been determined to be non-unique on | |||
| the link and so must not be used."; | the link and so must not be used."; | |||
| } | } | |||
| enum optimistic { | enum "optimistic" { | |||
| description | description | |||
| "The address is available for use, subject to | "The address is available for use, subject to | |||
| restrictions, while its uniqueness on a link is | restrictions, while its uniqueness on a link is | |||
| being verified."; | being verified."; | |||
| } | } | |||
| } | } | |||
| config false; | config false; | |||
| description | description | |||
| "The status of an address. Most of the states correspond | "The status of an address. Most of the states correspond | |||
| to states from the IPv6 Stateless Address | to states from the IPv6 Stateless Address | |||
| skipping to change at line 410 | skipping to change at line 384 | |||
| key "ip"; | key "ip"; | |||
| description | description | |||
| "A list of mappings from IPv6 addresses to | "A list of mappings from IPv6 addresses to | |||
| link-layer addresses. | link-layer addresses. | |||
| Entries in this list in the intended configuration are | Entries in this list in the intended configuration are | |||
| used as static entries in the Neighbor Cache. | used as static entries in the Neighbor Cache. | |||
| In the operational state, this list represents the | In the operational state, this list represents the | |||
| Neighbor Cache."; | Neighbor Cache."; | |||
| reference | reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)"; | |||
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)"; | ||||
| leaf ip { | leaf ip { | |||
| type inet:ipv6-address-no-zone; | type inet:ipv6-address-no-zone; | |||
| description | description | |||
| "The IPv6 address of the neighbor node."; | "The IPv6 address of the neighbor node."; | |||
| } | } | |||
| leaf link-layer-address { | leaf link-layer-address { | |||
| type yang:phys-address; | type yang:phys-address; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "The link-layer address of the neighbor node. | "The link-layer address of the neighbor node. | |||
| skipping to change at line 441 | skipping to change at line 413 | |||
| "The origin of this neighbor entry."; | "The origin of this neighbor entry."; | |||
| } | } | |||
| leaf is-router { | leaf is-router { | |||
| type empty; | type empty; | |||
| config false; | config false; | |||
| description | description | |||
| "Indicates that the neighbor node acts as a router."; | "Indicates that the neighbor node acts as a router."; | |||
| } | } | |||
| leaf state { | leaf state { | |||
| type enumeration { | type enumeration { | |||
| enum incomplete { | enum "incomplete" { | |||
| description | description | |||
| "Address resolution is in progress, and the | "Address resolution is in progress, and the | |||
| link-layer address of the neighbor has not yet been | link-layer address of the neighbor has not yet been | |||
| determined."; | determined."; | |||
| } | } | |||
| enum reachable { | enum "reachable" { | |||
| description | description | |||
| "Roughly speaking, the neighbor is known to have been | "Roughly speaking, the neighbor is known to have been | |||
| reachable recently (within tens of seconds ago)."; | reachable recently (within tens of seconds ago)."; | |||
| } | } | |||
| enum stale { | enum "stale" { | |||
| description | description | |||
| "The neighbor is no longer known to be reachable, but | "The neighbor is no longer known to be reachable, but | |||
| until traffic is sent to the neighbor no attempt | until traffic is sent to the neighbor no attempt | |||
| should be made to verify its reachability."; | should be made to verify its reachability."; | |||
| } | } | |||
| enum delay { | enum "delay" { | |||
| description | description | |||
| "The neighbor is no longer known to be reachable, and | "The neighbor is no longer known to be reachable, and | |||
| traffic has recently been sent to the neighbor. | traffic has recently been sent to the neighbor. | |||
| Rather than probe the neighbor immediately, however, | Rather than probe the neighbor immediately, however, | |||
| delay sending probes for a short while in order to | delay sending probes for a short while in order to | |||
| give upper-layer protocols a chance to provide | give upper-layer protocols a chance to provide | |||
| reachability confirmation."; | reachability confirmation."; | |||
| } | } | |||
| enum probe { | enum "probe" { | |||
| description | description | |||
| "The neighbor is no longer known to be reachable, and | "The neighbor is no longer known to be reachable, and | |||
| unicast Neighbor Solicitation probes are being sent | unicast Neighbor Solicitation probes are being sent | |||
| to verify reachability."; | to verify reachability."; | |||
| } | } | |||
| } | } | |||
| config false; | config false; | |||
| description | description | |||
| "The Neighbor Unreachability Detection state of this | "The Neighbor Unreachability Detection state of this | |||
| entry."; | entry."; | |||
| skipping to change at line 483 | skipping to change at line 455 | |||
| } | } | |||
| config false; | config false; | |||
| description | description | |||
| "The Neighbor Unreachability Detection state of this | "The Neighbor Unreachability Detection state of this | |||
| entry."; | entry."; | |||
| reference | reference | |||
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) | "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) | |||
| Section 7.3.2"; | Section 7.3.2"; | |||
| } | } | |||
| } | } | |||
| leaf dup-addr-detect-transmits { | leaf dup-addr-detect-transmits { | |||
| type uint32; | type uint32; | |||
| default 1; | default "1"; | |||
| description | description | |||
| "The number of consecutive Neighbor Solicitation messages | "The number of consecutive Neighbor Solicitation messages | |||
| sent while performing Duplicate Address Detection on a | sent while performing Duplicate Address Detection on a | |||
| tentative address. A value of zero indicates that | tentative address. A value of zero indicates that | |||
| Duplicate Address Detection is not performed on | Duplicate Address Detection is not performed on | |||
| tentative addresses. A value of one indicates a single | tentative addresses. A value of one indicates a single | |||
| transmission with no follow-up retransmissions."; | transmission with no follow-up retransmissions."; | |||
| reference | reference "RFC 4862: IPv6 Stateless Address Autoconfiguration"; | |||
| "RFC 4862: IPv6 Stateless Address Autoconfiguration"; | ||||
| } | } | |||
| container autoconf { | container autoconf { | |||
| description | description | |||
| "Parameters to control the autoconfiguration of IPv6 | "Parameters to control the autoconfiguration of IPv6 | |||
| addresses, as described in RFC 4862."; | addresses, as described in RFC 4862."; | |||
| reference | reference "RFC 4862: IPv6 Stateless Address Autoconfiguration"; | |||
| "RFC 4862: IPv6 Stateless Address Autoconfiguration"; | ||||
| leaf create-global-addresses { | leaf create-global-addresses { | |||
| type boolean; | type boolean; | |||
| default true; | default "true"; | |||
| description | description | |||
| "If enabled, the host creates global addresses as | "If enabled, the host creates global addresses as | |||
| described in RFC 4862."; | described in RFC 4862."; | |||
| reference | reference | |||
| "RFC 4862: IPv6 Stateless Address Autoconfiguration | "RFC 4862: IPv6 Stateless Address Autoconfiguration | |||
| Section 5.5"; | Section 5.5"; | |||
| } | } | |||
| leaf create-temporary-addresses { | leaf create-temporary-addresses { | |||
| if-feature ipv6-privacy-autoconf; | if-feature "ipv6-privacy-autoconf"; | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "If enabled, the host creates temporary addresses as | "If enabled, the host creates temporary addresses as | |||
| described in RFC 4941."; | described in RFC 4941."; | |||
| reference | reference | |||
| "RFC 4941: Privacy Extensions for Stateless Address | "RFC 4941: Privacy Extensions for Stateless Address | |||
| Autoconfiguration in IPv6"; | Autoconfiguration in IPv6"; | |||
| } | } | |||
| leaf temporary-valid-lifetime { | leaf temporary-valid-lifetime { | |||
| if-feature ipv6-privacy-autoconf; | if-feature "ipv6-privacy-autoconf"; | |||
| type uint32; | type uint32; | |||
| units "seconds"; | units "seconds"; | |||
| default 604800; | default "604800"; | |||
| description | description | |||
| "The time period during which the temporary address | "The time period during which the temporary address | |||
| is valid."; | is valid."; | |||
| reference | reference | |||
| "RFC 4941: Privacy Extensions for Stateless Address | "RFC 4941: Privacy Extensions for Stateless Address | |||
| Autoconfiguration in IPv6 | Autoconfiguration in IPv6 | |||
| - TEMP_VALID_LIFETIME"; | - TEMP_VALID_LIFETIME"; | |||
| } | } | |||
| leaf temporary-preferred-lifetime { | leaf temporary-preferred-lifetime { | |||
| if-feature ipv6-privacy-autoconf; | if-feature "ipv6-privacy-autoconf"; | |||
| type uint32; | type uint32; | |||
| units "seconds"; | units "seconds"; | |||
| default 86400; | default "86400"; | |||
| description | description | |||
| "The time period during which the temporary address is | "The time period during which the temporary address is | |||
| preferred."; | preferred."; | |||
| reference | reference | |||
| "RFC 4941: Privacy Extensions for Stateless Address | "RFC 4941: Privacy Extensions for Stateless Address | |||
| Autoconfiguration in IPv6 | Autoconfiguration in IPv6 | |||
| - TEMP_PREFERRED_LIFETIME"; | - TEMP_PREFERRED_LIFETIME"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| /* | ||||
| * Legacy operational state data nodes | ||||
| */ | ||||
| augment "/if:interfaces-state/if:interface" { | augment "/if:interfaces-state/if:interface" { | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "Data nodes for the operational state of IP on interfaces."; | "Data nodes for the operational state of IP on interfaces."; | |||
| container ipv4 { | container ipv4 { | |||
| presence | presence "Present if IPv4 is enabled on this interface"; | |||
| "Present if IPv4 is enabled on this interface"; | ||||
| config false; | config false; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "Interface-specific parameters for the IPv4 address family."; | "Interface-specific parameters for the IPv4 address family."; | |||
| leaf forwarding { | leaf forwarding { | |||
| type boolean; | type boolean; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "Indicates whether IPv4 packet forwarding is enabled or | "Indicates whether IPv4 packet forwarding is enabled or | |||
| disabled on this interface."; | disabled on this interface."; | |||
| } | } | |||
| leaf mtu { | leaf mtu { | |||
| type uint16 { | type uint16 { | |||
| range "68..max"; | range "68..max"; | |||
| skipping to change at line 584 | skipping to change at line 543 | |||
| type boolean; | type boolean; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "Indicates whether IPv4 packet forwarding is enabled or | "Indicates whether IPv4 packet forwarding is enabled or | |||
| disabled on this interface."; | disabled on this interface."; | |||
| } | } | |||
| leaf mtu { | leaf mtu { | |||
| type uint16 { | type uint16 { | |||
| range "68..max"; | range "68..max"; | |||
| } | } | |||
| units octets; | units "octets"; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The size, in octets, of the largest IPv4 packet that the | "The size, in octets, of the largest IPv4 packet that the | |||
| interface will send and receive."; | interface will send and receive."; | |||
| reference | reference "RFC 791: Internet Protocol"; | |||
| "RFC 791: Internet Protocol"; | ||||
| } | } | |||
| list address { | list address { | |||
| key "ip"; | key "ip"; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The list of IPv4 addresses on the interface."; | "The list of IPv4 addresses on the interface."; | |||
| leaf ip { | leaf ip { | |||
| type inet:ipv4-address-no-zone; | type inet:ipv4-address-no-zone; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The IPv4 address on the interface."; | "The IPv4 address on the interface."; | |||
| } | } | |||
| choice subnet { | choice subnet { | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The subnet can be specified as a 'prefix-length' or, | "The subnet can be specified as a 'prefix-length' or, | |||
| skipping to change at line 619 | skipping to change at line 576 | |||
| a netmask."; | a netmask."; | |||
| leaf prefix-length { | leaf prefix-length { | |||
| type uint8 { | type uint8 { | |||
| range "0..32"; | range "0..32"; | |||
| } | } | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The length of the subnet prefix."; | "The length of the subnet prefix."; | |||
| } | } | |||
| leaf netmask { | leaf netmask { | |||
| if-feature ipv4-non-contiguous-netmasks; | if-feature "ipv4-non-contiguous-netmasks"; | |||
| type yang:dotted-quad; | type yang:dotted-quad; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The subnet specified as a netmask."; | "The subnet specified as a netmask."; | |||
| } | } | |||
| } | } | |||
| leaf origin { | leaf origin { | |||
| type ip-address-origin; | type ip-address-origin; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| skipping to change at line 641 | skipping to change at line 598 | |||
| } | } | |||
| } | } | |||
| list neighbor { | list neighbor { | |||
| key "ip"; | key "ip"; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "A list of mappings from IPv4 addresses to | "A list of mappings from IPv4 addresses to | |||
| link-layer addresses. | link-layer addresses. | |||
| This list represents the ARP Cache."; | This list represents the ARP Cache."; | |||
| reference | reference "RFC 826: An Ethernet Address Resolution Protocol"; | |||
| "RFC 826: An Ethernet Address Resolution Protocol"; | ||||
| leaf ip { | leaf ip { | |||
| type inet:ipv4-address-no-zone; | type inet:ipv4-address-no-zone; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The IPv4 address of the neighbor node."; | "The IPv4 address of the neighbor node."; | |||
| } | } | |||
| leaf link-layer-address { | leaf link-layer-address { | |||
| type yang:phys-address; | type yang:phys-address; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| skipping to change at line 664 | skipping to change at line 619 | |||
| "The link-layer address of the neighbor node."; | "The link-layer address of the neighbor node."; | |||
| } | } | |||
| leaf origin { | leaf origin { | |||
| type neighbor-origin; | type neighbor-origin; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The origin of this neighbor entry."; | "The origin of this neighbor entry."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container ipv6 { | container ipv6 { | |||
| presence | presence "Present if IPv6 is enabled on this interface"; | |||
| "Present if IPv6 is enabled on this interface"; | ||||
| config false; | config false; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "Parameters for the IPv6 address family."; | "Parameters for the IPv6 address family."; | |||
| leaf forwarding { | leaf forwarding { | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "Indicates whether IPv6 packet forwarding is enabled or | "Indicates whether IPv6 packet forwarding is enabled or | |||
| disabled on this interface."; | disabled on this interface."; | |||
| reference | reference | |||
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) | "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) | |||
| Section 6.2.1, IsRouter"; | Section 6.2.1, IsRouter"; | |||
| } | } | |||
| leaf mtu { | leaf mtu { | |||
| type uint32 { | type uint32 { | |||
| range "1280..max"; | range "1280..max"; | |||
| } | } | |||
| units octets; | units "octets"; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The size, in octets, of the largest IPv6 packet that the | "The size, in octets, of the largest IPv6 packet that the | |||
| interface will send and receive."; | interface will send and receive."; | |||
| reference | reference | |||
| "RFC 8200: Internet Protocol, Version 6 (IPv6) | "RFC 8200: Internet Protocol, Version 6 (IPv6) | |||
| Specification | Specification | |||
| Section 5"; | Section 5"; | |||
| } | } | |||
| list address { | list address { | |||
| skipping to change at line 727 | skipping to change at line 678 | |||
| "The length of the subnet prefix."; | "The length of the subnet prefix."; | |||
| } | } | |||
| leaf origin { | leaf origin { | |||
| type ip-address-origin; | type ip-address-origin; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The origin of this address."; | "The origin of this address."; | |||
| } | } | |||
| leaf status { | leaf status { | |||
| type enumeration { | type enumeration { | |||
| enum preferred { | enum "preferred" { | |||
| description | description | |||
| "This is a valid address that can appear as the | "This is a valid address that can appear as the | |||
| destination or source address of a packet."; | destination or source address of a packet."; | |||
| } | } | |||
| enum deprecated { | enum "deprecated" { | |||
| description | description | |||
| "This is a valid but deprecated address that should | "This is a valid but deprecated address that should | |||
| no longer be used as a source address in new | no longer be used as a source address in new | |||
| communications, but packets addressed to such an | communications, but packets addressed to such an | |||
| address are processed as expected."; | address are processed as expected."; | |||
| } | } | |||
| enum invalid { | enum "invalid" { | |||
| description | description | |||
| "This isn't a valid address, and it shouldn't appear | "This isn't a valid address, and it shouldn't appear | |||
| as the destination or source address of a packet."; | as the destination or source address of a packet."; | |||
| } | } | |||
| enum inaccessible { | enum "inaccessible" { | |||
| description | description | |||
| "The address is not accessible because the interface | "The address is not accessible because the interface | |||
| to which this address is assigned is not | to which this address is assigned is not | |||
| operational."; | operational."; | |||
| } | } | |||
| enum unknown { | enum "unknown" { | |||
| description | description | |||
| "The status cannot be determined for some reason."; | "The status cannot be determined for some reason."; | |||
| } | } | |||
| enum tentative { | enum "tentative" { | |||
| description | description | |||
| "The uniqueness of the address on the link is being | "The uniqueness of the address on the link is being | |||
| verified. Addresses in this state should not be | verified. Addresses in this state should not be | |||
| used for general communication and should only be | used for general communication and should only be | |||
| used to determine the uniqueness of the address."; | used to determine the uniqueness of the address."; | |||
| } | } | |||
| enum duplicate { | enum "duplicate" { | |||
| description | description | |||
| "The address has been determined to be non-unique on | "The address has been determined to be non-unique on | |||
| the link and so must not be used."; | the link and so must not be used."; | |||
| } | } | |||
| enum optimistic { | enum "optimistic" { | |||
| description | description | |||
| "The address is available for use, subject to | "The address is available for use, subject to | |||
| restrictions, while its uniqueness on a link is | restrictions, while its uniqueness on a link is | |||
| being verified."; | being verified."; | |||
| } | } | |||
| } | } | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The status of an address. Most of the states correspond | "The status of an address. Most of the states correspond | |||
| to states from the IPv6 Stateless Address | to states from the IPv6 Stateless Address | |||
| skipping to change at line 793 | skipping to change at line 744 | |||
| } | } | |||
| } | } | |||
| list neighbor { | list neighbor { | |||
| key "ip"; | key "ip"; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "A list of mappings from IPv6 addresses to | "A list of mappings from IPv6 addresses to | |||
| link-layer addresses. | link-layer addresses. | |||
| This list represents the Neighbor Cache."; | This list represents the Neighbor Cache."; | |||
| reference | reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)"; | |||
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)"; | ||||
| leaf ip { | leaf ip { | |||
| type inet:ipv6-address-no-zone; | type inet:ipv6-address-no-zone; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The IPv6 address of the neighbor node."; | "The IPv6 address of the neighbor node."; | |||
| } | } | |||
| leaf link-layer-address { | leaf link-layer-address { | |||
| type yang:phys-address; | type yang:phys-address; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| skipping to change at line 822 | skipping to change at line 771 | |||
| "The origin of this neighbor entry."; | "The origin of this neighbor entry."; | |||
| } | } | |||
| leaf is-router { | leaf is-router { | |||
| type empty; | type empty; | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "Indicates that the neighbor node acts as a router."; | "Indicates that the neighbor node acts as a router."; | |||
| } | } | |||
| leaf state { | leaf state { | |||
| type enumeration { | type enumeration { | |||
| enum incomplete { | enum "incomplete" { | |||
| description | description | |||
| "Address resolution is in progress, and the | "Address resolution is in progress, and the | |||
| link-layer address of the neighbor has not yet been | link-layer address of the neighbor has not yet been | |||
| determined."; | determined."; | |||
| } | } | |||
| enum reachable { | enum "reachable" { | |||
| description | description | |||
| "Roughly speaking, the neighbor is known to have been | "Roughly speaking, the neighbor is known to have been | |||
| reachable recently (within tens of seconds ago)."; | reachable recently (within tens of seconds ago)."; | |||
| } | } | |||
| enum stale { | enum "stale" { | |||
| description | description | |||
| "The neighbor is no longer known to be reachable, but | "The neighbor is no longer known to be reachable, but | |||
| until traffic is sent to the neighbor no attempt | until traffic is sent to the neighbor no attempt | |||
| should be made to verify its reachability."; | should be made to verify its reachability."; | |||
| } | } | |||
| enum delay { | enum "delay" { | |||
| description | description | |||
| "The neighbor is no longer known to be reachable, and | "The neighbor is no longer known to be reachable, and | |||
| traffic has recently been sent to the neighbor. | traffic has recently been sent to the neighbor. | |||
| Rather than probe the neighbor immediately, however, | Rather than probe the neighbor immediately, however, | |||
| delay sending probes for a short while in order to | delay sending probes for a short while in order to | |||
| give upper-layer protocols a chance to provide | give upper-layer protocols a chance to provide | |||
| reachability confirmation."; | reachability confirmation."; | |||
| } | } | |||
| enum probe { | enum "probe" { | |||
| description | description | |||
| "The neighbor is no longer known to be reachable, and | "The neighbor is no longer known to be reachable, and | |||
| unicast Neighbor Solicitation probes are being sent | unicast Neighbor Solicitation probes are being sent | |||
| to verify reachability."; | to verify reachability."; | |||
| } | } | |||
| } | } | |||
| status deprecated; | status deprecated; | |||
| description | description | |||
| "The Neighbor Unreachability Detection state of this | "The Neighbor Unreachability Detection state of this | |||
| entry."; | entry."; | |||
| reference | reference | |||
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) | "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) | |||
| Section 7.3.2"; | Section 7.3.2"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| /* | ||||
| * Features | ||||
| */ | ||||
| /* | ||||
| * Typedefs | ||||
| */ | ||||
| /* | ||||
| * Data nodes | ||||
| */ | ||||
| /* | ||||
| * Legacy operational state data nodes | ||||
| */ | ||||
| } | } | |||
| End of changes. 83 change blocks. | ||||
| 112 lines changed or deleted | 78 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||