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