]> git.proxmox.com Git - mirror_frr.git/blob - isisd/isis_nb.c
Merge pull request #8023 from volta-networks/feat_add_agentx_enabled_hook
[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/srgb",
577 .cbs = {
578 .apply_finish = isis_instance_segment_routing_srgb_apply_finish,
579 .pre_validate = isis_instance_segment_routing_srgb_pre_validate,
580 .cli_show = cli_show_isis_srgb,
581 },
582 },
583 {
584 .xpath = "/frr-isisd:isis/instance/segment-routing/srgb/lower-bound",
585 .cbs = {
586 .modify = isis_instance_segment_routing_srgb_lower_bound_modify,
587 },
588 },
589 {
590 .xpath = "/frr-isisd:isis/instance/segment-routing/srgb/upper-bound",
591 .cbs = {
592 .modify = isis_instance_segment_routing_srgb_upper_bound_modify,
593 },
594 },
595 {
596 .xpath = "/frr-isisd:isis/instance/segment-routing/srlb",
597 .cbs = {
598 .apply_finish = isis_instance_segment_routing_srlb_apply_finish,
599 .pre_validate = isis_instance_segment_routing_srlb_pre_validate,
600 .cli_show = cli_show_isis_srlb,
601 },
602 },
603 {
604 .xpath = "/frr-isisd:isis/instance/segment-routing/srlb/lower-bound",
605 .cbs = {
606 .modify = isis_instance_segment_routing_srlb_lower_bound_modify,
607 },
608 },
609 {
610 .xpath = "/frr-isisd:isis/instance/segment-routing/srlb/upper-bound",
611 .cbs = {
612 .modify = isis_instance_segment_routing_srlb_upper_bound_modify,
613 },
614 },
615 {
616 .xpath = "/frr-isisd:isis/instance/segment-routing/msd/node-msd",
617 .cbs = {
618 .modify = isis_instance_segment_routing_msd_node_msd_modify,
619 .destroy = isis_instance_segment_routing_msd_node_msd_destroy,
620 .cli_show = cli_show_isis_node_msd,
621 },
622 },
623 {
624 .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid",
625 .cbs = {
626 .create = isis_instance_segment_routing_prefix_sid_map_prefix_sid_create,
627 .destroy = isis_instance_segment_routing_prefix_sid_map_prefix_sid_destroy,
628 .pre_validate = isis_instance_segment_routing_prefix_sid_map_prefix_sid_pre_validate,
629 .apply_finish = isis_instance_segment_routing_prefix_sid_map_prefix_sid_apply_finish,
630 .cli_show = cli_show_isis_prefix_sid,
631 },
632 },
633 {
634 .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid/sid-value-type",
635 .cbs = {
636 .modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_sid_value_type_modify,
637 },
638 },
639 {
640 .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid/sid-value",
641 .cbs = {
642 .modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_sid_value_modify,
643 },
644 },
645 {
646 .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid/last-hop-behavior",
647 .cbs = {
648 .modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_last_hop_behavior_modify,
649 },
650 },
651 {
652 .xpath = "/frr-isisd:isis/instance/segment-routing/prefix-sid-map/prefix-sid/n-flag-clear",
653 .cbs = {
654 .modify = isis_instance_segment_routing_prefix_sid_map_prefix_sid_n_flag_clear_modify,
655 }
656 },
657 {
658 .xpath = "/frr-isisd:isis/instance/mpls/ldp-sync",
659 .cbs = {
660 .cli_show = cli_show_isis_mpls_ldp_sync,
661 .create = isis_instance_mpls_ldp_sync_create,
662 .destroy = isis_instance_mpls_ldp_sync_destroy,
663 },
664 },
665 {
666 .xpath = "/frr-isisd:isis/instance/mpls/ldp-sync/holddown",
667 .cbs = {
668 .cli_show = cli_show_isis_mpls_ldp_sync_holddown,
669 .modify = isis_instance_mpls_ldp_sync_holddown_modify,
670 },
671 },
672 {
673 .xpath = "/frr-interface:lib/interface/frr-isisd:isis",
674 .cbs = {
675 .create = lib_interface_isis_create,
676 .destroy = lib_interface_isis_destroy,
677 },
678 },
679 {
680 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/area-tag",
681 .cbs = {
682 .modify = lib_interface_isis_area_tag_modify,
683 },
684 },
685 {
686 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/vrf",
687 .cbs = {
688 .modify = lib_interface_isis_vrf_modify,
689 },
690 },
691
692 {
693 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/circuit-type",
694 .cbs = {
695 .cli_show = cli_show_ip_isis_circ_type,
696 .modify = lib_interface_isis_circuit_type_modify,
697 },
698 },
699 {
700 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/ipv4-routing",
701 .cbs = {
702 .cli_show = cli_show_ip_isis_ipv4,
703 .modify = lib_interface_isis_ipv4_routing_modify,
704 },
705 },
706 {
707 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/ipv6-routing",
708 .cbs = {
709 .cli_show = cli_show_ip_isis_ipv6,
710 .modify = lib_interface_isis_ipv6_routing_modify,
711 },
712 },
713 {
714 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/bfd-monitoring",
715 .cbs = {
716 .apply_finish = lib_interface_isis_bfd_monitoring_apply_finish,
717 .cli_show = cli_show_ip_isis_bfd_monitoring,
718 }
719 },
720 {
721 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/bfd-monitoring/enabled",
722 .cbs = {
723 .modify = lib_interface_isis_bfd_monitoring_enabled_modify,
724 }
725 },
726 {
727 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/bfd-monitoring/profile",
728 .cbs = {
729 .modify = lib_interface_isis_bfd_monitoring_profile_modify,
730 .destroy = lib_interface_isis_bfd_monitoring_profile_destroy,
731 }
732 },
733 {
734 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/csnp-interval",
735 .cbs = {
736 .cli_show = cli_show_ip_isis_csnp_interval,
737 },
738 },
739 {
740 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/csnp-interval/level-1",
741 .cbs = {
742 .modify = lib_interface_isis_csnp_interval_level_1_modify,
743 },
744 },
745 {
746 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/csnp-interval/level-2",
747 .cbs = {
748 .modify = lib_interface_isis_csnp_interval_level_2_modify,
749 },
750 },
751 {
752 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/psnp-interval",
753 .cbs = {
754 .cli_show = cli_show_ip_isis_psnp_interval,
755 },
756 },
757 {
758 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/psnp-interval/level-1",
759 .cbs = {
760 .modify = lib_interface_isis_psnp_interval_level_1_modify,
761 },
762 },
763 {
764 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/psnp-interval/level-2",
765 .cbs = {
766 .modify = lib_interface_isis_psnp_interval_level_2_modify,
767 },
768 },
769 {
770 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/padding",
771 .cbs = {
772 .cli_show = cli_show_ip_isis_hello_padding,
773 .modify = lib_interface_isis_hello_padding_modify,
774 },
775 },
776 {
777 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/interval",
778 .cbs = {
779 .cli_show = cli_show_ip_isis_hello_interval,
780 },
781 },
782 {
783 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/interval/level-1",
784 .cbs = {
785 .modify = lib_interface_isis_hello_interval_level_1_modify,
786 },
787 },
788 {
789 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/interval/level-2",
790 .cbs = {
791 .modify = lib_interface_isis_hello_interval_level_2_modify,
792 },
793 },
794 {
795 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/multiplier",
796 .cbs = {
797 .cli_show = cli_show_ip_isis_hello_multi,
798 },
799 },
800 {
801 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/multiplier/level-1",
802 .cbs = {
803 .modify = lib_interface_isis_hello_multiplier_level_1_modify,
804 },
805 },
806 {
807 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/hello/multiplier/level-2",
808 .cbs = {
809 .modify = lib_interface_isis_hello_multiplier_level_2_modify,
810 },
811 },
812 {
813 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/metric",
814 .cbs = {
815 .cli_show = cli_show_ip_isis_metric,
816 },
817 },
818 {
819 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/metric/level-1",
820 .cbs = {
821 .modify = lib_interface_isis_metric_level_1_modify,
822 },
823 },
824 {
825 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/metric/level-2",
826 .cbs = {
827 .modify = lib_interface_isis_metric_level_2_modify,
828 },
829 },
830 {
831 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/priority",
832 .cbs = {
833 .cli_show = cli_show_ip_isis_priority,
834 },
835 },
836 {
837 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/priority/level-1",
838 .cbs = {
839 .modify = lib_interface_isis_priority_level_1_modify,
840 },
841 },
842 {
843 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/priority/level-2",
844 .cbs = {
845 .modify = lib_interface_isis_priority_level_2_modify,
846 },
847 },
848 {
849 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/network-type",
850 .cbs = {
851 .cli_show = cli_show_ip_isis_network_type,
852 .modify = lib_interface_isis_network_type_modify,
853 },
854 },
855 {
856 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/passive",
857 .cbs = {
858 .cli_show = cli_show_ip_isis_passive,
859 .modify = lib_interface_isis_passive_modify,
860 },
861 },
862 {
863 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/password",
864 .cbs = {
865 .cli_show = cli_show_ip_isis_password,
866 .create = lib_interface_isis_password_create,
867 .destroy = lib_interface_isis_password_destroy,
868 },
869 },
870 {
871 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/password/password",
872 .cbs = {
873 .modify = lib_interface_isis_password_password_modify,
874 },
875 },
876 {
877 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/password/password-type",
878 .cbs = {
879 .modify = lib_interface_isis_password_password_type_modify,
880 },
881 },
882 {
883 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/disable-three-way-handshake",
884 .cbs = {
885 .cli_show = cli_show_ip_isis_threeway_shake,
886 .modify = lib_interface_isis_disable_three_way_handshake_modify,
887 },
888 },
889 {
890 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv4-unicast",
891 .cbs = {
892 .cli_show = cli_show_ip_isis_mt_ipv4_unicast,
893 .modify = lib_interface_isis_multi_topology_ipv4_unicast_modify,
894 },
895 },
896 {
897 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv4-multicast",
898 .cbs = {
899 .cli_show = cli_show_ip_isis_mt_ipv4_multicast,
900 .modify = lib_interface_isis_multi_topology_ipv4_multicast_modify,
901 },
902 },
903 {
904 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv4-management",
905 .cbs = {
906 .cli_show = cli_show_ip_isis_mt_ipv4_mgmt,
907 .modify = lib_interface_isis_multi_topology_ipv4_management_modify,
908 },
909 },
910 {
911 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv6-unicast",
912 .cbs = {
913 .cli_show = cli_show_ip_isis_mt_ipv6_unicast,
914 .modify = lib_interface_isis_multi_topology_ipv6_unicast_modify,
915 },
916 },
917 {
918 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv6-multicast",
919 .cbs = {
920 .cli_show = cli_show_ip_isis_mt_ipv6_multicast,
921 .modify = lib_interface_isis_multi_topology_ipv6_multicast_modify,
922 },
923 },
924 {
925 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv6-management",
926 .cbs = {
927 .cli_show = cli_show_ip_isis_mt_ipv6_mgmt,
928 .modify = lib_interface_isis_multi_topology_ipv6_management_modify,
929 },
930 },
931 {
932 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/multi-topology/ipv6-dstsrc",
933 .cbs = {
934 .cli_show = cli_show_ip_isis_mt_ipv6_dstsrc,
935 .modify = lib_interface_isis_multi_topology_ipv6_dstsrc_modify,
936 },
937 },
938 {
939 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute",
940 .cbs = {
941 .cli_show = cli_show_ip_isis_frr,
942 }
943 },
944 {
945 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/lfa/enable",
946 .cbs = {
947 .modify = lib_interface_isis_fast_reroute_level_1_lfa_enable_modify,
948 }
949 },
950 {
951 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/lfa/exclude-interface",
952 .cbs = {
953 .cli_show = cli_show_frr_lfa_exclude_interface,
954 .create = lib_interface_isis_fast_reroute_level_1_lfa_exclude_interface_create,
955 .destroy = lib_interface_isis_fast_reroute_level_1_lfa_exclude_interface_destroy,
956 }
957 },
958 {
959 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/remote-lfa/enable",
960 .cbs = {
961 .modify = lib_interface_isis_fast_reroute_level_1_remote_lfa_enable_modify,
962 }
963 },
964 {
965 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/remote-lfa/maximum-metric",
966 .cbs = {
967 .cli_show = cli_show_frr_remote_lfa_max_metric,
968 .modify = lib_interface_isis_fast_reroute_level_1_remote_lfa_maximum_metric_modify,
969 .destroy = lib_interface_isis_fast_reroute_level_1_remote_lfa_maximum_metric_destroy,
970 }
971 },
972 {
973 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/ti-lfa/enable",
974 .cbs = {
975 .modify = lib_interface_isis_fast_reroute_level_1_ti_lfa_enable_modify,
976 }
977 },
978 {
979 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-1/ti-lfa/node-protection",
980 .cbs = {
981 .modify = lib_interface_isis_fast_reroute_level_1_ti_lfa_node_protection_modify,
982 }
983 },
984 {
985 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/lfa/enable",
986 .cbs = {
987 .modify = lib_interface_isis_fast_reroute_level_2_lfa_enable_modify,
988 }
989 },
990 {
991 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/lfa/exclude-interface",
992 .cbs = {
993 .cli_show = cli_show_frr_lfa_exclude_interface,
994 .create = lib_interface_isis_fast_reroute_level_2_lfa_exclude_interface_create,
995 .destroy = lib_interface_isis_fast_reroute_level_2_lfa_exclude_interface_destroy,
996 }
997 },
998 {
999 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/remote-lfa/enable",
1000 .cbs = {
1001 .modify = lib_interface_isis_fast_reroute_level_2_remote_lfa_enable_modify,
1002 }
1003 },
1004 {
1005 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/remote-lfa/maximum-metric",
1006 .cbs = {
1007 .cli_show = cli_show_frr_remote_lfa_max_metric,
1008 .modify = lib_interface_isis_fast_reroute_level_2_remote_lfa_maximum_metric_modify,
1009 .destroy = lib_interface_isis_fast_reroute_level_2_remote_lfa_maximum_metric_destroy,
1010 }
1011 },
1012 {
1013 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/ti-lfa/enable",
1014 .cbs = {
1015 .modify = lib_interface_isis_fast_reroute_level_2_ti_lfa_enable_modify,
1016 }
1017 },
1018 {
1019 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/fast-reroute/level-2/ti-lfa/node-protection",
1020 .cbs = {
1021 .modify = lib_interface_isis_fast_reroute_level_2_ti_lfa_node_protection_modify,
1022 }
1023 },
1024 {
1025 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis",
1026 .cbs = {
1027 .get_elem = lib_interface_state_isis_get_elem,
1028 }
1029 },
1030 {
1031 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency",
1032 .cbs = {
1033 .get_next = lib_interface_state_isis_adjacencies_adjacency_get_next,
1034 }
1035 },
1036 {
1037 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/neighbor-sys-type",
1038 .cbs = {
1039 .get_elem = lib_interface_state_isis_adjacencies_adjacency_neighbor_sys_type_get_elem,
1040 }
1041 },
1042 {
1043 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/neighbor-sysid",
1044 .cbs = {
1045 .get_elem = lib_interface_state_isis_adjacencies_adjacency_neighbor_sysid_get_elem,
1046 }
1047 },
1048 {
1049 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/neighbor-extended-circuit-id",
1050 .cbs = {
1051 .get_elem = lib_interface_state_isis_adjacencies_adjacency_neighbor_extended_circuit_id_get_elem,
1052 }
1053 },
1054 {
1055 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/neighbor-snpa",
1056 .cbs = {
1057 .get_elem = lib_interface_state_isis_adjacencies_adjacency_neighbor_snpa_get_elem,
1058 }
1059 },
1060 {
1061 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/hold-timer",
1062 .cbs = {
1063 .get_elem = lib_interface_state_isis_adjacencies_adjacency_hold_timer_get_elem,
1064 }
1065 },
1066 {
1067 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/neighbor-priority",
1068 .cbs = {
1069 .get_elem = lib_interface_state_isis_adjacencies_adjacency_neighbor_priority_get_elem,
1070 }
1071 },
1072 {
1073 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/adjacencies/adjacency/state",
1074 .cbs = {
1075 .get_elem = lib_interface_state_isis_adjacencies_adjacency_state_get_elem,
1076 }
1077 },
1078 {
1079 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/adjacency-changes",
1080 .cbs = {
1081 .get_elem = lib_interface_state_isis_event_counters_adjacency_changes_get_elem,
1082 }
1083 },
1084 {
1085 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/adjacency-number",
1086 .cbs = {
1087 .get_elem = lib_interface_state_isis_event_counters_adjacency_number_get_elem,
1088 }
1089 },
1090 {
1091 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/init-fails",
1092 .cbs = {
1093 .get_elem = lib_interface_state_isis_event_counters_init_fails_get_elem,
1094 }
1095 },
1096 {
1097 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/adjacency-rejects",
1098 .cbs = {
1099 .get_elem = lib_interface_state_isis_event_counters_adjacency_rejects_get_elem,
1100 }
1101 },
1102 {
1103 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/id-len-mismatch",
1104 .cbs = {
1105 .get_elem = lib_interface_state_isis_event_counters_id_len_mismatch_get_elem,
1106 }
1107 },
1108 {
1109 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/max-area-addresses-mismatch",
1110 .cbs = {
1111 .get_elem = lib_interface_state_isis_event_counters_max_area_addresses_mismatch_get_elem,
1112 }
1113 },
1114 {
1115 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/authentication-type-fails",
1116 .cbs = {
1117 .get_elem = lib_interface_state_isis_event_counters_authentication_type_fails_get_elem,
1118 }
1119 },
1120 {
1121 .xpath = "/frr-interface:lib/interface/state/frr-isisd:isis/event-counters/authentication-fails",
1122 .cbs = {
1123 .get_elem = lib_interface_state_isis_event_counters_authentication_fails_get_elem,
1124 }
1125 },
1126 {
1127 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/mpls/ldp-sync",
1128 .cbs = {
1129 .cli_show = cli_show_isis_mpls_if_ldp_sync,
1130 .modify = lib_interface_isis_mpls_ldp_sync_modify,
1131 }
1132 },
1133 {
1134 .xpath = "/frr-interface:lib/interface/frr-isisd:isis/mpls/holddown",
1135 .cbs = {
1136 .cli_show = cli_show_isis_mpls_if_ldp_sync_holddown,
1137 .modify = lib_interface_isis_mpls_holddown_modify,
1138 .destroy = lib_interface_isis_mpls_holddown_destroy,
1139 }
1140 },
1141 {
1142 .xpath = NULL,
1143 },
1144 }
1145 };