]> git.proxmox.com Git - mirror_frr.git/blob - ripngd/ripng_nb.c
Merge pull request #13177 from mjstapp/fix_ospf_supoort_typo
[mirror_frr.git] / ripngd / ripng_nb.c
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3 * Copyright (C) 2018 NetDEF, Inc.
4 * Renato Westphal
5 */
6
7 #include <zebra.h>
8
9 #include "northbound.h"
10 #include "libfrr.h"
11
12 #include "ripngd/ripng_nb.h"
13
14 /* clang-format off */
15 const struct frr_yang_module_info frr_ripngd_info = {
16 .name = "frr-ripngd",
17 .nodes = {
18 {
19 .xpath = "/frr-ripngd:ripngd/instance",
20 .cbs = {
21 .cli_show = cli_show_router_ripng,
22 .create = ripngd_instance_create,
23 .destroy = ripngd_instance_destroy,
24 .get_keys = ripngd_instance_get_keys,
25 .get_next = ripngd_instance_get_next,
26 .lookup_entry = ripngd_instance_lookup_entry,
27 },
28 },
29 {
30 .xpath = "/frr-ripngd:ripngd/instance/allow-ecmp",
31 .cbs = {
32 .cli_show = cli_show_ripng_allow_ecmp,
33 .modify = ripngd_instance_allow_ecmp_modify,
34 },
35 },
36 {
37 .xpath = "/frr-ripngd:ripngd/instance/default-information-originate",
38 .cbs = {
39 .cli_show = cli_show_ripng_default_information_originate,
40 .modify = ripngd_instance_default_information_originate_modify,
41 },
42 },
43 {
44 .xpath = "/frr-ripngd:ripngd/instance/default-metric",
45 .cbs = {
46 .cli_show = cli_show_ripng_default_metric,
47 .modify = ripngd_instance_default_metric_modify,
48 },
49 },
50 {
51 .xpath = "/frr-ripngd:ripngd/instance/network",
52 .cbs = {
53 .cli_show = cli_show_ripng_network_prefix,
54 .create = ripngd_instance_network_create,
55 .destroy = ripngd_instance_network_destroy,
56 },
57 },
58 {
59 .xpath = "/frr-ripngd:ripngd/instance/interface",
60 .cbs = {
61 .cli_show = cli_show_ripng_network_interface,
62 .create = ripngd_instance_interface_create,
63 .destroy = ripngd_instance_interface_destroy,
64 },
65 },
66 {
67 .xpath = "/frr-ripngd:ripngd/instance/offset-list",
68 .cbs = {
69 .cli_show = cli_show_ripng_offset_list,
70 .create = ripngd_instance_offset_list_create,
71 .destroy = ripngd_instance_offset_list_destroy,
72 },
73 },
74 {
75 .xpath = "/frr-ripngd:ripngd/instance/offset-list/access-list",
76 .cbs = {
77 .modify = ripngd_instance_offset_list_access_list_modify,
78 },
79 },
80 {
81 .xpath = "/frr-ripngd:ripngd/instance/offset-list/metric",
82 .cbs = {
83 .modify = ripngd_instance_offset_list_metric_modify,
84 },
85 },
86 {
87 .xpath = "/frr-ripngd:ripngd/instance/passive-interface",
88 .cbs = {
89 .cli_show = cli_show_ripng_passive_interface,
90 .create = ripngd_instance_passive_interface_create,
91 .destroy = ripngd_instance_passive_interface_destroy,
92 },
93 },
94 {
95 .xpath = "/frr-ripngd:ripngd/instance/redistribute",
96 .cbs = {
97 .apply_finish = ripngd_instance_redistribute_apply_finish,
98 .cli_show = cli_show_ripng_redistribute,
99 .create = ripngd_instance_redistribute_create,
100 .destroy = ripngd_instance_redistribute_destroy,
101 },
102 },
103 {
104 .xpath = "/frr-ripngd:ripngd/instance/redistribute/route-map",
105 .cbs = {
106 .destroy = ripngd_instance_redistribute_route_map_destroy,
107 .modify = ripngd_instance_redistribute_route_map_modify,
108 },
109 },
110 {
111 .xpath = "/frr-ripngd:ripngd/instance/redistribute/metric",
112 .cbs = {
113 .destroy = ripngd_instance_redistribute_metric_destroy,
114 .modify = ripngd_instance_redistribute_metric_modify,
115 },
116 },
117 {
118 .xpath = "/frr-ripngd:ripngd/instance/if-route-maps/if-route-map",
119 .cbs = {
120 .create = ripngd_instance_if_route_maps_if_route_map_create,
121 .destroy = ripngd_instance_if_route_maps_if_route_map_destroy,
122 }
123 },
124 {
125 .xpath = "/frr-ripngd:ripngd/instance/if-route-maps/if-route-map/in-route-map",
126 .cbs = {
127 .modify = ripngd_instance_if_route_maps_if_route_map_in_route_map_modify,
128 .destroy = ripngd_instance_if_route_maps_if_route_map_in_route_map_destroy,
129 }
130 },
131 {
132 .xpath = "/frr-ripngd:ripngd/instance/if-route-maps/if-route-map/out-route-map",
133 .cbs = {
134 .modify = ripngd_instance_if_route_maps_if_route_map_out_route_map_modify,
135 .destroy = ripngd_instance_if_route_maps_if_route_map_out_route_map_destroy,
136 }
137 },
138 {
139 .xpath = "/frr-ripngd:ripngd/instance/static-route",
140 .cbs = {
141 .cli_show = cli_show_ripng_route,
142 .create = ripngd_instance_static_route_create,
143 .destroy = ripngd_instance_static_route_destroy,
144 },
145 },
146 {
147 .xpath = "/frr-ripngd:ripngd/instance/aggregate-address",
148 .cbs = {
149 .cli_show = cli_show_ripng_aggregate_address,
150 .create = ripngd_instance_aggregate_address_create,
151 .destroy = ripngd_instance_aggregate_address_destroy,
152 },
153 },
154 {
155 .xpath = "/frr-ripngd:ripngd/instance/timers",
156 .cbs = {
157 .apply_finish = ripngd_instance_timers_apply_finish,
158 .cli_show = cli_show_ripng_timers,
159 },
160 },
161 {
162 .xpath = "/frr-ripngd:ripngd/instance/timers/flush-interval",
163 .cbs = {
164 .modify = ripngd_instance_timers_flush_interval_modify,
165 },
166 },
167 {
168 .xpath = "/frr-ripngd:ripngd/instance/timers/holddown-interval",
169 .cbs = {
170 .modify = ripngd_instance_timers_holddown_interval_modify,
171 },
172 },
173 {
174 .xpath = "/frr-ripngd:ripngd/instance/timers/update-interval",
175 .cbs = {
176 .modify = ripngd_instance_timers_update_interval_modify,
177 },
178 },
179 {
180 .xpath = "/frr-ripngd:ripngd/instance/state/neighbors/neighbor",
181 .cbs = {
182 .get_keys = ripngd_instance_state_neighbors_neighbor_get_keys,
183 .get_next = ripngd_instance_state_neighbors_neighbor_get_next,
184 .lookup_entry = ripngd_instance_state_neighbors_neighbor_lookup_entry,
185 },
186 },
187 {
188 .xpath = "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/address",
189 .cbs = {
190 .get_elem = ripngd_instance_state_neighbors_neighbor_address_get_elem,
191 },
192 },
193 {
194 .xpath = "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/last-update",
195 .cbs = {
196 .get_elem = ripngd_instance_state_neighbors_neighbor_last_update_get_elem,
197 },
198 },
199 {
200 .xpath = "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/bad-packets-rcvd",
201 .cbs = {
202 .get_elem = ripngd_instance_state_neighbors_neighbor_bad_packets_rcvd_get_elem,
203 },
204 },
205 {
206 .xpath = "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/bad-routes-rcvd",
207 .cbs = {
208 .get_elem = ripngd_instance_state_neighbors_neighbor_bad_routes_rcvd_get_elem,
209 },
210 },
211 {
212 .xpath = "/frr-ripngd:ripngd/instance/state/routes/route",
213 .cbs = {
214 .get_keys = ripngd_instance_state_routes_route_get_keys,
215 .get_next = ripngd_instance_state_routes_route_get_next,
216 .lookup_entry = ripngd_instance_state_routes_route_lookup_entry,
217 },
218 },
219 {
220 .xpath = "/frr-ripngd:ripngd/instance/state/routes/route/prefix",
221 .cbs = {
222 .get_elem = ripngd_instance_state_routes_route_prefix_get_elem,
223 },
224 },
225 {
226 .xpath = "/frr-ripngd:ripngd/instance/state/routes/route/next-hop",
227 .cbs = {
228 .get_elem = ripngd_instance_state_routes_route_next_hop_get_elem,
229 },
230 },
231 {
232 .xpath = "/frr-ripngd:ripngd/instance/state/routes/route/interface",
233 .cbs = {
234 .get_elem = ripngd_instance_state_routes_route_interface_get_elem,
235 },
236 },
237 {
238 .xpath = "/frr-ripngd:ripngd/instance/state/routes/route/metric",
239 .cbs = {
240 .get_elem = ripngd_instance_state_routes_route_metric_get_elem,
241 },
242 },
243 {
244 .xpath = "/frr-ripngd:clear-ripng-route",
245 .cbs = {
246 .rpc = clear_ripng_route_rpc,
247 },
248 },
249 {
250 .xpath = "/frr-interface:lib/interface/frr-ripngd:ripng/split-horizon",
251 .cbs = {
252 .cli_show = cli_show_ipv6_ripng_split_horizon,
253 .modify = lib_interface_ripng_split_horizon_modify,
254 },
255 },
256 {
257 .xpath = NULL,
258 },
259 }
260 };