2 * BFD daemon northbound implementation.
4 * Copyright (C) 2019 Network Device Education Foundation, Inc. ("NetDEF")
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26 #include "lib/northbound.h"
30 /* clang-format off */
31 const struct frr_yang_module_info frr_bfdd_info
= {
35 .xpath
= "/frr-bfdd:bfdd/bfd",
37 .create
= bfdd_bfd_create
,
38 .destroy
= bfdd_bfd_destroy
,
39 .cli_show
= bfd_cli_show_header
,
40 .cli_show_end
= bfd_cli_show_header_end
,
44 .xpath
= "/frr-bfdd:bfdd/bfd/profile",
46 .create
= bfdd_bfd_profile_create
,
47 .destroy
= bfdd_bfd_profile_destroy
,
48 .cli_show
= bfd_cli_show_profile
,
49 .cli_show_end
= bfd_cli_show_peer_end
,
53 .xpath
= "/frr-bfdd:bfdd/bfd/profile/detection-multiplier",
55 .modify
= bfdd_bfd_profile_detection_multiplier_modify
,
56 .cli_show
= bfd_cli_show_mult
,
60 .xpath
= "/frr-bfdd:bfdd/bfd/profile/desired-transmission-interval",
62 .modify
= bfdd_bfd_profile_desired_transmission_interval_modify
,
63 .cli_show
= bfd_cli_show_tx
,
67 .xpath
= "/frr-bfdd:bfdd/bfd/profile/required-receive-interval",
69 .modify
= bfdd_bfd_profile_required_receive_interval_modify
,
70 .cli_show
= bfd_cli_show_rx
,
74 .xpath
= "/frr-bfdd:bfdd/bfd/profile/administrative-down",
76 .modify
= bfdd_bfd_profile_administrative_down_modify
,
77 .cli_show
= bfd_cli_show_shutdown
,
81 .xpath
= "/frr-bfdd:bfdd/bfd/profile/echo-mode",
83 .modify
= bfdd_bfd_profile_echo_mode_modify
,
84 .cli_show
= bfd_cli_show_echo
,
88 .xpath
= "/frr-bfdd:bfdd/bfd/profile/desired-echo-transmission-interval",
90 .modify
= bfdd_bfd_profile_desired_echo_transmission_interval_modify
,
91 .cli_show
= bfd_cli_show_echo_interval
,
95 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop",
97 .create
= bfdd_bfd_sessions_single_hop_create
,
98 .destroy
= bfdd_bfd_sessions_single_hop_destroy
,
99 .get_next
= bfdd_bfd_sessions_single_hop_get_next
,
100 .get_keys
= bfdd_bfd_sessions_single_hop_get_keys
,
101 .lookup_entry
= bfdd_bfd_sessions_single_hop_lookup_entry
,
102 .cli_show
= bfd_cli_show_single_hop_peer
,
103 .cli_show_end
= bfd_cli_show_peer_end
,
107 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/source-addr",
109 .modify
= bfdd_bfd_sessions_single_hop_source_addr_modify
,
110 .destroy
= bfdd_bfd_sessions_single_hop_source_addr_destroy
,
114 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/profile",
116 .modify
= bfdd_bfd_sessions_single_hop_profile_modify
,
117 .destroy
= bfdd_bfd_sessions_single_hop_profile_destroy
,
118 .cli_show
= bfd_cli_peer_profile_show
,
122 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/detection-multiplier",
124 .modify
= bfdd_bfd_sessions_single_hop_detection_multiplier_modify
,
125 .cli_show
= bfd_cli_show_mult
,
129 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/desired-transmission-interval",
131 .modify
= bfdd_bfd_sessions_single_hop_desired_transmission_interval_modify
,
132 .cli_show
= bfd_cli_show_tx
,
136 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/required-receive-interval",
138 .modify
= bfdd_bfd_sessions_single_hop_required_receive_interval_modify
,
139 .cli_show
= bfd_cli_show_rx
,
143 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/administrative-down",
145 .modify
= bfdd_bfd_sessions_single_hop_administrative_down_modify
,
146 .cli_show
= bfd_cli_show_shutdown
,
150 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/echo-mode",
152 .modify
= bfdd_bfd_sessions_single_hop_echo_mode_modify
,
153 .cli_show
= bfd_cli_show_echo
,
157 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/desired-echo-transmission-interval",
159 .modify
= bfdd_bfd_sessions_single_hop_desired_echo_transmission_interval_modify
,
160 .cli_show
= bfd_cli_show_echo_interval
,
164 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/local-discriminator",
166 .get_elem
= bfdd_bfd_sessions_single_hop_stats_local_discriminator_get_elem
,
170 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/local-state",
172 .get_elem
= bfdd_bfd_sessions_single_hop_stats_local_state_get_elem
,
176 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/local-diagnostic",
178 .get_elem
= bfdd_bfd_sessions_single_hop_stats_local_diagnostic_get_elem
,
182 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/local-multiplier",
184 .get_elem
= bfdd_bfd_sessions_single_hop_stats_local_multiplier_get_elem
,
188 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/remote-discriminator",
190 .get_elem
= bfdd_bfd_sessions_single_hop_stats_remote_discriminator_get_elem
,
194 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/remote-state",
196 .get_elem
= bfdd_bfd_sessions_single_hop_stats_remote_state_get_elem
,
200 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/remote-diagnostic",
202 .get_elem
= bfdd_bfd_sessions_single_hop_stats_remote_diagnostic_get_elem
,
206 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/remote-multiplier",
208 .get_elem
= bfdd_bfd_sessions_single_hop_stats_remote_multiplier_get_elem
,
212 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/negotiated-transmission-interval",
214 .get_elem
= bfdd_bfd_sessions_single_hop_stats_negotiated_transmission_interval_get_elem
,
218 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/negotiated-receive-interval",
220 .get_elem
= bfdd_bfd_sessions_single_hop_stats_negotiated_receive_interval_get_elem
,
224 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/detection-mode",
226 .get_elem
= bfdd_bfd_sessions_single_hop_stats_detection_mode_get_elem
,
230 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/last-down-time",
232 .get_elem
= bfdd_bfd_sessions_single_hop_stats_last_down_time_get_elem
,
236 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/last-up-time",
238 .get_elem
= bfdd_bfd_sessions_single_hop_stats_last_up_time_get_elem
,
242 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/session-down-count",
244 .get_elem
= bfdd_bfd_sessions_single_hop_stats_session_down_count_get_elem
,
248 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/session-up-count",
250 .get_elem
= bfdd_bfd_sessions_single_hop_stats_session_up_count_get_elem
,
254 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/control-packet-input-count",
256 .get_elem
= bfdd_bfd_sessions_single_hop_stats_control_packet_input_count_get_elem
,
260 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/control-packet-output-count",
262 .get_elem
= bfdd_bfd_sessions_single_hop_stats_control_packet_output_count_get_elem
,
266 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/negotiated-echo-transmission-interval",
268 .get_elem
= bfdd_bfd_sessions_single_hop_stats_negotiated_echo_transmission_interval_get_elem
,
272 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/echo-packet-input-count",
274 .get_elem
= bfdd_bfd_sessions_single_hop_stats_echo_packet_input_count_get_elem
,
278 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/single-hop/stats/echo-packet-output-count",
280 .get_elem
= bfdd_bfd_sessions_single_hop_stats_echo_packet_output_count_get_elem
,
284 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop",
286 .create
= bfdd_bfd_sessions_multi_hop_create
,
287 .destroy
= bfdd_bfd_sessions_multi_hop_destroy
,
288 .get_next
= bfdd_bfd_sessions_multi_hop_get_next
,
289 .get_keys
= bfdd_bfd_sessions_multi_hop_get_keys
,
290 .lookup_entry
= bfdd_bfd_sessions_multi_hop_lookup_entry
,
291 .cli_show
= bfd_cli_show_multi_hop_peer
,
292 .cli_show_end
= bfd_cli_show_peer_end
,
296 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/profile",
298 .modify
= bfdd_bfd_sessions_single_hop_profile_modify
,
299 .destroy
= bfdd_bfd_sessions_single_hop_profile_destroy
,
300 .cli_show
= bfd_cli_peer_profile_show
,
304 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/detection-multiplier",
306 .modify
= bfdd_bfd_sessions_single_hop_detection_multiplier_modify
,
307 .cli_show
= bfd_cli_show_mult
,
311 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/desired-transmission-interval",
313 .modify
= bfdd_bfd_sessions_single_hop_desired_transmission_interval_modify
,
314 .cli_show
= bfd_cli_show_tx
,
318 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/required-receive-interval",
320 .modify
= bfdd_bfd_sessions_single_hop_required_receive_interval_modify
,
321 .cli_show
= bfd_cli_show_rx
,
325 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/administrative-down",
327 .modify
= bfdd_bfd_sessions_single_hop_administrative_down_modify
,
328 .cli_show
= bfd_cli_show_shutdown
,
332 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/local-discriminator",
334 .get_elem
= bfdd_bfd_sessions_single_hop_stats_local_discriminator_get_elem
,
338 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/local-state",
340 .get_elem
= bfdd_bfd_sessions_single_hop_stats_local_state_get_elem
,
344 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/local-diagnostic",
346 .get_elem
= bfdd_bfd_sessions_single_hop_stats_local_diagnostic_get_elem
,
350 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/local-multiplier",
352 .get_elem
= bfdd_bfd_sessions_single_hop_stats_local_multiplier_get_elem
,
356 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/remote-discriminator",
358 .get_elem
= bfdd_bfd_sessions_single_hop_stats_remote_discriminator_get_elem
,
362 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/remote-state",
364 .get_elem
= bfdd_bfd_sessions_single_hop_stats_remote_state_get_elem
,
368 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/remote-diagnostic",
370 .get_elem
= bfdd_bfd_sessions_single_hop_stats_remote_diagnostic_get_elem
,
374 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/remote-multiplier",
376 .get_elem
= bfdd_bfd_sessions_single_hop_stats_remote_multiplier_get_elem
,
380 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/negotiated-transmission-interval",
382 .get_elem
= bfdd_bfd_sessions_single_hop_stats_negotiated_transmission_interval_get_elem
,
386 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/negotiated-receive-interval",
388 .get_elem
= bfdd_bfd_sessions_single_hop_stats_negotiated_receive_interval_get_elem
,
392 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/detection-mode",
394 .get_elem
= bfdd_bfd_sessions_single_hop_stats_detection_mode_get_elem
,
398 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/last-down-time",
400 .get_elem
= bfdd_bfd_sessions_single_hop_stats_last_down_time_get_elem
,
404 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/last-up-time",
406 .get_elem
= bfdd_bfd_sessions_single_hop_stats_last_up_time_get_elem
,
410 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/session-down-count",
412 .get_elem
= bfdd_bfd_sessions_single_hop_stats_session_down_count_get_elem
,
416 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/session-up-count",
418 .get_elem
= bfdd_bfd_sessions_single_hop_stats_session_up_count_get_elem
,
422 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/control-packet-input-count",
424 .get_elem
= bfdd_bfd_sessions_single_hop_stats_control_packet_input_count_get_elem
,
428 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/control-packet-output-count",
430 .get_elem
= bfdd_bfd_sessions_single_hop_stats_control_packet_output_count_get_elem
,
434 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/negotiated-echo-transmission-interval",
436 .get_elem
= bfdd_bfd_sessions_single_hop_stats_negotiated_echo_transmission_interval_get_elem
,
440 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/echo-packet-input-count",
442 .get_elem
= bfdd_bfd_sessions_single_hop_stats_echo_packet_input_count_get_elem
,
446 .xpath
= "/frr-bfdd:bfdd/bfd/sessions/multi-hop/stats/echo-packet-output-count",
448 .get_elem
= bfdd_bfd_sessions_single_hop_stats_echo_packet_output_count_get_elem
,