module openconfig-if-ip-ext { yang-version "1"; // namespace namespace "http://openconfig.net/yang/interfaces/ip-ext"; prefix "oc-ip-ext"; import openconfig-interfaces { prefix oc-if; } import openconfig-if-ip { prefix oc-ip; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module adds extensions to the base IP configuration and operational state model to support additional use cases."; oc-ext:openconfig-version "2.3.0"; revision "2018-01-05" { description "Add logical loopback to interface."; reference "2.3.0"; } revision "2017-12-21" { description "Added IPv6 router advertisement configuration."; reference "2.1.0"; } revision "2017-07-14" { description "Added Ethernet/IP state data; Add dhcp-client; migrate to OpenConfig types modules; Removed or renamed opstate values"; reference "2.0.0"; } revision "2016-12-22" { description "Fixes to Ethernet interfaces model"; reference "1.1.0"; } // grouping statements grouping ipv6-autoconf-config { description "Configuration data for IPv6 address autoconfiguration"; leaf create-global-addresses { type boolean; default true; description "[adapted from IETF IP model RFC 7277] If enabled, the host creates global addresses as described in RFC 4862."; reference "RFC 4862: IPv6 Stateless Address Autoconfiguration Section 5.5"; } leaf create-temporary-addresses { type boolean; default false; description "[adapted from IETF IP model RFC 7277] If enabled, the host creates temporary addresses as described in RFC 4941."; reference "RFC 4941: Privacy Extensions for Stateless Address Autoconfiguration in IPv6"; } leaf temporary-valid-lifetime { type uint32; units "seconds"; default 604800; description "[adapted from IETF IP model RFC 7277] The time period during which the temporary address is valid."; reference "RFC 4941: Privacy Extensions for Stateless Address Autoconfiguration in IPv6 - TEMP_VALID_LIFETIME"; } leaf temporary-preferred-lifetime { type uint32; units "seconds"; default 86400; description "[adapted from IETF IP model RFC 7277] The time period during which the temporary address is preferred."; reference "RFC 4941: Privacy Extensions for Stateless Address Autoconfiguration in IPv6 - TEMP_PREFERRED_LIFETIME"; } } grouping ipv6-autoconf-state { description "Operational state data for IPv6 address autoconfiguration"; //TODO: placeholder for additional opstate for IPv6 autoconf } grouping ipv6-autoconf-top { description "Top-level grouping for IPv6 address autoconfiguration"; container autoconf { description "Top-level container for IPv6 autoconf"; container config { description "[adapted from IETF IP model RFC 7277] Parameters to control the autoconfiguration of IPv6 addresses, as described in RFC 4862."; reference "RFC 4862: IPv6 Stateless Address Autoconfiguration"; uses ipv6-autoconf-config; } container state { config false; description "Operational state data "; uses ipv6-autoconf-config; uses ipv6-autoconf-state; } } } // data definition statements // augment statements augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" + "oc-if:subinterface/oc-ip:ipv6" { description "Adds address autoconfiguration to the base IP model"; uses ipv6-autoconf-top; } }