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