blob: 558b0de2c4c1d1d8c3c92775172dbc0598f0a5c1 [file] [log] [blame]
Thomas Vachuska8ca75a22017-08-24 16:12:59 -07001module openconfig-if-ip-ext {
2
3 yang-version "1";
4
5 // namespace
6 namespace "http://openconfig.net/yang/interfaces/ip-ext";
7
8 prefix "oc-ip-ext";
9
10 import openconfig-interfaces { prefix oc-if; }
11 import openconfig-if-ip { prefix oc-ip; }
12 import openconfig-extensions { prefix oc-ext; }
13
14
15 // meta
16 organization "OpenConfig working group";
17
18 contact
19 "OpenConfig working group
20 www.openconfig.net";
21
22 description
23 "This module adds extensions to the base IP configuration and
24 operational state model to support additional use cases.";
25
26 oc-ext:openconfig-version "2.0.0";
27
28 revision "2017-07-14" {
29 description
30 "Added Ethernet/IP state data; Add dhcp-client;
31 migrate to OpenConfig types modules; Removed or
32 renamed opstate values";
33 reference "2.0.0";
34 }
35
36 revision "2016-12-22" {
37 description
38 "Fixes to Ethernet interfaces model";
39 reference "1.1.0";
40 }
41
42
43 // grouping statements
44
45 grouping ipv6-autoconf-config {
46 description
47 "Configuration data for IPv6 address autoconfiguration";
48
49 leaf create-global-addresses {
50 type boolean;
51 default true;
52 description
53 "[adapted from IETF IP model RFC 7277]
54
55 If enabled, the host creates global addresses as
56 described in RFC 4862.";
57 reference
58 "RFC 4862: IPv6 Stateless Address Autoconfiguration
59 Section 5.5";
60 }
61 leaf create-temporary-addresses {
62 type boolean;
63 default false;
64 description
65 "[adapted from IETF IP model RFC 7277]
66
67 If enabled, the host creates temporary addresses as
68 described in RFC 4941.";
69 reference
70 "RFC 4941: Privacy Extensions for Stateless Address
71 Autoconfiguration in IPv6";
72 }
73
74 leaf temporary-valid-lifetime {
75 type uint32;
76 units "seconds";
77 default 604800;
78 description
79 "[adapted from IETF IP model RFC 7277]
80
81 The time period during which the temporary address
82 is valid.";
83 reference
84 "RFC 4941: Privacy Extensions for Stateless Address
85 Autoconfiguration in IPv6
86 - TEMP_VALID_LIFETIME";
87 }
88
89 leaf temporary-preferred-lifetime {
90 type uint32;
91 units "seconds";
92 default 86400;
93 description
94 "[adapted from IETF IP model RFC 7277]
95
96 The time period during which the temporary address is
97 preferred.";
98 reference
99 "RFC 4941: Privacy Extensions for Stateless Address
100 Autoconfiguration in IPv6
101 - TEMP_PREFERRED_LIFETIME";
102 }
103 }
104
105 grouping ipv6-autoconf-state {
106 description
107 "Operational state data for IPv6 address autoconfiguration";
108
109 //TODO: placeholder for additional opstate for IPv6 autoconf
110 }
111
112 grouping ipv6-autoconf-top {
113 description
114 "Top-level grouping for IPv6 address autoconfiguration";
115
116 container autoconf {
117 description
118 "Top-level container for IPv6 autoconf";
119
120 container config {
121 description
122 "[adapted from IETF IP model RFC 7277]
123
124 Parameters to control the autoconfiguration of IPv6
125 addresses, as described in RFC 4862.";
126 reference
127 "RFC 4862: IPv6 Stateless Address Autoconfiguration";
128
129 uses ipv6-autoconf-config;
130 }
131
132 container state {
133
134 config false;
135
136 description
137 "Operational state data ";
138
139 uses ipv6-autoconf-config;
140 uses ipv6-autoconf-state;
141 }
142 }
143 }
144
145 // data definition statements
146
147 // augment statements
148
149 augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" +
150 "oc-if:subinterface/oc-ip:ipv6" {
151 description
152 "Adds address autoconfiguration to the base IP model";
153
154 uses ipv6-autoconf-top;
155 }
156
157}