]> git.proxmox.com Git - mirror_frr.git/blame - ripngd/ripng_nb.c
Merge pull request #12780 from opensourcerouting/spdx-license-id
[mirror_frr.git] / ripngd / ripng_nb.c
CommitLineData
acddc0ed 1// SPDX-License-Identifier: GPL-2.0-or-later
ca473936
RW
2/*
3 * Copyright (C) 2018 NetDEF, Inc.
4 * Renato Westphal
ca473936
RW
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 */
15const 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/static-route",
119 .cbs = {
120 .cli_show = cli_show_ripng_route,
121 .create = ripngd_instance_static_route_create,
122 .destroy = ripngd_instance_static_route_destroy,
123 },
124 },
125 {
126 .xpath = "/frr-ripngd:ripngd/instance/aggregate-address",
127 .cbs = {
128 .cli_show = cli_show_ripng_aggregate_address,
129 .create = ripngd_instance_aggregate_address_create,
130 .destroy = ripngd_instance_aggregate_address_destroy,
131 },
132 },
133 {
134 .xpath = "/frr-ripngd:ripngd/instance/timers",
135 .cbs = {
136 .apply_finish = ripngd_instance_timers_apply_finish,
137 .cli_show = cli_show_ripng_timers,
138 },
139 },
140 {
141 .xpath = "/frr-ripngd:ripngd/instance/timers/flush-interval",
142 .cbs = {
143 .modify = ripngd_instance_timers_flush_interval_modify,
144 },
145 },
146 {
147 .xpath = "/frr-ripngd:ripngd/instance/timers/holddown-interval",
148 .cbs = {
149 .modify = ripngd_instance_timers_holddown_interval_modify,
150 },
151 },
152 {
153 .xpath = "/frr-ripngd:ripngd/instance/timers/update-interval",
154 .cbs = {
155 .modify = ripngd_instance_timers_update_interval_modify,
156 },
157 },
158 {
159 .xpath = "/frr-ripngd:ripngd/instance/state/neighbors/neighbor",
160 .cbs = {
161 .get_keys = ripngd_instance_state_neighbors_neighbor_get_keys,
162 .get_next = ripngd_instance_state_neighbors_neighbor_get_next,
163 .lookup_entry = ripngd_instance_state_neighbors_neighbor_lookup_entry,
164 },
165 },
166 {
167 .xpath = "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/address",
168 .cbs = {
169 .get_elem = ripngd_instance_state_neighbors_neighbor_address_get_elem,
170 },
171 },
172 {
173 .xpath = "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/last-update",
174 .cbs = {
175 .get_elem = ripngd_instance_state_neighbors_neighbor_last_update_get_elem,
176 },
177 },
178 {
179 .xpath = "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/bad-packets-rcvd",
180 .cbs = {
181 .get_elem = ripngd_instance_state_neighbors_neighbor_bad_packets_rcvd_get_elem,
182 },
183 },
184 {
185 .xpath = "/frr-ripngd:ripngd/instance/state/neighbors/neighbor/bad-routes-rcvd",
186 .cbs = {
187 .get_elem = ripngd_instance_state_neighbors_neighbor_bad_routes_rcvd_get_elem,
188 },
189 },
190 {
191 .xpath = "/frr-ripngd:ripngd/instance/state/routes/route",
192 .cbs = {
193 .get_keys = ripngd_instance_state_routes_route_get_keys,
194 .get_next = ripngd_instance_state_routes_route_get_next,
195 .lookup_entry = ripngd_instance_state_routes_route_lookup_entry,
196 },
197 },
198 {
199 .xpath = "/frr-ripngd:ripngd/instance/state/routes/route/prefix",
200 .cbs = {
201 .get_elem = ripngd_instance_state_routes_route_prefix_get_elem,
202 },
203 },
204 {
205 .xpath = "/frr-ripngd:ripngd/instance/state/routes/route/next-hop",
206 .cbs = {
207 .get_elem = ripngd_instance_state_routes_route_next_hop_get_elem,
208 },
209 },
210 {
211 .xpath = "/frr-ripngd:ripngd/instance/state/routes/route/interface",
212 .cbs = {
213 .get_elem = ripngd_instance_state_routes_route_interface_get_elem,
214 },
215 },
216 {
217 .xpath = "/frr-ripngd:ripngd/instance/state/routes/route/metric",
218 .cbs = {
219 .get_elem = ripngd_instance_state_routes_route_metric_get_elem,
220 },
221 },
222 {
223 .xpath = "/frr-ripngd:clear-ripng-route",
224 .cbs = {
225 .rpc = clear_ripng_route_rpc,
226 },
227 },
228 {
229 .xpath = "/frr-interface:lib/interface/frr-ripngd:ripng/split-horizon",
230 .cbs = {
231 .cli_show = cli_show_ipv6_ripng_split_horizon,
232 .modify = lib_interface_ripng_split_horizon_modify,
233 },
234 },
235 {
236 .xpath = NULL,
237 },
238 }
239};