blob: 558b0de2c4c1d1d8c3c92775172dbc0598f0a5c1 [file] [log] [blame]
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.0.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;
}
}