]> git.proxmox.com Git - mirror_frr.git/blame - ripd/rip_nb.c
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / ripd / rip_nb.c
CommitLineData
acddc0ed 1// SPDX-License-Identifier: GPL-2.0-or-later
f80ec39e
RW
2/*
3 * Copyright (C) 2018 NetDEF, Inc.
4 * Renato Westphal
f80ec39e
RW
5 */
6
7#include <zebra.h>
8
9#include "northbound.h"
10#include "libfrr.h"
11
12#include "ripd/rip_nb.h"
13
14/* clang-format off */
15const struct frr_yang_module_info frr_ripd_info = {
16 .name = "frr-ripd",
17 .nodes = {
18 {
19 .xpath = "/frr-ripd:ripd/instance",
20 .cbs = {
21 .cli_show = cli_show_router_rip,
22 .create = ripd_instance_create,
23 .destroy = ripd_instance_destroy,
24 .get_keys = ripd_instance_get_keys,
25 .get_next = ripd_instance_get_next,
26 .lookup_entry = ripd_instance_lookup_entry,
27 },
28 },
29 {
30 .xpath = "/frr-ripd:ripd/instance/allow-ecmp",
31 .cbs = {
32 .cli_show = cli_show_rip_allow_ecmp,
33 .modify = ripd_instance_allow_ecmp_modify,
34 },
35 },
36 {
37 .xpath = "/frr-ripd:ripd/instance/default-information-originate",
38 .cbs = {
39 .cli_show = cli_show_rip_default_information_originate,
40 .modify = ripd_instance_default_information_originate_modify,
41 },
42 },
43 {
44 .xpath = "/frr-ripd:ripd/instance/default-metric",
45 .cbs = {
46 .cli_show = cli_show_rip_default_metric,
47 .modify = ripd_instance_default_metric_modify,
48 },
49 },
50 {
51 .xpath = "/frr-ripd:ripd/instance/distance/default",
52 .cbs = {
53 .cli_show = cli_show_rip_distance,
54 .modify = ripd_instance_distance_default_modify,
55 },
56 },
57 {
58 .xpath = "/frr-ripd:ripd/instance/distance/source",
59 .cbs = {
60 .cli_show = cli_show_rip_distance_source,
61 .create = ripd_instance_distance_source_create,
62 .destroy = ripd_instance_distance_source_destroy,
63 },
64 },
65 {
66 .xpath = "/frr-ripd:ripd/instance/distance/source/distance",
67 .cbs = {
68 .modify = ripd_instance_distance_source_distance_modify,
69 },
70 },
71 {
72 .xpath = "/frr-ripd:ripd/instance/distance/source/access-list",
73 .cbs = {
74 .destroy = ripd_instance_distance_source_access_list_destroy,
75 .modify = ripd_instance_distance_source_access_list_modify,
76 },
77 },
78 {
79 .xpath = "/frr-ripd:ripd/instance/explicit-neighbor",
80 .cbs = {
81 .cli_show = cli_show_rip_neighbor,
82 .create = ripd_instance_explicit_neighbor_create,
83 .destroy = ripd_instance_explicit_neighbor_destroy,
84 },
85 },
86 {
87 .xpath = "/frr-ripd:ripd/instance/network",
88 .cbs = {
89 .cli_show = cli_show_rip_network_prefix,
90 .create = ripd_instance_network_create,
91 .destroy = ripd_instance_network_destroy,
92 },
93 },
94 {
95 .xpath = "/frr-ripd:ripd/instance/interface",
96 .cbs = {
97 .cli_show = cli_show_rip_network_interface,
98 .create = ripd_instance_interface_create,
99 .destroy = ripd_instance_interface_destroy,
100 },
101 },
102 {
103 .xpath = "/frr-ripd:ripd/instance/offset-list",
104 .cbs = {
105 .cli_show = cli_show_rip_offset_list,
106 .create = ripd_instance_offset_list_create,
107 .destroy = ripd_instance_offset_list_destroy,
108 },
109 },
110 {
111 .xpath = "/frr-ripd:ripd/instance/offset-list/access-list",
112 .cbs = {
113 .modify = ripd_instance_offset_list_access_list_modify,
114 },
115 },
116 {
117 .xpath = "/frr-ripd:ripd/instance/offset-list/metric",
118 .cbs = {
119 .modify = ripd_instance_offset_list_metric_modify,
120 },
121 },
122 {
123 .xpath = "/frr-ripd:ripd/instance/passive-default",
124 .cbs = {
125 .cli_show = cli_show_rip_passive_default,
126 .modify = ripd_instance_passive_default_modify,
127 },
128 },
129 {
130 .xpath = "/frr-ripd:ripd/instance/passive-interface",
131 .cbs = {
132 .cli_show = cli_show_rip_passive_interface,
133 .create = ripd_instance_passive_interface_create,
134 .destroy = ripd_instance_passive_interface_destroy,
135 },
136 },
137 {
138 .xpath = "/frr-ripd:ripd/instance/non-passive-interface",
139 .cbs = {
140 .cli_show = cli_show_rip_non_passive_interface,
141 .create = ripd_instance_non_passive_interface_create,
142 .destroy = ripd_instance_non_passive_interface_destroy,
143 },
144 },
145 {
146 .xpath = "/frr-ripd:ripd/instance/redistribute",
147 .cbs = {
148 .apply_finish = ripd_instance_redistribute_apply_finish,
149 .cli_show = cli_show_rip_redistribute,
150 .create = ripd_instance_redistribute_create,
151 .destroy = ripd_instance_redistribute_destroy,
152 },
153 },
154 {
155 .xpath = "/frr-ripd:ripd/instance/redistribute/route-map",
156 .cbs = {
157 .destroy = ripd_instance_redistribute_route_map_destroy,
158 .modify = ripd_instance_redistribute_route_map_modify,
159 },
160 },
161 {
162 .xpath = "/frr-ripd:ripd/instance/redistribute/metric",
163 .cbs = {
164 .destroy = ripd_instance_redistribute_metric_destroy,
165 .modify = ripd_instance_redistribute_metric_modify,
166 },
167 },
168 {
169 .xpath = "/frr-ripd:ripd/instance/static-route",
170 .cbs = {
171 .cli_show = cli_show_rip_route,
172 .create = ripd_instance_static_route_create,
173 .destroy = ripd_instance_static_route_destroy,
174 },
175 },
176 {
177 .xpath = "/frr-ripd:ripd/instance/timers",
178 .cbs = {
179 .apply_finish = ripd_instance_timers_apply_finish,
180 .cli_show = cli_show_rip_timers,
181 },
182 },
183 {
184 .xpath = "/frr-ripd:ripd/instance/timers/flush-interval",
185 .cbs = {
186 .modify = ripd_instance_timers_flush_interval_modify,
187 },
188 },
189 {
190 .xpath = "/frr-ripd:ripd/instance/timers/holddown-interval",
191 .cbs = {
192 .modify = ripd_instance_timers_holddown_interval_modify,
193 },
194 },
195 {
196 .xpath = "/frr-ripd:ripd/instance/timers/update-interval",
197 .cbs = {
198 .modify = ripd_instance_timers_update_interval_modify,
199 },
200 },
201 {
202 .xpath = "/frr-ripd:ripd/instance/version",
203 .cbs = {
204 .cli_show = cli_show_rip_version,
205 },
206 },
207 {
208 .xpath = "/frr-ripd:ripd/instance/version/receive",
209 .cbs = {
210 .modify = ripd_instance_version_receive_modify,
211 },
212 },
213 {
214 .xpath = "/frr-ripd:ripd/instance/version/send",
215 .cbs = {
216 .modify = ripd_instance_version_send_modify,
217 },
218 },
219 {
220 .xpath = "/frr-interface:lib/interface/frr-ripd:rip/split-horizon",
221 .cbs = {
222 .cli_show = cli_show_ip_rip_split_horizon,
223 .modify = lib_interface_rip_split_horizon_modify,
224 },
225 },
226 {
227 .xpath = "/frr-interface:lib/interface/frr-ripd:rip/v2-broadcast",
228 .cbs = {
229 .cli_show = cli_show_ip_rip_v2_broadcast,
230 .modify = lib_interface_rip_v2_broadcast_modify,
231 },
232 },
233 {
234 .xpath = "/frr-interface:lib/interface/frr-ripd:rip/version-receive",
235 .cbs = {
236 .cli_show = cli_show_ip_rip_receive_version,
237 .modify = lib_interface_rip_version_receive_modify,
238 },
239 },
240 {
241 .xpath = "/frr-interface:lib/interface/frr-ripd:rip/version-send",
242 .cbs = {
243 .cli_show = cli_show_ip_rip_send_version,
244 .modify = lib_interface_rip_version_send_modify,
245 },
246 },
247 {
248 .xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-scheme",
249 .cbs = {
250 .cli_show = cli_show_ip_rip_authentication_scheme,
251 },
252 },
253 {
254 .xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-scheme/mode",
255 .cbs = {
256 .modify = lib_interface_rip_authentication_scheme_mode_modify,
257 },
258 },
259 {
260 .xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-scheme/md5-auth-length",
261 .cbs = {
262 .destroy = lib_interface_rip_authentication_scheme_md5_auth_length_destroy,
263 .modify = lib_interface_rip_authentication_scheme_md5_auth_length_modify,
264 },
265 },
266 {
267 .xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-password",
268 .cbs = {
269 .cli_show = cli_show_ip_rip_authentication_string,
270 .destroy = lib_interface_rip_authentication_password_destroy,
271 .modify = lib_interface_rip_authentication_password_modify,
272 },
273 },
274 {
275 .xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-key-chain",
276 .cbs = {
277 .cli_show = cli_show_ip_rip_authentication_key_chain,
278 .destroy = lib_interface_rip_authentication_key_chain_destroy,
279 .modify = lib_interface_rip_authentication_key_chain_modify,
280 },
281 },
282 {
283 .xpath = "/frr-ripd:ripd/instance/state/neighbors/neighbor",
284 .cbs = {
285 .get_keys = ripd_instance_state_neighbors_neighbor_get_keys,
286 .get_next = ripd_instance_state_neighbors_neighbor_get_next,
287 .lookup_entry = ripd_instance_state_neighbors_neighbor_lookup_entry,
288 },
289 },
290 {
291 .xpath = "/frr-ripd:ripd/instance/state/neighbors/neighbor/address",
292 .cbs = {
293 .get_elem = ripd_instance_state_neighbors_neighbor_address_get_elem,
294 },
295 },
296 {
297 .xpath = "/frr-ripd:ripd/instance/state/neighbors/neighbor/last-update",
298 .cbs = {
299 .get_elem = ripd_instance_state_neighbors_neighbor_last_update_get_elem,
300 },
301 },
302 {
303 .xpath = "/frr-ripd:ripd/instance/state/neighbors/neighbor/bad-packets-rcvd",
304 .cbs = {
305 .get_elem = ripd_instance_state_neighbors_neighbor_bad_packets_rcvd_get_elem,
306 },
307 },
308 {
309 .xpath = "/frr-ripd:ripd/instance/state/neighbors/neighbor/bad-routes-rcvd",
310 .cbs = {
311 .get_elem = ripd_instance_state_neighbors_neighbor_bad_routes_rcvd_get_elem,
312 },
313 },
314 {
315 .xpath = "/frr-ripd:ripd/instance/state/routes/route",
316 .cbs = {
317 .get_keys = ripd_instance_state_routes_route_get_keys,
318 .get_next = ripd_instance_state_routes_route_get_next,
319 .lookup_entry = ripd_instance_state_routes_route_lookup_entry,
320 },
321 },
322 {
323 .xpath = "/frr-ripd:ripd/instance/state/routes/route/prefix",
324 .cbs = {
325 .get_elem = ripd_instance_state_routes_route_prefix_get_elem,
326 },
327 },
328 {
329 .xpath = "/frr-ripd:ripd/instance/state/routes/route/next-hop",
330 .cbs = {
331 .get_elem = ripd_instance_state_routes_route_next_hop_get_elem,
332 },
333 },
334 {
335 .xpath = "/frr-ripd:ripd/instance/state/routes/route/interface",
336 .cbs = {
337 .get_elem = ripd_instance_state_routes_route_interface_get_elem,
338 },
339 },
340 {
341 .xpath = "/frr-ripd:ripd/instance/state/routes/route/metric",
342 .cbs = {
343 .get_elem = ripd_instance_state_routes_route_metric_get_elem,
344 },
345 },
346 {
347 .xpath = "/frr-ripd:clear-rip-route",
348 .cbs = {
349 .rpc = clear_rip_route_rpc,
350 },
351 },
352 {
353 .xpath = NULL,
354 },
355 }
356};