1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright (C) 2018 NetDEF, Inc.
9 #include "northbound.h"
12 #include "ripngd/ripng_nb.h"
13 #include "lib/if_rmap.h"
15 /* clang-format off */
16 const struct frr_yang_module_info frr_ripngd_info
= {
20 .xpath
= "/frr-ripngd:ripngd/instance",
22 .cli_show
= cli_show_router_ripng
,
23 .create
= ripngd_instance_create
,
24 .destroy
= ripngd_instance_destroy
,
25 .get_keys
= ripngd_instance_get_keys
,
26 .get_next
= ripngd_instance_get_next
,
27 .lookup_entry
= ripngd_instance_lookup_entry
,
31 .xpath
= "/frr-ripngd:ripngd/instance/allow-ecmp",
33 .cli_show
= cli_show_ripng_allow_ecmp
,
34 .modify
= ripngd_instance_allow_ecmp_modify
,
38 .xpath
= "/frr-ripngd:ripngd/instance/default-information-originate",
40 .cli_show
= cli_show_ripng_default_information_originate
,
41 .modify
= ripngd_instance_default_information_originate_modify
,
45 .xpath
= "/frr-ripngd:ripngd/instance/default-metric",
47 .cli_show
= cli_show_ripng_default_metric
,
48 .modify
= ripngd_instance_default_metric_modify
,
52 .xpath
= "/frr-ripngd:ripngd/instance/network",
54 .cli_show
= cli_show_ripng_network_prefix
,
55 .create
= ripngd_instance_network_create
,
56 .destroy
= ripngd_instance_network_destroy
,
60 .xpath
= "/frr-ripngd:ripngd/instance/interface",
62 .cli_show
= cli_show_ripng_network_interface
,
63 .create
= ripngd_instance_interface_create
,
64 .destroy
= ripngd_instance_interface_destroy
,
68 .xpath
= "/frr-ripngd:ripngd/instance/offset-list",
70 .cli_show
= cli_show_ripng_offset_list
,
71 .create
= ripngd_instance_offset_list_create
,
72 .destroy
= ripngd_instance_offset_list_destroy
,
76 .xpath
= "/frr-ripngd:ripngd/instance/offset-list/access-list",
78 .modify
= ripngd_instance_offset_list_access_list_modify
,
82 .xpath
= "/frr-ripngd:ripngd/instance/offset-list/metric",
84 .modify
= ripngd_instance_offset_list_metric_modify
,
88 .xpath
= "/frr-ripngd:ripngd/instance/passive-interface",
90 .cli_show
= cli_show_ripng_passive_interface
,
91 .create
= ripngd_instance_passive_interface_create
,
92 .destroy
= ripngd_instance_passive_interface_destroy
,
96 .xpath
= "/frr-ripngd:ripngd/instance/redistribute",
98 .apply_finish
= ripngd_instance_redistribute_apply_finish
,
99 .cli_show
= cli_show_ripng_redistribute
,
100 .create
= ripngd_instance_redistribute_create
,
101 .destroy
= ripngd_instance_redistribute_destroy
,
105 .xpath
= "/frr-ripngd:ripngd/instance/redistribute/route-map",
107 .destroy
= ripngd_instance_redistribute_route_map_destroy
,
108 .modify
= ripngd_instance_redistribute_route_map_modify
,
112 .xpath
= "/frr-ripngd:ripngd/instance/redistribute/metric",
114 .destroy
= ripngd_instance_redistribute_metric_destroy
,
115 .modify
= ripngd_instance_redistribute_metric_modify
,
119 .xpath
= "/frr-ripngd:ripngd/instance/if-route-maps/if-route-map",
121 .create
= ripngd_instance_if_route_maps_if_route_map_create
,
122 .destroy
= ripngd_instance_if_route_maps_if_route_map_destroy
,
123 .cli_show
= cli_show_if_route_map
,
127 .xpath
= "/frr-ripngd:ripngd/instance/if-route-maps/if-route-map/in-route-map",
129 .modify
= ripngd_instance_if_route_maps_if_route_map_in_route_map_modify
,
130 .destroy
= ripngd_instance_if_route_maps_if_route_map_in_route_map_destroy
,
134 .xpath
= "/frr-ripngd:ripngd/instance/if-route-maps/if-route-map/out-route-map",
136 .modify
= ripngd_instance_if_route_maps_if_route_map_out_route_map_modify
,
137 .destroy
= ripngd_instance_if_route_maps_if_route_map_out_route_map_destroy
,
141 .xpath
= "/frr-ripngd:ripngd/instance/static-route",
143 .cli_show
= cli_show_ripng_route
,
144 .create
= ripngd_instance_static_route_create
,
145 .destroy
= ripngd_instance_static_route_destroy
,
149 .xpath
= "/frr-ripngd:ripngd/instance/aggregate-address",
151 .cli_show
= cli_show_ripng_aggregate_address
,
152 .create
= ripngd_instance_aggregate_address_create
,
153 .destroy
= ripngd_instance_aggregate_address_destroy
,
157 .xpath
= "/frr-ripngd:ripngd/instance/timers",
159 .apply_finish
= ripngd_instance_timers_apply_finish
,
160 .cli_show
= cli_show_ripng_timers
,
164 .xpath
= "/frr-ripngd:ripngd/instance/timers/flush-interval",
166 .modify
= ripngd_instance_timers_flush_interval_modify
,
170 .xpath
= "/frr-ripngd:ripngd/instance/timers/holddown-interval",
172 .modify
= ripngd_instance_timers_holddown_interval_modify
,
176 .xpath
= "/frr-ripngd:ripngd/instance/timers/update-interval",
178 .modify
= ripngd_instance_timers_update_interval_modify
,
182 .xpath
= "/frr-ripngd:ripngd/instance/state/neighbors/neighbor",
184 .get_keys
= ripngd_instance_state_neighbors_neighbor_get_keys
,
185 .get_next
= ripngd_instance_state_neighbors_neighbor_get_next
,
186 .lookup_entry
= ripngd_instance_state_neighbors_neighbor_lookup_entry
,
190 .xpath
= "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/address",
192 .get_elem
= ripngd_instance_state_neighbors_neighbor_address_get_elem
,
196 .xpath
= "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/last-update",
198 .get_elem
= ripngd_instance_state_neighbors_neighbor_last_update_get_elem
,
202 .xpath
= "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/bad-packets-rcvd",
204 .get_elem
= ripngd_instance_state_neighbors_neighbor_bad_packets_rcvd_get_elem
,
208 .xpath
= "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/bad-routes-rcvd",
210 .get_elem
= ripngd_instance_state_neighbors_neighbor_bad_routes_rcvd_get_elem
,
214 .xpath
= "/frr-ripngd:ripngd/instance/state/routes/route",
216 .get_keys
= ripngd_instance_state_routes_route_get_keys
,
217 .get_next
= ripngd_instance_state_routes_route_get_next
,
218 .lookup_entry
= ripngd_instance_state_routes_route_lookup_entry
,
222 .xpath
= "/frr-ripngd:ripngd/instance/state/routes/route/prefix",
224 .get_elem
= ripngd_instance_state_routes_route_prefix_get_elem
,
228 .xpath
= "/frr-ripngd:ripngd/instance/state/routes/route/next-hop",
230 .get_elem
= ripngd_instance_state_routes_route_next_hop_get_elem
,
234 .xpath
= "/frr-ripngd:ripngd/instance/state/routes/route/interface",
236 .get_elem
= ripngd_instance_state_routes_route_interface_get_elem
,
240 .xpath
= "/frr-ripngd:ripngd/instance/state/routes/route/metric",
242 .get_elem
= ripngd_instance_state_routes_route_metric_get_elem
,
246 .xpath
= "/frr-ripngd:clear-ripng-route",
248 .rpc
= clear_ripng_route_rpc
,
252 .xpath
= "/frr-interface:lib/interface/frr-ripngd:ripng/split-horizon",
254 .cli_show
= cli_show_ipv6_ripng_split_horizon
,
255 .modify
= lib_interface_ripng_split_horizon_modify
,