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