]> git.proxmox.com Git - mirror_frr.git/blob - isisd/isis_nb.c
Merge pull request #8950 from idryzhov/ospf6-router-id
[mirror_frr.git] / isisd / isis_nb.c
1 /*
2 * Copyright (C) 2018 Volta Networks
3 * Emanuele Di Pascale
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the Free
7 * Software Foundation; either version 2 of the License, or (at your option)
8 * any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; see the file COPYING; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20 #include <zebra.h>
21
22 #include "northbound.h"
23 #include "libfrr.h"
24
25 #include "isisd/isis_nb.h"
26
27 /* clang-format off */
28 const struct frr_yang_module_info frr_isisd_info = {
29 .name = "frr-isisd",
30 .nodes = {
31 {
32 .xpath = "/frr-isisd:isis/instance",
33 .cbs = {
34 .cli_show = cli_show_router_isis,
35 .create = isis_instance_create,
36 .destroy = isis_instance_destroy,
37 },
38 .priority = NB_DFLT_PRIORITY - 1,
39 },
40 {
41 .xpath = "/frr-isisd:isis/instance/is-type",
42 .cbs = {
43 .cli_show = cli_show_isis_is_type,
44 .modify = isis_instance_is_type_modify,
45 },
46 },
47 {
48 .xpath = "/frr-isisd:isis/instance/area-address",
49 .cbs = {
50 .cli_show = cli_show_isis_area_address,
51 .create = isis_instance_area_address_create,
52 .destroy = isis_instance_area_address_destroy,
53 },
54 },
55 {
56 .xpath = "/frr-isisd:isis/instance/dynamic-hostname",
57 .cbs = {
58 .cli_show = cli_show_isis_dynamic_hostname,
59 .modify = isis_instance_dynamic_hostname_modify,
60 },
61 },
62 {
63 .xpath = "/frr-isisd:isis/instance/attach-send",
64 .cbs = {
65 .cli_show = cli_show_isis_attached_send,
66 .modify = isis_instance_attached_send_modify,
67 },
68 },
69 {
70 .xpath = "/frr-isisd:isis/instance/attach-receive-ignore",
71 .cbs = {
72 .cli_show = cli_show_isis_attached_receive,
73 .modify = isis_instance_attached_receive_modify,
74 },
75 },
76 {
77 .xpath = "/frr-isisd:isis/instance/attached",
78 .cbs = {
79 .modify = isis_instance_attached_modify,
80 },
81 },
82 {
83 .xpath = "/frr-isisd:isis/instance/overload",
84 .cbs = {
85 .cli_show = cli_show_isis_overload,
86 .modify = isis_instance_overload_modify,
87 },
88 },
89 {
90 .xpath = "/frr-isisd:isis/instance/metric-style",
91 .cbs = {
92 .cli_show = cli_show_isis_metric_style,
93 .modify = isis_instance_metric_style_modify,
94 },
95 },
96 {
97 .xpath = "/frr-isisd:isis/instance/purge-originator",
98 .cbs = {
99 .cli_show = cli_show_isis_purge_origin,
100 .modify = isis_instance_purge_originator_modify,
101 },
102 },
103 {
104 .xpath = "/frr-isisd:isis/instance/lsp/mtu",
105 .cbs = {
106 .cli_show = cli_show_isis_lsp_mtu,
107 .modify = isis_instance_lsp_mtu_modify,
108 },
109 },
110 {
111 .xpath = "/frr-isisd:isis/instance/lsp/timers",
112 .cbs = {
113 .cli_show = cli_show_isis_lsp_timers,
114 },
115 },
116 {
117 .xpath = "/frr-isisd:isis/instance/lsp/timers/level-1/refresh-interval",
118 .cbs = {
119 .modify = isis_instance_lsp_refresh_interval_level_1_modify,
120 },
121 },
122 {
123 .xpath = "/frr-isisd:isis/instance/lsp/timers/level-1/maximum-lifetime",
124 .cbs = {
125 .modify = isis_instance_lsp_maximum_lifetime_level_1_modify,
126 },
127 },
128 {
129 .xpath = "/frr-isisd:isis/instance/lsp/timers/level-1/generation-interval",
130 .cbs = {
131 .modify = isis_instance_lsp_generation_interval_level_1_modify,
132 },
133 },
134 {
135 .xpath = "/frr-isisd:isis/instance/lsp/timers/level-2/refresh-interval",
136 .cbs = {
137 .modify = isis_instance_lsp_refresh_interval_level_2_modify,
138 },
139 },
140 {
141 .xpath = "/frr-isisd:isis/instance/lsp/timers/level-2/maximum-lifetime",
142 .cbs = {
143 .modify = isis_instance_lsp_maximum_lifetime_level_2_modify,
144 },
145 },
146 {
147 .xpath = "/frr-isisd:isis/instance/lsp/timers/level-2/generation-interval",
148 .cbs = {
149 .modify = isis_instance_lsp_generation_interval_level_2_modify,
150 },
151 },
152 {
153 .xpath = "/frr-isisd:isis/instance/spf/ietf-backoff-delay",
154 .cbs = {
155 .apply_finish = ietf_backoff_delay_apply_finish,
156 .cli_show = cli_show_isis_spf_ietf_backoff,
157 .create = isis_instance_spf_ietf_backoff_delay_create,
158 .destroy = isis_instance_spf_ietf_backoff_delay_destroy,
159 },
160 },
161 {
162 .xpath = "/frr-isisd:isis/instance/spf/ietf-backoff-delay/init-delay",
163 .cbs = {
164 .modify = isis_instance_spf_ietf_backoff_delay_init_delay_modify,
165 },
166 },
167 {
168 .xpath = "/frr-isisd:isis/instance/spf/ietf-backoff-delay/short-delay",
169 .cbs = {
170 .modify = isis_instance_spf_ietf_backoff_delay_short_delay_modify,
171 },
172 },
173 {
174 .xpath = "/frr-isisd:isis/instance/spf/ietf-backoff-delay/long-delay",
175 .cbs = {
176 .modify = isis_instance_spf_ietf_backoff_delay_long_delay_modify,
177 },
178 },
179 {
180 .xpath = "/frr-isisd:isis/instance/spf/ietf-backoff-delay/hold-down",
181 .cbs = {
182 .modify = isis_instance_spf_ietf_backoff_delay_hold_down_modify,
183 },
184 },
185 {
186 .xpath = "/frr-isisd:isis/instance/spf/ietf-backoff-delay/time-to-learn",
187 .cbs = {
188 .modify = isis_instance_spf_ietf_backoff_delay_time_to_learn_modify,
189 },
190 },
191 {
192 .xpath = "/frr-isisd:isis/instance/spf/minimum-interval",
193 .cbs = {
194 .cli_show = cli_show_isis_spf_min_interval,
195 },
196 },
197 {
198 .xpath = "/frr-isisd:isis/instance/spf/minimum-interval/level-1",
199 .cbs = {
200 .modify = isis_instance_spf_minimum_interval_level_1_modify,
201 },
202 },
203 {
204 .xpath = "/frr-isisd:isis/instance/spf/minimum-interval/level-2",
205 .cbs = {
206 .modify = isis_instance_spf_minimum_interval_level_2_modify,
207 },
208 },
209 {
210 .xpath = "/frr-isisd:isis/instance/spf/prefix-priorities/critical/access-list-name",
211 .cbs = {
212 .cli_show = cli_show_isis_spf_prefix_priority,
213 .modify = isis_instance_spf_prefix_priorities_critical_access_list_name_modify,
214 .destroy = isis_instance_spf_prefix_priorities_critical_access_list_name_destroy,
215 }
216 },
217 {
218 .xpath = "/frr-isisd:isis/instance/spf/prefix-priorities/high/access-list-name",
219 .cbs = {
220 .cli_show = cli_show_isis_spf_prefix_priority,
221 .modify = isis_instance_spf_prefix_priorities_high_access_list_name_modify,
222 .destroy = isis_instance_spf_prefix_priorities_high_access_list_name_destroy,
223 }
224 },
225 {
226 .xpath = "/frr-isisd:isis/instance/spf/prefix-priorities/medium/access-list-name",
227 .cbs = {
228 .cli_show = cli_show_isis_spf_prefix_priority,
229 .modify = isis_instance_spf_prefix_priorities_medium_access_list_name_modify,
230 .destroy = isis_instance_spf_prefix_priorities_medium_access_list_name_destroy,
231 }
232 },
233 {
234 .xpath = "/frr-isisd:isis/instance/area-password",
235 .cbs = {
236 .apply_finish = area_password_apply_finish,
237 .cli_show = cli_show_isis_area_pwd,
238 .create = isis_instance_area_password_create,
239 .destroy = isis_instance_area_password_destroy,
240 },
241 },
242 {
243 .xpath = "/frr-isisd:isis/instance/area-password/password",
244 .cbs = {
245 .modify = isis_instance_area_password_password_modify,
246 },
247 },
248 {
249 .xpath = "/frr-isisd:isis/instance/area-password/password-type",
250 .cbs = {
251 .modify = isis_instance_area_password_password_type_modify,
252 },
253 },
254 {
255 .xpath = "/frr-isisd:isis/instance/area-password/authenticate-snp",
256 .cbs = {
257 .modify = isis_instance_area_password_authenticate_snp_modify,
258 },
259 },
260 {
261 .xpath = "/frr-isisd:isis/instance/domain-password",
262 .cbs = {
263 .apply_finish = domain_password_apply_finish,
264 .cli_show = cli_show_isis_domain_pwd,
265 .create = isis_instance_domain_password_create,
266 .destroy = isis_instance_domain_password_destroy,
267 },
268 },
269 {
270 .xpath = "/frr-isisd:isis/instance/domain-password/password",
271 .cbs = {
272 .modify = isis_instance_domain_password_password_modify,
273 },
274 },
275 {
276 .xpath = "/frr-isisd:isis/instance/domain-password/password-type",
277 .cbs = {
278 .modify = isis_instance_domain_password_password_type_modify,
279 },
280 },
281 {
282 .xpath = "/frr-isisd:isis/instance/domain-password/authenticate-snp",
283 .cbs = {
284 .modify = isis_instance_domain_password_authenticate_snp_modify,
285 },
286 },
287 {
288 .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv4",
289 .cbs = {
290 .apply_finish = default_info_origin_ipv4_apply_finish,
291 .cli_show = cli_show_isis_def_origin_ipv4,
292 .create = isis_instance_default_information_originate_ipv4_create,
293 .destroy = isis_instance_default_information_originate_ipv4_destroy,
294 },
295 },
296 {
297 .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv4/always",
298 .cbs = {
299 .modify = isis_instance_default_information_originate_ipv4_always_modify,
300 },
301 },
302 {
303 .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv4/route-map",
304 .cbs = {
305 .destroy = isis_instance_default_information_originate_ipv4_route_map_destroy,
306 .modify = isis_instance_default_information_originate_ipv4_route_map_modify,
307 },
308 },
309 {
310 .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv4/metric",
311 .cbs = {
312 .modify = isis_instance_default_information_originate_ipv4_metric_modify,
313 },
314 },
315 {
316 .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv6",
317 .cbs = {
318 .apply_finish = default_info_origin_ipv6_apply_finish,
319 .cli_show = cli_show_isis_def_origin_ipv6,
320 .create = isis_instance_default_information_originate_ipv6_create,
321 .destroy = isis_instance_default_information_originate_ipv6_destroy,
322 },
323 },
324 {
325 .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv6/always",
326 .cbs = {
327 .modify = isis_instance_default_information_originate_ipv6_always_modify,
328 },
329 },
330 {
331 .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv6/route-map",
332 .cbs = {
333 .destroy = isis_instance_default_information_originate_ipv6_route_map_destroy,
334 .modify = isis_instance_default_information_originate_ipv6_route_map_modify,
335 },
336 },
337 {
338 .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv6/metric",
339 .cbs = {
340 .modify = isis_instance_default_information_originate_ipv6_metric_modify,
341 },
342 },
343 {
344 .xpath = "/frr-isisd:isis/instance/redistribute/ipv4",
345 .cbs = {
346 .apply_finish = redistribute_ipv4_apply_finish,
347 .cli_show = cli_show_isis_redistribute_ipv4,
348 .create = isis_instance_redistribute_ipv4_create,
349 .destroy = isis_instance_redistribute_ipv4_destroy,
350 },
351 },
352 {
353 .xpath = "/frr-isisd:isis/instance/redistribute/ipv4/route-map",
354 .cbs = {
355 .destroy = isis_instance_redistribute_ipv4_route_map_destroy,
356 .modify = isis_instance_redistribute_ipv4_route_map_modify,
357 },
358 },
359 {
360 .xpath = "/frr-isisd:isis/instance/redistribute/ipv4/metric",
361 .cbs = {
362 .modify = isis_instance_redistribute_ipv4_metric_modify,
363 },
364 },
365 {
366 .xpath = "/frr-isisd:isis/instance/redistribute/ipv6",
367 .cbs = {
368 .apply_finish = redistribute_ipv6_apply_finish,
369 .cli_show = cli_show_isis_redistribute_ipv6,
370 .create = isis_instance_redistribute_ipv6_create,
371 .destroy = isis_instance_redistribute_ipv6_destroy,
372 },
373 },
374 {
375 .xpath = "/frr-isisd:isis/instance/redistribute/ipv6/route-map",
376 .cbs = {
377 .destroy = isis_instance_redistribute_ipv6_route_map_destroy,
378 .modify = isis_instance_redistribute_ipv6_route_map_modify,
379 },
380 },
381 {
382 .xpath = "/frr-isisd:isis/instance/redistribute/ipv6/metric",
383 .cbs = {
384 .modify = isis_instance_redistribute_ipv6_metric_modify,
385 },
386 },
387 {
388 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv4-multicast",
389 .cbs = {
390 .cli_show = cli_show_isis_mt_ipv4_multicast,
391 .create = isis_instance_multi_topology_ipv4_multicast_create,
392 .destroy = isis_instance_multi_topology_ipv4_multicast_destroy,
393 },
394 },
395 {
396 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv4-multicast/overload",
397 .cbs = {
398 .modify = isis_instance_multi_topology_ipv4_multicast_overload_modify,
399 },
400 },
401 {
402 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv4-management",
403 .cbs = {
404 .cli_show = cli_show_isis_mt_ipv4_mgmt,
405 .create = isis_instance_multi_topology_ipv4_management_create,
406 .destroy = isis_instance_multi_topology_ipv4_management_destroy,
407 },
408 },
409 {
410 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv4-management/overload",
411 .cbs = {
412 .modify = isis_instance_multi_topology_ipv4_management_overload_modify,
413 },
414 },
415 {
416 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-unicast",
417 .cbs = {
418 .cli_show = cli_show_isis_mt_ipv6_unicast,
419 .create = isis_instance_multi_topology_ipv6_unicast_create,
420 .destroy = isis_instance_multi_topology_ipv6_unicast_destroy,
421 },
422 },
423 {
424 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-unicast/overload",
425 .cbs = {
426 .modify = isis_instance_multi_topology_ipv6_unicast_overload_modify,
427 },
428 },
429 {
430 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-multicast",
431 .cbs = {
432 .cli_show = cli_show_isis_mt_ipv6_multicast,
433 .create = isis_instance_multi_topology_ipv6_multicast_create,
434 .destroy = isis_instance_multi_topology_ipv6_multicast_destroy,
435 },
436 },
437 {
438 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-multicast/overload",
439 .cbs = {
440 .modify = isis_instance_multi_topology_ipv6_multicast_overload_modify,
441 },
442 },
443 {
444 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-management",
445 .cbs = {
446 .cli_show = cli_show_isis_mt_ipv6_mgmt,
447 .create = isis_instance_multi_topology_ipv6_management_create,
448 .destroy = isis_instance_multi_topology_ipv6_management_destroy,
449 },
450 },
451 {
452 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-management/overload",
453 .cbs = {
454 .modify = isis_instance_multi_topology_ipv6_management_overload_modify,
455 },
456 },
457 {
458 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-dstsrc",
459 .cbs = {
460 .cli_show = cli_show_isis_mt_ipv6_dstsrc,
461 .create = isis_instance_multi_topology_ipv6_dstsrc_create,
462 .destroy = isis_instance_multi_topology_ipv6_dstsrc_destroy,
463 },
464 },
465 {
466 .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-dstsrc/overload",
467 .cbs = {
468 .modify = isis_instance_multi_topology_ipv6_dstsrc_overload_modify,
469 },
470 },
471 {
472 .xpath = "/frr-isisd:isis/instance/fast-reroute/level-1/lfa/load-sharing",
473 .cbs = {
474 .cli_show = cli_show_isis_frr_lfa_load_sharing,
475 .modify = isis_instance_fast_reroute_level_1_lfa_load_sharing_modify,
476 }
477 },
478 {
479 .xpath = "/frr-isisd:isis/instance/fast-reroute/level-1/lfa/priority-limit",
480 .cbs = {
481 .cli_show = cli_show_isis_frr_lfa_priority_limit,
482 .modify = isis_instance_fast_reroute_level_1_lfa_priority_limit_modify,
483 .destroy = isis_instance_fast_reroute_level_1_lfa_priority_limit_destroy,
484 }
485 },
486 {
487 .xpath = "/frr-isisd:isis/instance/fast-reroute/level-1/lfa/tiebreaker",
488 .cbs = {
489 .cli_show = cli_show_isis_frr_lfa_tiebreaker,
490 .create = isis_instance_fast_reroute_level_1_lfa_tiebreaker_create,
491 .destroy = isis_instance_fast_reroute_level_1_lfa_tiebreaker_destroy,
492 }
493 },
494 {
495 .xpath = "/frr-isisd:isis/instance/fast-reroute/level-1/lfa/tiebreaker/type",
496 .cbs = {
497 .modify = isis_instance_fast_reroute_level_1_lfa_tiebreaker_type_modify,
498 }
499 },
500 {
501 .xpath = "/frr-isisd:isis/instance/fast-reroute/level-1/remote-lfa/prefix-list",
502 .cbs = {
503 .cli_show = cli_show_isis_frr_remote_lfa_plist,
504 .modify = isis_instance_fast_reroute_level_1_remote_lfa_prefix_list_modify,
505 .destroy = isis_instance_fast_reroute_level_1_remote_lfa_prefix_list_destroy,
506 }
507 },
508 {
509 .xpath = "/frr-isisd:isis/instance/fast-reroute/level-2/lfa/load-sharing",
510 .cbs = {
511 .cli_show = cli_show_isis_frr_lfa_load_sharing,
512 .modify = isis_instance_fast_reroute_level_2_lfa_load_sharing_modify,
513 }
514 },
515 {
516 .xpath = "/frr-isisd:isis/instance/fast-reroute/level-2/lfa/priority-limit",
517 .cbs = {
518 .cli_show = cli_show_isis_frr_lfa_priority_limit,
519 .modify = isis_instance_fast_reroute_level_2_lfa_priority_limit_modify,
520 .destroy = isis_instance_fast_reroute_level_2_lfa_priority_limit_destroy,
521 }
522 },
523 {
524 .xpath = "/frr-isisd:isis/instance/fast-reroute/level-2/lfa/tiebreaker",
525 .cbs = {
526 .cli_show = cli_show_isis_frr_lfa_tiebreaker,
527 .create = isis_instance_fast_reroute_level_2_lfa_tiebreaker_create,
528 .destroy = isis_instance_fast_reroute_level_2_lfa_tiebreaker_destroy,
529 }
530 },
531 {
532 .xpath = "/frr-isisd:isis/instance/fast-reroute/level-2/lfa/tiebreaker/type",
533 .cbs = {
534 .modify = isis_instance_fast_reroute_level_2_lfa_tiebreaker_type_modify,
535 }
536 },
537 {
538 .xpath = "/frr-isisd:isis/instance/fast-reroute/level-2/remote-lfa/prefix-list",
539 .cbs = {
540 .cli_show = cli_show_isis_frr_remote_lfa_plist,
541 .modify = isis_instance_fast_reroute_level_2_remote_lfa_prefix_list_modify,
542 .destroy = isis_instance_fast_reroute_level_2_remote_lfa_prefix_list_destroy,
543 }
544 },
545 {
546 .xpath = "/frr-isisd:isis/instance/log-adjacency-changes",
547 .cbs = {
548 .cli_show = cli_show_isis_log_adjacency,
549 .modify = isis_instance_log_adjacency_changes_modify,
550 },
551 },
552 {
553 .xpath = "/frr-isisd:isis/instance/mpls-te",
554 .cbs = {
555 .cli_show = cli_show_isis_mpls_te,
556 .create = isis_instance_mpls_te_create,
557 .destroy = isis_instance_mpls_te_destroy,
558 },
559 },
560 {
561 .xpath = "/frr-isisd:isis/instance/mpls-te/router-address",
562 .cbs = {
563 .cli_show = cli_show_isis_mpls_te_router_addr,
564 .destroy = isis_instance_mpls_te_router_address_destroy,
565 .modify = isis_instance_mpls_te_router_address_modify,
566 },
567 },
568 {
569 .xpath = "/frr-isisd:isis/instance/segment-routing/enabled",
570 .cbs = {
571 .modify = isis_instance_segment_routing_enabled_modify,
572 .cli_show = cli_show_isis_sr_enabled,
573 },
574 },
575 {
576 .xpath = "/frr-isisd:isis/instance/segment-routing/label-blocks",
577 .cbs = {
578 .pre_validate = isis_instance_segment_routing_label_blocks_pre_validate,
579 .cli_show = cli_show_isis_label_blocks,
580 },
581 },
582 {
583 .xpath = "/frr-isisd:isis/instance/segment-routing/label-blocks/srgb",
584 .cbs = {
585 .apply_finish = isis_instance_segment_routing_srgb_apply_finish,
586 },
587 },
588 {
589 .xpath = "/frr-isisd:isis/instance/segment-routing/label-blocks/srgb/lower-bound",
590 .cbs = {
591 .modify = isis_instance_segment_routing_srgb_lower_bound_modify,
592 },
593 },
594 {
595 .xpath = "/frr-isisd:isis/instance/segment-routing/label-blocks/srgb/upper-bound",
596 .cbs = {
597 .modify = isis_instance_segment_routing_srgb_upper_bound_modify,
598 },
599 },
600 {
601 .xpath = "/frr-isisd:isis/instance/segment-routing/label-blocks/srlb",
602 .cbs = {
603 .apply_finish = isis_instance_segment_routing_srlb_apply_finish,
604 },
605 },
606 {
607 .xpath = "/frr-isisd:isis/instance/segment-routing/label-blocks/srlb/lower-bound",
608 .cbs = {
609 .modify = isis_instance_segment_routing_srlb_lower_bound_modify,
610 },
611 },
612 {
613 .xpath = "/frr-isisd:isis/instance/segment-routing/label-blocks/srlb/upper-bound",
614 .cbs = {
615 .modify = isis_instance_segment_routing_srlb_upper_bound_modify,
616 },
617 },
618 {
619 .xpath = "/frr-isisd:isis/instance/segment-routing/msd/node-msd",
620 .cbs = {
621 .modify = isis_instance_segment_routing_msd_node_msd_modify,
622 .destroy = isis_instance_segment_routing_msd_node_msd_destroy,
623 .cli_show = cli_show_isis_node_msd,
624 },
625 },
626 {
627 .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid",
628 .cbs = {
629 .create = isis_instance_segment_routing_prefix_sid_map_prefix_sid_create,
630 .destroy = isis_instance_segment_routing_prefix_sid_map_prefix_sid_destroy,
631 .pre_validate = isis_instance_segment_routing_prefix_sid_map_prefix_sid_pre_validate,
632 .apply_finish = isis_instance_segment_routing_prefix_sid_map_prefix_sid_apply_finish,
633 .cli_show = cli_show_isis_prefix_sid,
634 },
635 },
636 {
637 .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid/sid-value-type",
638 .cbs = {
639 .modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_sid_value_type_modify,
640 },
641 },
642 {
643 .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid/sid-value",
644 .cbs = {
645 .modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_sid_value_modify,
646 },
647 },
648 {
649 .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid/last-hop-behavior",
650 .cbs = {
651 .modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_last_hop_behavior_modify,
652 },
653 },
654 {
655 .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid/n-flag-clear",
656 .cbs = {
657 .modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_n_flag_clear_modify,
658 }
659 },
660 {
661 .xpath = "/frr-isisd:isis/instance/mpls/ldp-sync",
662 .cbs = {
663 .cli_show = cli_show_isis_mpls_ldp_sync,
664 .create = isis_instance_mpls_ldp_sync_create,
665 .destroy = isis_instance_mpls_ldp_sync_destroy,
666 },
667 },
668 {
669 .xpath = "/frr-isisd:isis/instance/mpls/ldp-sync/holddown",
670 .cbs = {
671 .cli_show = cli_show_isis_mpls_ldp_sync_holddown,
672 .modify = isis_instance_mpls_ldp_sync_holddown_modify,
673 },
674 },
675 {
676 .xpath = "/frr-interface:lib/interface/frr-isisd:isis",
677 .cbs = {
678 .create = lib_interface_isis_create,
679 .destroy = lib_interface_isis_destroy,
680 },
681 },
682 {
683 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/area-tag",
684 .cbs = {
685 .modify = lib_interface_isis_area_tag_modify,
686 },
687 },
688 {
689 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/circuit-type",
690 .cbs = {
691 .cli_show = cli_show_ip_isis_circ_type,
692 .modify = lib_interface_isis_circuit_type_modify,
693 },
694 },
695 {
696 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/ipv4-routing",
697 .cbs = {
698 .cli_show = cli_show_ip_isis_ipv4,
699 .modify = lib_interface_isis_ipv4_routing_modify,
700 },
701 },
702 {
703 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/ipv6-routing",
704 .cbs = {
705 .cli_show = cli_show_ip_isis_ipv6,
706 .modify = lib_interface_isis_ipv6_routing_modify,
707 },
708 },
709 {
710 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/bfd-monitoring",
711 .cbs = {
712 .apply_finish = lib_interface_isis_bfd_monitoring_apply_finish,
713 .cli_show = cli_show_ip_isis_bfd_monitoring,
714 }
715 },
716 {
717 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/bfd-monitoring/enabled",
718 .cbs = {
719 .modify = lib_interface_isis_bfd_monitoring_enabled_modify,
720 }
721 },
722 {
723 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/bfd-monitoring/profile",
724 .cbs = {
725 .modify = lib_interface_isis_bfd_monitoring_profile_modify,
726 .destroy = lib_interface_isis_bfd_monitoring_profile_destroy,
727 }
728 },
729 {
730 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/csnp-interval",
731 .cbs = {
732 .cli_show = cli_show_ip_isis_csnp_interval,
733 },
734 },
735 {
736 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/csnp-interval/level-1",
737 .cbs = {
738 .modify = lib_interface_isis_csnp_interval_level_1_modify,
739 },
740 },
741 {
742 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/csnp-interval/level-2",
743 .cbs = {
744 .modify = lib_interface_isis_csnp_interval_level_2_modify,
745 },
746 },
747 {
748 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/psnp-interval",
749 .cbs = {
750 .cli_show = cli_show_ip_isis_psnp_interval,
751 },
752 },
753 {
754 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/psnp-interval/level-1",
755 .cbs = {
756 .modify = lib_interface_isis_psnp_interval_level_1_modify,
757 },
758 },
759 {
760 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/psnp-interval/level-2",
761 .cbs = {
762 .modify = lib_interface_isis_psnp_interval_level_2_modify,
763 },
764 },
765 {
766 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/padding",
767 .cbs = {
768 .cli_show = cli_show_ip_isis_hello_padding,
769 .modify = lib_interface_isis_hello_padding_modify,
770 },
771 },
772 {
773 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/interval",
774 .cbs = {
775 .cli_show = cli_show_ip_isis_hello_interval,
776 },
777 },
778 {
779 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/interval/level-1",
780 .cbs = {
781 .modify = lib_interface_isis_hello_interval_level_1_modify,
782 },
783 },
784 {
785 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/interval/level-2",
786 .cbs = {
787 .modify = lib_interface_isis_hello_interval_level_2_modify,
788 },
789 },
790 {
791 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/multiplier",
792 .cbs = {
793 .cli_show = cli_show_ip_isis_hello_multi,
794 },
795 },
796 {
797 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/multiplier/level-1",
798 .cbs = {
799 .modify = lib_interface_isis_hello_multiplier_level_1_modify,
800 },
801 },
802 {
803 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/multiplier/level-2",
804 .cbs = {
805 .modify = lib_interface_isis_hello_multiplier_level_2_modify,
806 },
807 },
808 {
809 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/metric",
810 .cbs = {
811 .cli_show = cli_show_ip_isis_metric,
812 },
813 },
814 {
815 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/metric/level-1",
816 .cbs = {
817 .modify = lib_interface_isis_metric_level_1_modify,
818 },
819 },
820 {
821 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/metric/level-2",
822 .cbs = {
823 .modify = lib_interface_isis_metric_level_2_modify,
824 },
825 },
826 {
827 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/priority",
828 .cbs = {
829 .cli_show = cli_show_ip_isis_priority,
830 },
831 },
832 {
833 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/priority/level-1",
834 .cbs = {
835 .modify = lib_interface_isis_priority_level_1_modify,
836 },
837 },
838 {
839 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/priority/level-2",
840 .cbs = {
841 .modify = lib_interface_isis_priority_level_2_modify,
842 },
843 },
844 {
845 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/network-type",
846 .cbs = {
847 .cli_show = cli_show_ip_isis_network_type,
848 .modify = lib_interface_isis_network_type_modify,
849 },
850 },
851 {
852 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/passive",
853 .cbs = {
854 .cli_show = cli_show_ip_isis_passive,
855 .modify = lib_interface_isis_passive_modify,
856 },
857 },
858 {
859 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/password",
860 .cbs = {
861 .cli_show = cli_show_ip_isis_password,
862 .create = lib_interface_isis_password_create,
863 .destroy = lib_interface_isis_password_destroy,
864 },
865 },
866 {
867 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/password/password",
868 .cbs = {
869 .modify = lib_interface_isis_password_password_modify,
870 },
871 },
872 {
873 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/password/password-type",
874 .cbs = {
875 .modify = lib_interface_isis_password_password_type_modify,
876 },
877 },
878 {
879 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/disable-three-way-handshake",
880 .cbs = {
881 .cli_show = cli_show_ip_isis_threeway_shake,
882 .modify = lib_interface_isis_disable_three_way_handshake_modify,
883 },
884 },
885 {
886 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv4-unicast",
887 .cbs = {
888 .cli_show = cli_show_ip_isis_mt_ipv4_unicast,
889 .modify = lib_interface_isis_multi_topology_ipv4_unicast_modify,
890 },
891 },
892 {
893 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv4-multicast",
894 .cbs = {
895 .cli_show = cli_show_ip_isis_mt_ipv4_multicast,
896 .modify = lib_interface_isis_multi_topology_ipv4_multicast_modify,
897 },
898 },
899 {
900 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv4-management",
901 .cbs = {
902 .cli_show = cli_show_ip_isis_mt_ipv4_mgmt,
903 .modify = lib_interface_isis_multi_topology_ipv4_management_modify,
904 },
905 },
906 {
907 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv6-unicast",
908 .cbs = {
909 .cli_show = cli_show_ip_isis_mt_ipv6_unicast,
910 .modify = lib_interface_isis_multi_topology_ipv6_unicast_modify,
911 },
912 },
913 {
914 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv6-multicast",
915 .cbs = {
916 .cli_show = cli_show_ip_isis_mt_ipv6_multicast,
917 .modify = lib_interface_isis_multi_topology_ipv6_multicast_modify,
918 },
919 },
920 {
921 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv6-management",
922 .cbs = {
923 .cli_show = cli_show_ip_isis_mt_ipv6_mgmt,
924 .modify = lib_interface_isis_multi_topology_ipv6_management_modify,
925 },
926 },
927 {
928 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv6-dstsrc",
929 .cbs = {
930 .cli_show = cli_show_ip_isis_mt_ipv6_dstsrc,
931 .modify = lib_interface_isis_multi_topology_ipv6_dstsrc_modify,
932 },
933 },
934 {
935 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute",
936 .cbs = {
937 .cli_show = cli_show_ip_isis_frr,
938 }
939 },
940 {
941 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/lfa/enable",
942 .cbs = {
943 .modify = lib_interface_isis_fast_reroute_level_1_lfa_enable_modify,
944 }
945 },
946 {
947 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/lfa/exclude-interface",
948 .cbs = {
949 .cli_show = cli_show_frr_lfa_exclude_interface,
950 .create = lib_interface_isis_fast_reroute_level_1_lfa_exclude_interface_create,
951 .destroy = lib_interface_isis_fast_reroute_level_1_lfa_exclude_interface_destroy,
952 }
953 },
954 {
955 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/remote-lfa/enable",
956 .cbs = {
957 .modify = lib_interface_isis_fast_reroute_level_1_remote_lfa_enable_modify,
958 }
959 },
960 {
961 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/remote-lfa/maximum-metric",
962 .cbs = {
963 .cli_show = cli_show_frr_remote_lfa_max_metric,
964 .modify = lib_interface_isis_fast_reroute_level_1_remote_lfa_maximum_metric_modify,
965 .destroy = lib_interface_isis_fast_reroute_level_1_remote_lfa_maximum_metric_destroy,
966 }
967 },
968 {
969 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/ti-lfa/enable",
970 .cbs = {
971 .modify = lib_interface_isis_fast_reroute_level_1_ti_lfa_enable_modify,
972 }
973 },
974 {
975 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/ti-lfa/node-protection",
976 .cbs = {
977 .modify = lib_interface_isis_fast_reroute_level_1_ti_lfa_node_protection_modify,
978 }
979 },
980 {
981 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/ti-lfa/link-fallback",
982 .cbs = {
983 .modify = lib_interface_isis_fast_reroute_level_1_ti_lfa_link_fallback_modify,
984 }
985 },
986 {
987 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/lfa/enable",
988 .cbs = {
989 .modify = lib_interface_isis_fast_reroute_level_2_lfa_enable_modify,
990 }
991 },
992 {
993 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/lfa/exclude-interface",
994 .cbs = {
995 .cli_show = cli_show_frr_lfa_exclude_interface,
996 .create = lib_interface_isis_fast_reroute_level_2_lfa_exclude_interface_create,
997 .destroy = lib_interface_isis_fast_reroute_level_2_lfa_exclude_interface_destroy,
998 }
999 },
1000 {
1001 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/remote-lfa/enable",
1002 .cbs = {
1003 .modify = lib_interface_isis_fast_reroute_level_2_remote_lfa_enable_modify,
1004 }
1005 },
1006 {
1007 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/remote-lfa/maximum-metric",
1008 .cbs = {
1009 .cli_show = cli_show_frr_remote_lfa_max_metric,
1010 .modify = lib_interface_isis_fast_reroute_level_2_remote_lfa_maximum_metric_modify,
1011 .destroy = lib_interface_isis_fast_reroute_level_2_remote_lfa_maximum_metric_destroy,
1012 }
1013 },
1014 {
1015 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/ti-lfa/enable",
1016 .cbs = {
1017 .modify = lib_interface_isis_fast_reroute_level_2_ti_lfa_enable_modify,
1018 }
1019 },
1020 {
1021 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/ti-lfa/node-protection",
1022 .cbs = {
1023 .modify = lib_interface_isis_fast_reroute_level_2_ti_lfa_node_protection_modify,
1024 }
1025 },
1026 {
1027 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/ti-lfa/link-fallback",
1028 .cbs = {
1029 .modify = lib_interface_isis_fast_reroute_level_2_ti_lfa_link_fallback_modify,
1030 }
1031 },
1032 {
1033 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis",
1034 .cbs = {
1035 .get_elem = lib_interface_state_isis_get_elem,
1036 }
1037 },
1038 {
1039 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency",
1040 .cbs = {
1041 .get_next = lib_interface_state_isis_adjacencies_adjacency_get_next,
1042 }
1043 },
1044 {
1045 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/neighbor-sys-type",
1046 .cbs = {
1047 .get_elem = lib_interface_state_isis_adjacencies_adjacency_neighbor_sys_type_get_elem,
1048 }
1049 },
1050 {
1051 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/neighbor-sysid",
1052 .cbs = {
1053 .get_elem = lib_interface_state_isis_adjacencies_adjacency_neighbor_sysid_get_elem,
1054 }
1055 },
1056 {
1057 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/neighbor-extended-circuit-id",
1058 .cbs = {
1059 .get_elem = lib_interface_state_isis_adjacencies_adjacency_neighbor_extended_circuit_id_get_elem,
1060 }
1061 },
1062 {
1063 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/neighbor-snpa",
1064 .cbs = {
1065 .get_elem = lib_interface_state_isis_adjacencies_adjacency_neighbor_snpa_get_elem,
1066 }
1067 },
1068 {
1069 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/hold-timer",
1070 .cbs = {
1071 .get_elem = lib_interface_state_isis_adjacencies_adjacency_hold_timer_get_elem,
1072 }
1073 },
1074 {
1075 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/neighbor-priority",
1076 .cbs = {
1077 .get_elem = lib_interface_state_isis_adjacencies_adjacency_neighbor_priority_get_elem,
1078 }
1079 },
1080 {
1081 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/state",
1082 .cbs = {
1083 .get_elem = lib_interface_state_isis_adjacencies_adjacency_state_get_elem,
1084 }
1085 },
1086 {
1087 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/adjacency-changes",
1088 .cbs = {
1089 .get_elem = lib_interface_state_isis_event_counters_adjacency_changes_get_elem,
1090 }
1091 },
1092 {
1093 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/adjacency-number",
1094 .cbs = {
1095 .get_elem = lib_interface_state_isis_event_counters_adjacency_number_get_elem,
1096 }
1097 },
1098 {
1099 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/init-fails",
1100 .cbs = {
1101 .get_elem = lib_interface_state_isis_event_counters_init_fails_get_elem,
1102 }
1103 },
1104 {
1105 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/adjacency-rejects",
1106 .cbs = {
1107 .get_elem = lib_interface_state_isis_event_counters_adjacency_rejects_get_elem,
1108 }
1109 },
1110 {
1111 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/id-len-mismatch",
1112 .cbs = {
1113 .get_elem = lib_interface_state_isis_event_counters_id_len_mismatch_get_elem,
1114 }
1115 },
1116 {
1117 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/max-area-addresses-mismatch",
1118 .cbs = {
1119 .get_elem = lib_interface_state_isis_event_counters_max_area_addresses_mismatch_get_elem,
1120 }
1121 },
1122 {
1123 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/authentication-type-fails",
1124 .cbs = {
1125 .get_elem = lib_interface_state_isis_event_counters_authentication_type_fails_get_elem,
1126 }
1127 },
1128 {
1129 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/authentication-fails",
1130 .cbs = {
1131 .get_elem = lib_interface_state_isis_event_counters_authentication_fails_get_elem,
1132 }
1133 },
1134 {
1135 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/mpls/ldp-sync",
1136 .cbs = {
1137 .cli_show = cli_show_isis_mpls_if_ldp_sync,
1138 .modify = lib_interface_isis_mpls_ldp_sync_modify,
1139 }
1140 },
1141 {
1142 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/mpls/holddown",
1143 .cbs = {
1144 .cli_show = cli_show_isis_mpls_if_ldp_sync_holddown,
1145 .modify = lib_interface_isis_mpls_holddown_modify,
1146 .destroy = lib_interface_isis_mpls_holddown_destroy,
1147 }
1148 },
1149 {
1150 .xpath = NULL,
1151 },
1152 }
1153 };