]> git.proxmox.com Git - mirror_frr.git/blame - yang/frr-ripngd.yang
Merge pull request #5644 from donaldsharp/more_pim_doc
[mirror_frr.git] / yang / frr-ripngd.yang
CommitLineData
e9ce224b
RW
1module frr-ripngd {
2 yang-version 1.1;
3 namespace "http://frrouting.org/yang/ripngd";
4 prefix frr-ripngd;
5
6 import ietf-inet-types {
7 prefix inet;
8 }
9 import ietf-yang-types {
10 prefix yang;
11 }
12 import frr-interface {
13 prefix frr-interface;
14 }
15 import frr-route-types {
16 prefix frr-route-types;
17 }
18
19 organization
20 "Free Range Routing";
21 contact
22 "FRR Users List: <mailto:frog@lists.frrouting.org>
23 FRR Development List: <mailto:dev@lists.frrouting.org>";
24 description
25 "This module defines a model for managing FRR ripngd daemon.";
26
f22b9250
QY
27 revision 2019-09-09 {
28 description
29 "Changed interface references to use
30 frr-interface:interface-ref typedef";
31 }
e9ce224b
RW
32 revision 2018-11-27 {
33 description
34 "Initial revision.";
35 reference
36 "RFC 2080: RIPng for IPv6.";
37 }
38
39 container ripngd {
40 /*
dde7b15b 41 * Routing instance configuration.
e9ce224b 42 */
dde7b15b
RW
43 list instance {
44 key "vrf";
e9ce224b
RW
45 description
46 "RIPng routing instance.";
47
dde7b15b
RW
48 leaf vrf {
49 type string;
50 description
51 "VRF name.";
52 }
e9ce224b
RW
53 leaf allow-ecmp {
54 type boolean;
55 default "false";
56 description
57 "Allow equal-cost multi-path.";
58 }
59 leaf default-information-originate {
60 type boolean;
61 default "false";
62 description
63 "Control distribution of default route.";
64 }
65 leaf default-metric {
66 type uint8 {
67 range "1..16";
68 }
69 default "1";
70 description
71 "Default metric of redistributed routes.";
72 }
73 leaf-list network {
74 type inet:ipv6-prefix;
75 description
76 "Enable RIPng on the specified IPv6 network.";
77 }
78 leaf-list interface {
f22b9250 79 type frr-interface:interface-ref;
e9ce224b
RW
80 description
81 "Enable RIPng on the specified interface.";
82 }
83 list offset-list {
84 key "interface direction";
85 description
86 "Offset-list to modify route metric.";
87 leaf interface {
f22b9250
QY
88 type union {
89 type frr-interface:interface-ref;
90 type enumeration {
91 enum '*' {
92 description
93 "Match all interfaces.";
94 }
95 }
96 }
e9ce224b
RW
97 description
98 "Interface to match. Use '*' to match all interfaces.";
99 }
100 leaf direction {
101 type enumeration {
102 enum in {
103 value 0;
104 description
105 "Incoming updates.";
106 }
107 enum out {
108 value 1;
109 description
110 "Outgoing updates.";
111 }
112 }
113 description
114 "Incoming or outgoing updates.";
115 }
116 leaf access-list {
117 type string;
118 mandatory true;
119 description
120 "Access-list name.";
121 }
122 leaf metric {
123 type uint8 {
124 range "0..16";
125 }
126 mandatory true;
127 description
128 "Route metric.";
129 }
130 }
131 leaf-list passive-interface {
f22b9250 132 type frr-interface:interface-ref;
e9ce224b
RW
133 description
134 "A list of interfaces where the sending of RIPng packets
135 is disabled.";
136 }
137 list redistribute {
138 key "protocol";
139 description
140 "Redistributes routes learned from other routing protocols.";
141 leaf protocol {
142 type frr-route-types:frr-route-types-v6;
143 description
144 "Routing protocol.";
145 must '. != "ripng"';
146 }
147 leaf route-map {
148 type string {
149 length "1..max";
150 }
151 description
152 "Applies the conditions of the specified route-map to
153 routes that are redistributed into the RIPng routing
154 instance.";
155 }
156 leaf metric {
157 type uint8 {
158 range "0..16";
159 }
160 description
161 "Metric used for the redistributed route. If a metric is
162 not specified, the metric configured with the
163 default-metric attribute in RIPng router configuration is
164 used. If the default-metric attribute has not been
165 configured, the default metric for redistributed routes
166 is 0.";
167 }
168 }
169 leaf-list static-route {
170 type inet:ipv6-prefix;
171 description
172 "RIPng static routes.";
173 }
174 leaf-list aggregate-address {
175 type inet:ipv6-prefix;
176 description
177 "RIPng aggregate route announcement.";
178 }
179 container timers {
180 description
181 "Settings of basic timers";
182 leaf flush-interval {
183 type uint16 {
184 range "1..65535";
185 }
186 units "seconds";
187 default "120";
188 description
189 "Interval before a route is flushed from the routing
190 table.";
191 }
192 leaf holddown-interval {
193 type uint16 {
194 range "1..65535";
195 }
196 units "seconds";
197 default "180";
198 description
199 "Interval before better routes are released.";
200 }
201 leaf update-interval {
202 type uint16 {
203 range "1..65535";
204 }
205 units "seconds";
206 default "30";
207 description
208 "Interval at which RIPng updates are sent.";
209 }
210 }
e9ce224b 211
80cf4e45
RW
212 /*
213 * Operational data.
214 */
215 container state {
216 config false;
e9ce224b 217 description
80cf4e45
RW
218 "Operational data.";
219
220 container neighbors {
e9ce224b 221 description
80cf4e45
RW
222 "Neighbor information.";
223 list neighbor {
224 key "address";
e9ce224b 225 description
80cf4e45
RW
226 "A RIPng neighbor.";
227 leaf address {
228 type inet:ipv6-address;
229 description
230 "IPv6 address that a RIPng neighbor is using as its
231 source address.";
232 }
233 leaf last-update {
234 type yang:date-and-time;
235 description
236 "The time when the most recent RIPng update was
237 received from this neighbor.";
238 }
239 leaf bad-packets-rcvd {
240 type yang:counter32;
241 description
242 "The number of RIPng invalid packets received from
243 this neighbor which were subsequently discarded
244 for any reason (e.g. a version 0 packet, or an
245 unknown command type).";
246 }
247 leaf bad-routes-rcvd {
248 type yang:counter32;
249 description
250 "The number of routes received from this neighbor,
251 in valid RIPng packets, which were ignored for any
252 reason (e.g. unknown address family, or invalid
253 metric).";
254 }
e9ce224b
RW
255 }
256 }
80cf4e45 257 container routes {
e9ce224b 258 description
80cf4e45
RW
259 "Route information.";
260 list route {
261 key "prefix";
e9ce224b 262 description
80cf4e45
RW
263 "A RIPng IPv6 route.";
264 leaf prefix {
265 type inet:ipv6-prefix;
266 description
267 "IPv6 address and prefix length, in the format
268 specified in RFC6991.";
269 }
270 leaf next-hop {
271 type inet:ipv6-address;
272 description
273 "Next hop IPv6 address.";
274 }
275 leaf interface {
276 type string;
277 description
278 "The interface that the route uses.";
279 }
280 leaf metric {
281 type uint8 {
282 range "0..16";
283 }
284 description
285 "Route metric.";
e9ce224b 286 }
e9ce224b
RW
287 }
288 }
289 }
290 }
291 }
292
293 /*
294 * Per-interface configuration data
295 */
296 augment "/frr-interface:lib/frr-interface:interface" {
297 container ripng {
298 description
299 "RIPng interface parameters.";
300 leaf split-horizon {
301 type enumeration {
302 enum "disabled" {
303 value 0;
304 description
305 "Disables split-horizon processing.";
306 }
307 enum "simple" {
308 value 1;
309 description
310 "Enables simple split-horizon processing.";
311 }
312 enum "poison-reverse" {
313 value 2;
314 description
315 "Enables split-horizon processing with poison
316 reverse.";
317 }
318 }
319 default "simple";
320 description
321 "Controls RIPng split-horizon processing on the specified
322 interface.";
323 }
324 }
325 }
326
327 /*
328 * RPCs
329 */
330 rpc clear-ripng-route {
331 description
332 "Clears RIPng routes from the IPv6 routing table and routes
333 redistributed into the RIPng protocol.";
c5b2b5f6
RW
334
335 input {
336 leaf vrf {
337 type string;
338 description
339 "VRF name identifying a specific RIPng instance.
340 This leaf is optional for the rpc.
341 If it is specified, the rpc will clear all routes in the
342 specified RIPng instance;
343 if it is not specified, the rpc will clear all routes in
344 all RIPng instances.";
345 }
346 }
e9ce224b
RW
347 }
348}