]> git.proxmox.com Git - mirror_frr.git/blob - isisd/isis_nb.h
Merge pull request #13455 from sri-mohan1/srib-ldpd
[mirror_frr.git] / isisd / isis_nb.h
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3 * Copyright (C) 2018 Volta Networks
4 * Emanuele Di Pascale
5 */
6
7 #ifndef ISISD_ISIS_NB_H_
8 #define ISISD_ISIS_NB_H_
9
10 extern const struct frr_yang_module_info frr_isisd_info;
11
12 /* Forward declaration(s). */
13 struct isis_area;
14 struct isis_circuit;
15 struct isis_adjacency;
16
17 /* Mandatory callbacks. */
18 int isis_instance_create(struct nb_cb_create_args *args);
19 int isis_instance_destroy(struct nb_cb_destroy_args *args);
20 int isis_instance_is_type_modify(struct nb_cb_modify_args *args);
21 int isis_instance_area_address_create(struct nb_cb_create_args *args);
22 int isis_instance_area_address_destroy(struct nb_cb_destroy_args *args);
23 int isis_instance_dynamic_hostname_modify(struct nb_cb_modify_args *args);
24 int isis_instance_attached_send_modify(struct nb_cb_modify_args *args);
25 int isis_instance_attached_receive_modify(struct nb_cb_modify_args *args);
26 int isis_instance_attached_modify(struct nb_cb_modify_args *args);
27 int isis_instance_overload_enabled_modify(struct nb_cb_modify_args *args);
28 int isis_instance_overload_on_startup_modify(struct nb_cb_modify_args *args);
29 int isis_instance_advertise_high_metrics_modify(struct nb_cb_modify_args *args);
30 int isis_instance_metric_style_modify(struct nb_cb_modify_args *args);
31 int isis_instance_purge_originator_modify(struct nb_cb_modify_args *args);
32 int isis_instance_admin_group_send_zero_modify(struct nb_cb_modify_args *args);
33 int isis_instance_asla_legacy_flag_modify(struct nb_cb_modify_args *args);
34 int isis_instance_lsp_mtu_modify(struct nb_cb_modify_args *args);
35 int isis_instance_advertise_passive_only_modify(struct nb_cb_modify_args *args);
36 int isis_instance_lsp_refresh_interval_level_1_modify(
37 struct nb_cb_modify_args *args);
38 int isis_instance_lsp_refresh_interval_level_2_modify(
39 struct nb_cb_modify_args *args);
40 int isis_instance_lsp_maximum_lifetime_level_1_modify(
41 struct nb_cb_modify_args *args);
42 int isis_instance_lsp_maximum_lifetime_level_2_modify(
43 struct nb_cb_modify_args *args);
44 int isis_instance_lsp_generation_interval_level_1_modify(
45 struct nb_cb_modify_args *args);
46 int isis_instance_lsp_generation_interval_level_2_modify(
47 struct nb_cb_modify_args *args);
48 int isis_instance_spf_ietf_backoff_delay_create(struct nb_cb_create_args *args);
49 int isis_instance_spf_ietf_backoff_delay_destroy(
50 struct nb_cb_destroy_args *args);
51 int isis_instance_spf_ietf_backoff_delay_init_delay_modify(
52 struct nb_cb_modify_args *args);
53 int isis_instance_spf_ietf_backoff_delay_short_delay_modify(
54 struct nb_cb_modify_args *args);
55 int isis_instance_spf_ietf_backoff_delay_long_delay_modify(
56 struct nb_cb_modify_args *args);
57 int isis_instance_spf_ietf_backoff_delay_hold_down_modify(
58 struct nb_cb_modify_args *args);
59 int isis_instance_spf_ietf_backoff_delay_time_to_learn_modify(
60 struct nb_cb_modify_args *args);
61 int isis_instance_spf_minimum_interval_level_1_modify(
62 struct nb_cb_modify_args *args);
63 int isis_instance_spf_minimum_interval_level_2_modify(
64 struct nb_cb_modify_args *args);
65 int isis_instance_spf_prefix_priorities_critical_access_list_name_modify(
66 struct nb_cb_modify_args *args);
67 int isis_instance_spf_prefix_priorities_critical_access_list_name_destroy(
68 struct nb_cb_destroy_args *args);
69 int isis_instance_spf_prefix_priorities_high_access_list_name_modify(
70 struct nb_cb_modify_args *args);
71 int isis_instance_spf_prefix_priorities_high_access_list_name_destroy(
72 struct nb_cb_destroy_args *args);
73 int isis_instance_spf_prefix_priorities_medium_access_list_name_modify(
74 struct nb_cb_modify_args *args);
75 int isis_instance_spf_prefix_priorities_medium_access_list_name_destroy(
76 struct nb_cb_destroy_args *args);
77 int isis_instance_area_password_create(struct nb_cb_create_args *args);
78 int isis_instance_area_password_destroy(struct nb_cb_destroy_args *args);
79 int isis_instance_area_password_password_modify(struct nb_cb_modify_args *args);
80 int isis_instance_area_password_password_type_modify(
81 struct nb_cb_modify_args *args);
82 int isis_instance_area_password_authenticate_snp_modify(
83 struct nb_cb_modify_args *args);
84 int isis_instance_domain_password_create(struct nb_cb_create_args *args);
85 int isis_instance_domain_password_destroy(struct nb_cb_destroy_args *args);
86 int isis_instance_domain_password_password_modify(
87 struct nb_cb_modify_args *args);
88 int isis_instance_domain_password_password_type_modify(
89 struct nb_cb_modify_args *args);
90 int isis_instance_domain_password_authenticate_snp_modify(
91 struct nb_cb_modify_args *args);
92 int isis_instance_default_information_originate_ipv4_create(
93 struct nb_cb_create_args *args);
94 int isis_instance_default_information_originate_ipv4_destroy(
95 struct nb_cb_destroy_args *args);
96 int isis_instance_default_information_originate_ipv4_always_modify(
97 struct nb_cb_modify_args *args);
98 int isis_instance_default_information_originate_ipv4_route_map_modify(
99 struct nb_cb_modify_args *args);
100 int isis_instance_default_information_originate_ipv4_route_map_destroy(
101 struct nb_cb_destroy_args *args);
102 int isis_instance_default_information_originate_ipv4_metric_modify(
103 struct nb_cb_modify_args *args);
104 int isis_instance_default_information_originate_ipv6_create(
105 struct nb_cb_create_args *args);
106 int isis_instance_default_information_originate_ipv6_destroy(
107 struct nb_cb_destroy_args *args);
108 int isis_instance_default_information_originate_ipv6_always_modify(
109 struct nb_cb_modify_args *args);
110 int isis_instance_default_information_originate_ipv6_route_map_modify(
111 struct nb_cb_modify_args *args);
112 int isis_instance_default_information_originate_ipv6_route_map_destroy(
113 struct nb_cb_destroy_args *args);
114 int isis_instance_default_information_originate_ipv6_metric_modify(
115 struct nb_cb_modify_args *args);
116 int isis_instance_redistribute_ipv4_create(struct nb_cb_create_args *args);
117 int isis_instance_redistribute_ipv4_destroy(struct nb_cb_destroy_args *args);
118 int isis_instance_redistribute_ipv4_route_map_modify(
119 struct nb_cb_modify_args *args);
120 int isis_instance_redistribute_ipv4_route_map_destroy(
121 struct nb_cb_destroy_args *args);
122 int isis_instance_redistribute_ipv4_metric_modify(
123 struct nb_cb_modify_args *args);
124 int isis_instance_redistribute_ipv6_create(struct nb_cb_create_args *args);
125 int isis_instance_redistribute_ipv6_destroy(struct nb_cb_destroy_args *args);
126 int isis_instance_redistribute_ipv6_route_map_modify(
127 struct nb_cb_modify_args *args);
128 int isis_instance_redistribute_ipv6_route_map_destroy(
129 struct nb_cb_destroy_args *args);
130 int isis_instance_redistribute_ipv6_metric_modify(
131 struct nb_cb_modify_args *args);
132 int isis_instance_multi_topology_ipv4_multicast_create(
133 struct nb_cb_create_args *args);
134 int isis_instance_multi_topology_ipv4_multicast_destroy(
135 struct nb_cb_destroy_args *args);
136 int isis_instance_multi_topology_ipv4_multicast_overload_modify(
137 struct nb_cb_modify_args *args);
138 int isis_instance_multi_topology_ipv4_management_create(
139 struct nb_cb_create_args *args);
140 int isis_instance_multi_topology_ipv4_management_destroy(
141 struct nb_cb_destroy_args *args);
142 int isis_instance_multi_topology_ipv4_management_overload_modify(
143 struct nb_cb_modify_args *args);
144 int isis_instance_multi_topology_ipv6_unicast_create(
145 struct nb_cb_create_args *args);
146 int isis_instance_multi_topology_ipv6_unicast_destroy(
147 struct nb_cb_destroy_args *args);
148 int isis_instance_multi_topology_ipv6_unicast_overload_modify(
149 struct nb_cb_modify_args *args);
150 int isis_instance_multi_topology_ipv6_multicast_create(
151 struct nb_cb_create_args *args);
152 int isis_instance_multi_topology_ipv6_multicast_destroy(
153 struct nb_cb_destroy_args *args);
154 int isis_instance_multi_topology_ipv6_multicast_overload_modify(
155 struct nb_cb_modify_args *args);
156 int isis_instance_multi_topology_ipv6_management_create(
157 struct nb_cb_create_args *args);
158 int isis_instance_multi_topology_ipv6_management_destroy(
159 struct nb_cb_destroy_args *args);
160 int isis_instance_multi_topology_ipv6_management_overload_modify(
161 struct nb_cb_modify_args *args);
162 int isis_instance_multi_topology_ipv6_dstsrc_create(
163 struct nb_cb_create_args *args);
164 int isis_instance_multi_topology_ipv6_dstsrc_destroy(
165 struct nb_cb_destroy_args *args);
166 int isis_instance_multi_topology_ipv6_dstsrc_overload_modify(
167 struct nb_cb_modify_args *args);
168 int isis_instance_fast_reroute_level_1_lfa_load_sharing_modify(
169 struct nb_cb_modify_args *args);
170 int isis_instance_fast_reroute_level_1_lfa_priority_limit_modify(
171 struct nb_cb_modify_args *args);
172 int isis_instance_fast_reroute_level_1_lfa_priority_limit_destroy(
173 struct nb_cb_destroy_args *args);
174 int isis_instance_fast_reroute_level_1_lfa_tiebreaker_create(
175 struct nb_cb_create_args *args);
176 int isis_instance_fast_reroute_level_1_lfa_tiebreaker_destroy(
177 struct nb_cb_destroy_args *args);
178 int isis_instance_fast_reroute_level_1_lfa_tiebreaker_type_modify(
179 struct nb_cb_modify_args *args);
180 int isis_instance_fast_reroute_level_1_remote_lfa_prefix_list_modify(
181 struct nb_cb_modify_args *args);
182 int isis_instance_fast_reroute_level_1_remote_lfa_prefix_list_destroy(
183 struct nb_cb_destroy_args *args);
184 int isis_instance_fast_reroute_level_2_lfa_load_sharing_modify(
185 struct nb_cb_modify_args *args);
186 int isis_instance_fast_reroute_level_2_lfa_priority_limit_modify(
187 struct nb_cb_modify_args *args);
188 int isis_instance_fast_reroute_level_2_lfa_priority_limit_destroy(
189 struct nb_cb_destroy_args *args);
190 int isis_instance_fast_reroute_level_2_lfa_tiebreaker_create(
191 struct nb_cb_create_args *args);
192 int isis_instance_fast_reroute_level_2_lfa_tiebreaker_destroy(
193 struct nb_cb_destroy_args *args);
194 int isis_instance_fast_reroute_level_2_lfa_tiebreaker_type_modify(
195 struct nb_cb_modify_args *args);
196 int isis_instance_fast_reroute_level_2_remote_lfa_prefix_list_modify(
197 struct nb_cb_modify_args *args);
198 int isis_instance_fast_reroute_level_2_remote_lfa_prefix_list_destroy(
199 struct nb_cb_destroy_args *args);
200 int isis_instance_log_adjacency_changes_modify(struct nb_cb_modify_args *args);
201 int isis_instance_log_pdu_drops_modify(struct nb_cb_modify_args *args);
202 int isis_instance_mpls_te_create(struct nb_cb_create_args *args);
203 int isis_instance_mpls_te_destroy(struct nb_cb_destroy_args *args);
204 int isis_instance_mpls_te_router_address_modify(struct nb_cb_modify_args *args);
205 int isis_instance_mpls_te_router_address_destroy(
206 struct nb_cb_destroy_args *args);
207 int isis_instance_mpls_te_router_address_ipv6_modify(
208 struct nb_cb_modify_args *args);
209 int isis_instance_mpls_te_router_address_ipv6_destroy(
210 struct nb_cb_destroy_args *args);
211 int isis_instance_mpls_te_export_modify(struct nb_cb_modify_args *args);
212 int lib_interface_isis_create(struct nb_cb_create_args *args);
213 int lib_interface_isis_destroy(struct nb_cb_destroy_args *args);
214 int lib_interface_isis_area_tag_modify(struct nb_cb_modify_args *args);
215 int lib_interface_isis_ipv4_routing_modify(struct nb_cb_modify_args *args);
216 int lib_interface_isis_ipv6_routing_modify(struct nb_cb_modify_args *args);
217 int lib_interface_isis_circuit_type_modify(struct nb_cb_modify_args *args);
218 void lib_interface_isis_bfd_monitoring_apply_finish(
219 struct nb_cb_apply_finish_args *args);
220 int lib_interface_isis_bfd_monitoring_enabled_modify(
221 struct nb_cb_modify_args *args);
222 int lib_interface_isis_bfd_monitoring_profile_modify(
223 struct nb_cb_modify_args *args);
224 int lib_interface_isis_bfd_monitoring_profile_destroy(
225 struct nb_cb_destroy_args *args);
226 int isis_instance_segment_routing_enabled_modify(
227 struct nb_cb_modify_args *args);
228 int isis_instance_segment_routing_enabled_modify(
229 struct nb_cb_modify_args *args);
230 int isis_instance_segment_routing_srgb_lower_bound_modify(
231 struct nb_cb_modify_args *args);
232 int isis_instance_segment_routing_srgb_upper_bound_modify(
233 struct nb_cb_modify_args *args);
234 int isis_instance_segment_routing_srlb_lower_bound_modify(
235 struct nb_cb_modify_args *args);
236 int isis_instance_segment_routing_srlb_upper_bound_modify(
237 struct nb_cb_modify_args *args);
238 int isis_instance_segment_routing_msd_node_msd_modify(
239 struct nb_cb_modify_args *args);
240 int isis_instance_segment_routing_msd_node_msd_destroy(
241 struct nb_cb_destroy_args *args);
242 int isis_instance_segment_routing_prefix_sid_map_prefix_sid_create(
243 struct nb_cb_create_args *args);
244 int isis_instance_segment_routing_prefix_sid_map_prefix_sid_destroy(
245 struct nb_cb_destroy_args *args);
246 int isis_instance_segment_routing_prefix_sid_map_prefix_sid_sid_value_type_modify(
247 struct nb_cb_modify_args *args);
248 int isis_instance_segment_routing_prefix_sid_map_prefix_sid_sid_value_modify(
249 struct nb_cb_modify_args *args);
250 int isis_instance_segment_routing_prefix_sid_map_prefix_sid_last_hop_behavior_modify(
251 struct nb_cb_modify_args *args);
252 int isis_instance_segment_routing_prefix_sid_map_prefix_sid_n_flag_clear_modify(
253 struct nb_cb_modify_args *args);
254 int isis_instance_segment_routing_algorithm_prefix_sid_create(
255 struct nb_cb_create_args *args);
256 int isis_instance_segment_routing_algorithm_prefix_sid_destroy(
257 struct nb_cb_destroy_args *args);
258 int isis_instance_segment_routing_algorithm_prefix_sid_pre_validate(
259 struct nb_cb_pre_validate_args *args);
260 void isis_instance_segment_routing_algorithm_prefix_sid_apply_finish(
261 struct nb_cb_apply_finish_args *args);
262 int isis_instance_segment_routing_algorithm_prefix_sid_sid_value_type_modify(
263 struct nb_cb_modify_args *args);
264 int isis_instance_segment_routing_algorithm_prefix_sid_sid_value_modify(
265 struct nb_cb_modify_args *args);
266 int isis_instance_segment_routing_algorithm_prefix_sid_last_hop_behavior_modify(
267 struct nb_cb_modify_args *args);
268 int isis_instance_segment_routing_algorithm_prefix_sid_n_flag_clear_modify(
269 struct nb_cb_modify_args *args);
270 int isis_instance_flex_algo_create(struct nb_cb_create_args *args);
271 int isis_instance_flex_algo_destroy(struct nb_cb_destroy_args *args);
272 int isis_instance_flex_algo_advertise_definition_modify(
273 struct nb_cb_modify_args *args);
274 int isis_instance_flex_algo_advertise_definition_destroy(
275 struct nb_cb_destroy_args *args);
276 int isis_instance_flex_algo_affinity_include_any_create(
277 struct nb_cb_create_args *args);
278 int isis_instance_flex_algo_affinity_include_any_destroy(
279 struct nb_cb_destroy_args *args);
280 int isis_instance_flex_algo_affinity_include_all_create(
281 struct nb_cb_create_args *args);
282 int isis_instance_flex_algo_affinity_include_all_destroy(
283 struct nb_cb_destroy_args *args);
284 int isis_instance_flex_algo_affinity_exclude_any_create(
285 struct nb_cb_create_args *args);
286 int isis_instance_flex_algo_affinity_exclude_any_destroy(
287 struct nb_cb_destroy_args *args);
288 int isis_instance_flex_algo_prefix_metric_create(
289 struct nb_cb_create_args *args);
290 int isis_instance_flex_algo_prefix_metric_destroy(
291 struct nb_cb_destroy_args *args);
292 int isis_instance_flex_algo_dplane_sr_mpls_create(
293 struct nb_cb_create_args *args);
294 int isis_instance_flex_algo_dplane_sr_mpls_destroy(
295 struct nb_cb_destroy_args *args);
296 int isis_instance_flex_algo_dplane_srv6_create(struct nb_cb_create_args *args);
297 int isis_instance_flex_algo_dplane_srv6_destroy(
298 struct nb_cb_destroy_args *args);
299 int isis_instance_flex_algo_dplane_ip_create(struct nb_cb_create_args *args);
300 int isis_instance_flex_algo_dplane_ip_destroy(struct nb_cb_destroy_args *args);
301 int isis_instance_flex_algo_metric_type_modify(struct nb_cb_modify_args *args);
302 int isis_instance_flex_algo_priority_modify(struct nb_cb_modify_args *args);
303 int isis_instance_flex_algo_priority_destroy(struct nb_cb_destroy_args *args);
304 int isis_instance_flex_algo_frr_disable_modify(struct nb_cb_modify_args *args);
305 int isis_instance_flex_algo_frr_disable_destroy(
306 struct nb_cb_destroy_args *args);
307 int isis_instance_flex_algo_affinity_mapping_create(
308 struct nb_cb_create_args *args);
309 int isis_instance_flex_algo_affinity_mapping_destroy(
310 struct nb_cb_destroy_args *args);
311 int isis_instance_flex_algo_affinity_mapping_value_modify(
312 struct nb_cb_modify_args *args);
313 int isis_instance_flex_algo_affinity_mapping_value_destroy(
314 struct nb_cb_destroy_args *args);
315 int isis_instance_mpls_ldp_sync_destroy(struct nb_cb_destroy_args *args);
316 int isis_instance_mpls_ldp_sync_create(struct nb_cb_create_args *args);
317 int isis_instance_mpls_ldp_sync_holddown_modify(struct nb_cb_modify_args *args);
318 int lib_interface_isis_csnp_interval_level_1_modify(
319 struct nb_cb_modify_args *args);
320 int lib_interface_isis_csnp_interval_level_2_modify(
321 struct nb_cb_modify_args *args);
322 int lib_interface_isis_psnp_interval_level_1_modify(
323 struct nb_cb_modify_args *args);
324 int lib_interface_isis_psnp_interval_level_2_modify(
325 struct nb_cb_modify_args *args);
326 int lib_interface_isis_hello_padding_modify(struct nb_cb_modify_args *args);
327 int lib_interface_isis_hello_interval_level_1_modify(
328 struct nb_cb_modify_args *args);
329 int lib_interface_isis_hello_interval_level_2_modify(
330 struct nb_cb_modify_args *args);
331 int lib_interface_isis_hello_multiplier_level_1_modify(
332 struct nb_cb_modify_args *args);
333 int lib_interface_isis_hello_multiplier_level_2_modify(
334 struct nb_cb_modify_args *args);
335 int lib_interface_isis_metric_level_1_modify(struct nb_cb_modify_args *args);
336 int lib_interface_isis_metric_level_2_modify(struct nb_cb_modify_args *args);
337 int lib_interface_isis_priority_level_1_modify(struct nb_cb_modify_args *args);
338 int lib_interface_isis_priority_level_2_modify(struct nb_cb_modify_args *args);
339 int lib_interface_isis_network_type_modify(struct nb_cb_modify_args *args);
340 int lib_interface_isis_passive_modify(struct nb_cb_modify_args *args);
341 int lib_interface_isis_password_create(struct nb_cb_create_args *args);
342 int lib_interface_isis_password_destroy(struct nb_cb_destroy_args *args);
343 int lib_interface_isis_password_password_modify(struct nb_cb_modify_args *args);
344 int lib_interface_isis_password_password_type_modify(
345 struct nb_cb_modify_args *args);
346 int lib_interface_isis_disable_three_way_handshake_modify(
347 struct nb_cb_modify_args *args);
348 int lib_interface_isis_multi_topology_standard_modify(
349 struct nb_cb_modify_args *args);
350 int lib_interface_isis_multi_topology_ipv4_multicast_modify(
351 struct nb_cb_modify_args *args);
352 int lib_interface_isis_multi_topology_ipv4_management_modify(
353 struct nb_cb_modify_args *args);
354 int lib_interface_isis_multi_topology_ipv6_unicast_modify(
355 struct nb_cb_modify_args *args);
356 int lib_interface_isis_multi_topology_ipv6_multicast_modify(
357 struct nb_cb_modify_args *args);
358 int lib_interface_isis_multi_topology_ipv6_management_modify(
359 struct nb_cb_modify_args *args);
360 int lib_interface_isis_multi_topology_ipv6_dstsrc_modify(
361 struct nb_cb_modify_args *args);
362 int lib_interface_isis_mpls_ldp_sync_modify(struct nb_cb_modify_args *args);
363 int lib_interface_isis_mpls_holddown_modify(struct nb_cb_modify_args *args);
364 int lib_interface_isis_mpls_holddown_destroy(struct nb_cb_destroy_args *args);
365 int lib_interface_isis_fast_reroute_level_1_lfa_enable_modify(
366 struct nb_cb_modify_args *args);
367 int lib_interface_isis_fast_reroute_level_1_lfa_exclude_interface_create(
368 struct nb_cb_create_args *args);
369 int lib_interface_isis_fast_reroute_level_1_lfa_exclude_interface_destroy(
370 struct nb_cb_destroy_args *args);
371 int lib_interface_isis_fast_reroute_level_1_remote_lfa_enable_modify(
372 struct nb_cb_modify_args *args);
373 int lib_interface_isis_fast_reroute_level_1_remote_lfa_maximum_metric_modify(
374 struct nb_cb_modify_args *args);
375 int lib_interface_isis_fast_reroute_level_1_remote_lfa_maximum_metric_destroy(
376 struct nb_cb_destroy_args *args);
377 int lib_interface_isis_fast_reroute_level_1_ti_lfa_enable_modify(
378 struct nb_cb_modify_args *args);
379 int lib_interface_isis_fast_reroute_level_1_ti_lfa_node_protection_modify(
380 struct nb_cb_modify_args *args);
381 int lib_interface_isis_fast_reroute_level_1_ti_lfa_link_fallback_modify(
382 struct nb_cb_modify_args *args);
383 int lib_interface_isis_fast_reroute_level_2_lfa_enable_modify(
384 struct nb_cb_modify_args *args);
385 int lib_interface_isis_fast_reroute_level_2_lfa_exclude_interface_create(
386 struct nb_cb_create_args *args);
387 int lib_interface_isis_fast_reroute_level_2_lfa_exclude_interface_destroy(
388 struct nb_cb_destroy_args *args);
389 int lib_interface_isis_fast_reroute_level_2_remote_lfa_enable_modify(
390 struct nb_cb_modify_args *args);
391 int lib_interface_isis_fast_reroute_level_2_remote_lfa_maximum_metric_modify(
392 struct nb_cb_modify_args *args);
393 int lib_interface_isis_fast_reroute_level_2_remote_lfa_maximum_metric_destroy(
394 struct nb_cb_destroy_args *args);
395 int lib_interface_isis_fast_reroute_level_2_ti_lfa_enable_modify(
396 struct nb_cb_modify_args *args);
397 int lib_interface_isis_fast_reroute_level_2_ti_lfa_node_protection_modify(
398 struct nb_cb_modify_args *args);
399 int lib_interface_isis_fast_reroute_level_2_ti_lfa_link_fallback_modify(
400 struct nb_cb_modify_args *args);
401 struct yang_data *
402 lib_interface_state_isis_get_elem(struct nb_cb_get_elem_args *args);
403 const void *lib_interface_state_isis_adjacencies_adjacency_get_next(
404 struct nb_cb_get_next_args *args);
405 struct yang_data *
406 lib_interface_state_isis_adjacencies_adjacency_neighbor_sys_type_get_elem(
407 struct nb_cb_get_elem_args *args);
408 struct yang_data *
409 lib_interface_state_isis_adjacencies_adjacency_neighbor_sysid_get_elem(
410 struct nb_cb_get_elem_args *args);
411 struct yang_data *
412 lib_interface_state_isis_adjacencies_adjacency_neighbor_extended_circuit_id_get_elem(
413 struct nb_cb_get_elem_args *args);
414 struct yang_data *
415 lib_interface_state_isis_adjacencies_adjacency_neighbor_snpa_get_elem(
416 struct nb_cb_get_elem_args *args);
417 struct yang_data *
418 lib_interface_state_isis_adjacencies_adjacency_hold_timer_get_elem(
419 struct nb_cb_get_elem_args *args);
420 struct yang_data *
421 lib_interface_state_isis_adjacencies_adjacency_neighbor_priority_get_elem(
422 struct nb_cb_get_elem_args *args);
423 struct yang_data *lib_interface_state_isis_adjacencies_adjacency_state_get_elem(
424 struct nb_cb_get_elem_args *args);
425 const void *
426 lib_interface_state_isis_adjacencies_adjacency_adjacency_sids_adjacency_sid_get_next(
427 struct nb_cb_get_next_args *args);
428 struct yang_data *
429 lib_interface_state_isis_adjacencies_adjacency_adjacency_sids_adjacency_sid_af_get_elem(
430 struct nb_cb_get_elem_args *args);
431 struct yang_data *
432 lib_interface_state_isis_adjacencies_adjacency_adjacency_sids_adjacency_sid_value_get_elem(
433 struct nb_cb_get_elem_args *args);
434 struct yang_data *
435 lib_interface_state_isis_adjacencies_adjacency_adjacency_sids_adjacency_sid_weight_get_elem(
436 struct nb_cb_get_elem_args *args);
437 struct yang_data *
438 lib_interface_state_isis_adjacencies_adjacency_adjacency_sids_adjacency_sid_protection_requested_get_elem(
439 struct nb_cb_get_elem_args *args);
440 const void *
441 lib_interface_state_isis_adjacencies_adjacency_lan_adjacency_sids_lan_adjacency_sid_get_next(
442 struct nb_cb_get_next_args *args);
443 struct yang_data *
444 lib_interface_state_isis_adjacencies_adjacency_lan_adjacency_sids_lan_adjacency_sid_af_get_elem(
445 struct nb_cb_get_elem_args *args);
446 struct yang_data *
447 lib_interface_state_isis_adjacencies_adjacency_lan_adjacency_sids_lan_adjacency_sid_value_get_elem(
448 struct nb_cb_get_elem_args *args);
449 struct yang_data *
450 lib_interface_state_isis_adjacencies_adjacency_lan_adjacency_sids_lan_adjacency_sid_weight_get_elem(
451 struct nb_cb_get_elem_args *args);
452 struct yang_data *
453 lib_interface_state_isis_adjacencies_adjacency_lan_adjacency_sids_lan_adjacency_sid_protection_requested_get_elem(
454 struct nb_cb_get_elem_args *args);
455 struct yang_data *
456 lib_interface_state_isis_event_counters_adjacency_changes_get_elem(
457 struct nb_cb_get_elem_args *args);
458 struct yang_data *
459 lib_interface_state_isis_event_counters_adjacency_number_get_elem(
460 struct nb_cb_get_elem_args *args);
461 struct yang_data *lib_interface_state_isis_event_counters_init_fails_get_elem(
462 struct nb_cb_get_elem_args *args);
463 struct yang_data *
464 lib_interface_state_isis_event_counters_adjacency_rejects_get_elem(
465 struct nb_cb_get_elem_args *args);
466 struct yang_data *
467 lib_interface_state_isis_event_counters_id_len_mismatch_get_elem(
468 struct nb_cb_get_elem_args *args);
469 struct yang_data *
470 lib_interface_state_isis_event_counters_max_area_addresses_mismatch_get_elem(
471 struct nb_cb_get_elem_args *args);
472 struct yang_data *
473 lib_interface_state_isis_event_counters_authentication_type_fails_get_elem(
474 struct nb_cb_get_elem_args *args);
475 struct yang_data *
476 lib_interface_state_isis_event_counters_authentication_fails_get_elem(
477 struct nb_cb_get_elem_args *args);
478
479 /* Optional 'pre_validate' callbacks. */
480 int isis_instance_segment_routing_prefix_sid_map_prefix_sid_pre_validate(
481 struct nb_cb_pre_validate_args *args);
482 int isis_instance_segment_routing_label_blocks_pre_validate(
483 struct nb_cb_pre_validate_args *args);
484
485 /* Optional 'apply_finish' callbacks. */
486 void ietf_backoff_delay_apply_finish(struct nb_cb_apply_finish_args *args);
487 void area_password_apply_finish(struct nb_cb_apply_finish_args *args);
488 void domain_password_apply_finish(struct nb_cb_apply_finish_args *args);
489 void default_info_origin_apply_finish(const struct lyd_node *dnode, int family);
490 void default_info_origin_ipv4_apply_finish(
491 struct nb_cb_apply_finish_args *args);
492 void default_info_origin_ipv6_apply_finish(
493 struct nb_cb_apply_finish_args *args);
494 void redistribute_apply_finish(const struct lyd_node *dnode, int family);
495 void redistribute_ipv4_apply_finish(struct nb_cb_apply_finish_args *args);
496 void redistribute_ipv6_apply_finish(struct nb_cb_apply_finish_args *args);
497 void isis_instance_segment_routing_srgb_apply_finish(
498 struct nb_cb_apply_finish_args *args);
499 void isis_instance_segment_routing_srlb_apply_finish(
500 struct nb_cb_apply_finish_args *args);
501 void isis_instance_segment_routing_prefix_sid_map_prefix_sid_apply_finish(
502 struct nb_cb_apply_finish_args *args);
503
504 /* Optional 'cli_show' callbacks. */
505 void cli_show_router_isis(struct vty *vty, const struct lyd_node *dnode,
506 bool show_defaults);
507 void cli_show_router_isis_end(struct vty *vty, const struct lyd_node *dnode);
508 void cli_show_ip_isis_ipv4(struct vty *vty, const struct lyd_node *dnode,
509 bool show_defaults);
510 void cli_show_ip_isis_ipv6(struct vty *vty, const struct lyd_node *dnode,
511 bool show_defaults);
512 void cli_show_ip_isis_bfd_monitoring(struct vty *vty,
513 const struct lyd_node *dnode,
514 bool show_defaults);
515 void cli_show_isis_area_address(struct vty *vty, const struct lyd_node *dnode,
516 bool show_defaults);
517 void cli_show_isis_is_type(struct vty *vty, const struct lyd_node *dnode,
518 bool show_defaults);
519 void cli_show_isis_dynamic_hostname(struct vty *vty,
520 const struct lyd_node *dnode,
521 bool show_defaults);
522 void cli_show_isis_attached_send(struct vty *vty, const struct lyd_node *dnode,
523 bool show_defaults);
524 void cli_show_isis_attached_receive(struct vty *vty,
525 const struct lyd_node *dnode,
526 bool show_defaults);
527 void cli_show_isis_overload(struct vty *vty, const struct lyd_node *dnode,
528 bool show_defaults);
529 void cli_show_isis_overload_on_startup(struct vty *vty,
530 const struct lyd_node *dnode,
531 bool show_defaults);
532 void cli_show_advertise_high_metrics(struct vty *vty,
533 const struct lyd_node *dnode,
534 bool show_defaults);
535 void cli_show_isis_metric_style(struct vty *vty, const struct lyd_node *dnode,
536 bool show_defaults);
537 void cli_show_isis_area_pwd(struct vty *vty, const struct lyd_node *dnode,
538 bool show_defaults);
539 void cli_show_isis_domain_pwd(struct vty *vty, const struct lyd_node *dnode,
540 bool show_defaults);
541 void cli_show_isis_lsp_timers(struct vty *vty, const struct lyd_node *dnode,
542 bool show_defaults);
543 void cli_show_isis_lsp_mtu(struct vty *vty, const struct lyd_node *dnode,
544 bool show_defaults);
545 void cli_show_advertise_passive_only(struct vty *vty,
546 const struct lyd_node *dnode,
547 bool show_defaults);
548 void cli_show_isis_spf_min_interval(struct vty *vty,
549 const struct lyd_node *dnode,
550 bool show_defaults);
551 void cli_show_isis_spf_ietf_backoff(struct vty *vty,
552 const struct lyd_node *dnode,
553 bool show_defaults);
554 void cli_show_isis_spf_prefix_priority(struct vty *vty,
555 const struct lyd_node *dnode,
556 bool show_defaults);
557 void cli_show_isis_purge_origin(struct vty *vty, const struct lyd_node *dnode,
558 bool show_defaults);
559 void cli_show_isis_mpls_te(struct vty *vty, const struct lyd_node *dnode,
560 bool show_defaults);
561 void cli_show_isis_admin_group_send_zero(struct vty *vty,
562 const struct lyd_node *dnode,
563 bool show_defaults);
564 void cli_show_isis_asla_legacy_flag(struct vty *vty,
565 const struct lyd_node *dnode,
566 bool show_defaults);
567 void cli_show_isis_mpls_te_router_addr(struct vty *vty,
568 const struct lyd_node *dnode,
569 bool show_defaults);
570 void cli_show_isis_mpls_te_router_addr_ipv6(struct vty *vty,
571 const struct lyd_node *dnode,
572 bool show_defaults);
573 void cli_show_isis_mpls_te_export(struct vty *vty, const struct lyd_node *dnode,
574 bool show_defaults);
575 void cli_show_isis_def_origin_ipv4(struct vty *vty,
576 const struct lyd_node *dnode,
577 bool show_defaults);
578 void cli_show_isis_def_origin_ipv6(struct vty *vty,
579 const struct lyd_node *dnode,
580 bool show_defaults);
581 void cli_show_isis_redistribute_ipv4(struct vty *vty,
582 const struct lyd_node *dnode,
583 bool show_defaults);
584 void cli_show_isis_redistribute_ipv6(struct vty *vty,
585 const struct lyd_node *dnode,
586 bool show_defaults);
587 void cli_show_isis_mt_ipv4_multicast(struct vty *vty,
588 const struct lyd_node *dnode,
589 bool show_defaults);
590 void cli_show_isis_mt_ipv4_mgmt(struct vty *vty, const struct lyd_node *dnode,
591 bool show_defaults);
592 void cli_show_isis_mt_ipv6_unicast(struct vty *vty,
593 const struct lyd_node *dnode,
594 bool show_defaults);
595 void cli_show_isis_mt_ipv6_multicast(struct vty *vty,
596 const struct lyd_node *dnode,
597 bool show_defaults);
598 void cli_show_isis_mt_ipv6_mgmt(struct vty *vty, const struct lyd_node *dnode,
599 bool show_defaults);
600 void cli_show_isis_mt_ipv6_dstsrc(struct vty *vty, const struct lyd_node *dnode,
601 bool show_defaults);
602 void cli_show_isis_sr_enabled(struct vty *vty, const struct lyd_node *dnode,
603 bool show_defaults);
604 void cli_show_isis_label_blocks(struct vty *vty, const struct lyd_node *dnode,
605 bool show_defaults);
606 void cli_show_isis_node_msd(struct vty *vty, const struct lyd_node *dnode,
607 bool show_defaults);
608 void cli_show_isis_prefix_sid(struct vty *vty, const struct lyd_node *dnode,
609 bool show_defaults);
610 void cli_show_isis_prefix_sid_algorithm(struct vty *vty,
611 const struct lyd_node *dnode,
612 bool show_defaults);
613 void cli_show_isis_frr_lfa_priority_limit(struct vty *vty,
614 const struct lyd_node *dnode,
615 bool show_defaults);
616 void cli_show_isis_frr_lfa_tiebreaker(struct vty *vty,
617 const struct lyd_node *dnode,
618 bool show_defaults);
619 void cli_show_isis_frr_lfa_load_sharing(struct vty *vty,
620 const struct lyd_node *dnode,
621 bool show_defaults);
622 void cli_show_isis_frr_remote_lfa_plist(struct vty *vty,
623 const struct lyd_node *dnode,
624 bool show_defaults);
625 void cli_show_ip_isis_passive(struct vty *vty, const struct lyd_node *dnode,
626 bool show_defaults);
627 void cli_show_ip_isis_password(struct vty *vty, const struct lyd_node *dnode,
628 bool show_defaults);
629 void cli_show_ip_isis_metric(struct vty *vty, const struct lyd_node *dnode,
630 bool show_defaults);
631 void cli_show_ip_isis_hello_interval(struct vty *vty,
632 const struct lyd_node *dnode,
633 bool show_defaults);
634 void cli_show_ip_isis_hello_multi(struct vty *vty, const struct lyd_node *dnode,
635 bool show_defaults);
636 void cli_show_ip_isis_threeway_shake(struct vty *vty,
637 const struct lyd_node *dnode,
638 bool show_defaults);
639 void cli_show_ip_isis_hello_padding(struct vty *vty,
640 const struct lyd_node *dnode,
641 bool show_defaults);
642 void cli_show_ip_isis_csnp_interval(struct vty *vty,
643 const struct lyd_node *dnode,
644 bool show_defaults);
645 void cli_show_ip_isis_psnp_interval(struct vty *vty,
646 const struct lyd_node *dnode,
647 bool show_defaults);
648 void cli_show_ip_isis_mt_standard(struct vty *vty, const struct lyd_node *dnode,
649 bool show_defaults);
650 void cli_show_ip_isis_mt_ipv4_multicast(struct vty *vty,
651 const struct lyd_node *dnode,
652 bool show_defaults);
653 void cli_show_ip_isis_mt_ipv4_mgmt(struct vty *vty,
654 const struct lyd_node *dnode,
655 bool show_defaults);
656 void cli_show_ip_isis_mt_ipv6_unicast(struct vty *vty,
657 const struct lyd_node *dnode,
658 bool show_defaults);
659 void cli_show_ip_isis_mt_ipv6_multicast(struct vty *vty,
660 const struct lyd_node *dnode,
661 bool show_defaults);
662 void cli_show_ip_isis_mt_ipv6_mgmt(struct vty *vty,
663 const struct lyd_node *dnode,
664 bool show_defaults);
665 void cli_show_ip_isis_mt_ipv6_dstsrc(struct vty *vty,
666 const struct lyd_node *dnode,
667 bool show_defaults);
668 void cli_show_ip_isis_frr(struct vty *vty, const struct lyd_node *dnode,
669 bool show_defaults);
670 void cli_show_frr_lfa_exclude_interface(struct vty *vty,
671 const struct lyd_node *dnode,
672 bool show_defaults);
673 void cli_show_frr_remote_lfa_max_metric(struct vty *vty,
674 const struct lyd_node *dnode,
675 bool show_defaults);
676 void cli_show_ip_isis_circ_type(struct vty *vty, const struct lyd_node *dnode,
677 bool show_defaults);
678 void cli_show_ip_isis_network_type(struct vty *vty,
679 const struct lyd_node *dnode,
680 bool show_defaults);
681 void cli_show_ip_isis_priority(struct vty *vty, const struct lyd_node *dnode,
682 bool show_defaults);
683 void cli_show_isis_log_adjacency(struct vty *vty, const struct lyd_node *dnode,
684 bool show_defaults);
685 void cli_show_isis_log_pdu_drops(struct vty *vty, const struct lyd_node *dnode,
686 bool show_defaults);
687 void cli_show_isis_mpls_ldp_sync(struct vty *vty, const struct lyd_node *dnode,
688 bool show_defaults);
689 void cli_show_isis_mpls_ldp_sync_holddown(struct vty *vty,
690 const struct lyd_node *dnode,
691 bool show_defaults);
692 void cli_show_isis_mpls_if_ldp_sync(struct vty *vty,
693 const struct lyd_node *dnode,
694 bool show_defaults);
695 void cli_show_isis_mpls_if_ldp_sync_holddown(struct vty *vty,
696 const struct lyd_node *dnode,
697 bool show_defaults);
698 void cli_show_isis_flex_algo(struct vty *vty, const struct lyd_node *dnode,
699 bool show_defaults);
700 void cli_show_isis_flex_algo_end(struct vty *vty, const struct lyd_node *dnode);
701
702 /* Notifications. */
703 void isis_notif_db_overload(const struct isis_area *area, bool overload);
704 void isis_notif_lsp_too_large(const struct isis_circuit *circuit,
705 uint32_t pdu_size, const uint8_t *lsp_id);
706 void isis_notif_if_state_change(const struct isis_circuit *circuit, bool down);
707 void isis_notif_corrupted_lsp(const struct isis_area *area,
708 const uint8_t *lsp_id); /* currently unused */
709 void isis_notif_lsp_exceed_max(const struct isis_area *area,
710 const uint8_t *lsp_id);
711 void isis_notif_max_area_addr_mismatch(const struct isis_circuit *circuit,
712 uint8_t max_area_addrs,
713 const char *raw_pdu, size_t raw_pdu_len);
714 void isis_notif_authentication_type_failure(const struct isis_circuit *circuit,
715 const char *raw_pdu,
716 size_t raw_pdu_len);
717 void isis_notif_authentication_failure(const struct isis_circuit *circuit,
718 const char *raw_pdu, size_t raw_pdu_len);
719 void isis_notif_adj_state_change(const struct isis_adjacency *adj,
720 int new_state, const char *reason);
721 void isis_notif_reject_adjacency(const struct isis_circuit *circuit,
722 const char *reason, const char *raw_pdu,
723 size_t raw_pdu_len);
724 void isis_notif_area_mismatch(const struct isis_circuit *circuit,
725 const char *raw_pdu, size_t raw_pdu_len);
726 void isis_notif_lsp_received(const struct isis_circuit *circuit,
727 const uint8_t *lsp_id, uint32_t seqno,
728 uint32_t timestamp, const char *sys_id);
729 void isis_notif_lsp_gen(const struct isis_area *area, const uint8_t *lsp_id,
730 uint32_t seqno, uint32_t timestamp);
731 void isis_notif_id_len_mismatch(const struct isis_circuit *circuit,
732 uint8_t rcv_id_len, const char *raw_pdu,
733 size_t raw_pdu_len);
734 void isis_notif_version_skew(const struct isis_circuit *circuit,
735 uint8_t version, const char *raw_pdu,
736 size_t raw_pdu_len);
737 void isis_notif_lsp_error(const struct isis_circuit *circuit,
738 const uint8_t *lsp_id, const char *raw_pdu,
739 size_t raw_pdu_len, uint32_t offset,
740 uint8_t tlv_type);
741 void isis_notif_seqno_skipped(const struct isis_circuit *circuit,
742 const uint8_t *lsp_id);
743 void isis_notif_own_lsp_purge(const struct isis_circuit *circuit,
744 const uint8_t *lsp_id);
745
746 /* We also declare hook for every notification */
747
748 DECLARE_HOOK(isis_hook_db_overload, (const struct isis_area *area), (area));
749 DECLARE_HOOK(isis_hook_lsp_too_large,
750 (const struct isis_circuit *circuit, uint32_t pdu_size,
751 const uint8_t *lsp_id),
752 (circuit, pdu_size, lsp_id));
753 /* Note: no isis_hook_corrupted_lsp - because this notificaiton is not used */
754 DECLARE_HOOK(isis_hook_lsp_exceed_max,
755 (const struct isis_area *area, const uint8_t *lsp_id),
756 (area, lsp_id));
757 DECLARE_HOOK(isis_hook_max_area_addr_mismatch,
758 (const struct isis_circuit *circuit, uint8_t max_addrs,
759 const char *raw_pdu, size_t raw_pdu_len),
760 (circuit, max_addrs, raw_pdu, raw_pdu_len));
761 DECLARE_HOOK(isis_hook_authentication_type_failure,
762 (const struct isis_circuit *circuit, const char *raw_pdu,
763 size_t raw_pdu_len),
764 (circuit, raw_pdu, raw_pdu_len));
765 DECLARE_HOOK(isis_hook_authentication_failure,
766 (const struct isis_circuit *circuit, const char *raw_pdu,
767 size_t raw_pdu_len),
768 (circuit, raw_pdu, raw_pdu_len));
769 DECLARE_HOOK(isis_hook_adj_state_change, (const struct isis_adjacency *adj),
770 (adj));
771 DECLARE_HOOK(isis_hook_reject_adjacency,
772 (const struct isis_circuit *circuit, const char *pdu,
773 size_t pdu_len),
774 (circuit, pdu, pdu_len));
775 DECLARE_HOOK(isis_hook_area_mismatch,
776 (const struct isis_circuit *circuit, const char *raw_pdu,
777 size_t raw_pdu_len),
778 (circuit));
779 DECLARE_HOOK(isis_hook_id_len_mismatch,
780 (const struct isis_circuit *circuit, uint8_t rcv_id_len,
781 const char *raw_pdu, size_t raw_pdu_len),
782 (circuit, rcv_id_len, raw_pdu, raw_pdu_len));
783 DECLARE_HOOK(isis_hook_version_skew,
784 (const struct isis_circuit *circuit, uint8_t version,
785 const char *raw_pdu, size_t raw_pdu_len),
786 (circuit));
787 DECLARE_HOOK(isis_hook_lsp_error,
788 (const struct isis_circuit *circuit, const uint8_t *lsp_id,
789 const char *raw_pdu, size_t raw_pdu_len),
790 (circuit));
791 DECLARE_HOOK(isis_hook_seqno_skipped,
792 (const struct isis_circuit *circuit, const uint8_t *lsp_id),
793 (circuit, lsp_id));
794 DECLARE_HOOK(isis_hook_own_lsp_purge,
795 (const struct isis_circuit *circuit, const uint8_t *lsp_id),
796 (circuit, lsp_id));
797
798 #endif /* ISISD_ISIS_NB_H_ */