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