]>
Commit | Line | Data |
---|---|---|
acddc0ed | 1 | // SPDX-License-Identifier: GPL-2.0-or-later |
ce45ffe7 CS |
2 | /* |
3 | * Copyright (C) 2020 Cumulus Networks, Inc. | |
4 | * Chirag Shah | |
ce45ffe7 CS |
5 | */ |
6 | ||
7 | #include <zebra.h> | |
8 | #include "northbound.h" | |
9 | #include "libfrr.h" | |
10 | #include "zebra_nb.h" | |
11 | ||
12 | /* clang-format off */ | |
13 | const struct frr_yang_module_info frr_zebra_info = { | |
14 | .name = "frr-zebra", | |
15 | .nodes = { | |
16 | { | |
17 | .xpath = "/frr-zebra:zebra/mcast-rpf-lookup", | |
18 | .cbs = { | |
19 | .modify = zebra_mcast_rpf_lookup_modify, | |
20 | } | |
21 | }, | |
22 | { | |
23 | .xpath = "/frr-zebra:zebra/ip-forwarding", | |
24 | .cbs = { | |
25 | .modify = zebra_ip_forwarding_modify, | |
26 | .destroy = zebra_ip_forwarding_destroy, | |
27 | } | |
28 | }, | |
29 | { | |
30 | .xpath = "/frr-zebra:zebra/ipv6-forwarding", | |
31 | .cbs = { | |
32 | .modify = zebra_ipv6_forwarding_modify, | |
33 | .destroy = zebra_ipv6_forwarding_destroy, | |
34 | } | |
35 | }, | |
36 | { | |
37 | .xpath = "/frr-zebra:zebra/workqueue-hold-timer", | |
38 | .cbs = { | |
39 | .modify = zebra_workqueue_hold_timer_modify, | |
40 | } | |
41 | }, | |
42 | { | |
43 | .xpath = "/frr-zebra:zebra/zapi-packets", | |
44 | .cbs = { | |
45 | .modify = zebra_zapi_packets_modify, | |
46 | } | |
47 | }, | |
48 | { | |
49 | .xpath = "/frr-zebra:zebra/import-kernel-table/table-id", | |
50 | .cbs = { | |
51 | .modify = zebra_import_kernel_table_table_id_modify, | |
52 | .destroy = zebra_import_kernel_table_table_id_destroy, | |
53 | } | |
54 | }, | |
55 | { | |
56 | .xpath = "/frr-zebra:zebra/import-kernel-table/distance", | |
57 | .cbs = { | |
58 | .modify = zebra_import_kernel_table_distance_modify, | |
59 | } | |
60 | }, | |
61 | { | |
62 | .xpath = "/frr-zebra:zebra/import-kernel-table/route-map", | |
63 | .cbs = { | |
64 | .modify = zebra_import_kernel_table_route_map_modify, | |
65 | .destroy = zebra_import_kernel_table_route_map_destroy, | |
66 | } | |
67 | }, | |
68 | { | |
69 | .xpath = "/frr-zebra:zebra/allow-external-route-update", | |
70 | .cbs = { | |
71 | .create = zebra_allow_external_route_update_create, | |
72 | .destroy = zebra_allow_external_route_update_destroy, | |
73 | } | |
74 | }, | |
75 | { | |
76 | .xpath = "/frr-zebra:zebra/dplane-queue-limit", | |
77 | .cbs = { | |
78 | .modify = zebra_dplane_queue_limit_modify, | |
79 | } | |
80 | }, | |
ce45ffe7 CS |
81 | { |
82 | .xpath = "/frr-zebra:zebra/debugs/debug-events", | |
83 | .cbs = { | |
84 | .modify = zebra_debugs_debug_events_modify, | |
85 | .destroy = zebra_debugs_debug_events_destroy, | |
86 | } | |
87 | }, | |
88 | { | |
89 | .xpath = "/frr-zebra:zebra/debugs/debug-zapi-send", | |
90 | .cbs = { | |
91 | .modify = zebra_debugs_debug_zapi_send_modify, | |
92 | .destroy = zebra_debugs_debug_zapi_send_destroy, | |
93 | } | |
94 | }, | |
95 | { | |
96 | .xpath = "/frr-zebra:zebra/debugs/debug-zapi-recv", | |
97 | .cbs = { | |
98 | .modify = zebra_debugs_debug_zapi_recv_modify, | |
99 | .destroy = zebra_debugs_debug_zapi_recv_destroy, | |
100 | } | |
101 | }, | |
102 | { | |
103 | .xpath = "/frr-zebra:zebra/debugs/debug-zapi-detail", | |
104 | .cbs = { | |
105 | .modify = zebra_debugs_debug_zapi_detail_modify, | |
106 | .destroy = zebra_debugs_debug_zapi_detail_destroy, | |
107 | } | |
108 | }, | |
109 | { | |
110 | .xpath = "/frr-zebra:zebra/debugs/debug-kernel", | |
111 | .cbs = { | |
112 | .modify = zebra_debugs_debug_kernel_modify, | |
113 | .destroy = zebra_debugs_debug_kernel_destroy, | |
114 | } | |
115 | }, | |
116 | { | |
117 | .xpath = "/frr-zebra:zebra/debugs/debug-kernel-msg-send", | |
118 | .cbs = { | |
119 | .modify = zebra_debugs_debug_kernel_msg_send_modify, | |
120 | .destroy = zebra_debugs_debug_kernel_msg_send_destroy, | |
121 | } | |
122 | }, | |
123 | { | |
124 | .xpath = "/frr-zebra:zebra/debugs/debug-kernel-msg-recv", | |
125 | .cbs = { | |
126 | .modify = zebra_debugs_debug_kernel_msg_recv_modify, | |
127 | .destroy = zebra_debugs_debug_kernel_msg_recv_destroy, | |
128 | } | |
129 | }, | |
130 | { | |
131 | .xpath = "/frr-zebra:zebra/debugs/debug-rib", | |
132 | .cbs = { | |
133 | .modify = zebra_debugs_debug_rib_modify, | |
134 | .destroy = zebra_debugs_debug_rib_destroy, | |
135 | } | |
136 | }, | |
137 | { | |
138 | .xpath = "/frr-zebra:zebra/debugs/debug-rib-detail", | |
139 | .cbs = { | |
140 | .modify = zebra_debugs_debug_rib_detail_modify, | |
141 | .destroy = zebra_debugs_debug_rib_detail_destroy, | |
142 | } | |
143 | }, | |
144 | { | |
145 | .xpath = "/frr-zebra:zebra/debugs/debug-fpm", | |
146 | .cbs = { | |
147 | .modify = zebra_debugs_debug_fpm_modify, | |
148 | .destroy = zebra_debugs_debug_fpm_destroy, | |
149 | } | |
150 | }, | |
151 | { | |
152 | .xpath = "/frr-zebra:zebra/debugs/debug-nht", | |
153 | .cbs = { | |
154 | .modify = zebra_debugs_debug_nht_modify, | |
155 | .destroy = zebra_debugs_debug_nht_destroy, | |
156 | } | |
157 | }, | |
158 | { | |
159 | .xpath = "/frr-zebra:zebra/debugs/debug-nht-detail", | |
160 | .cbs = { | |
161 | .modify = zebra_debugs_debug_nht_detail_modify, | |
162 | .destroy = zebra_debugs_debug_nht_detail_destroy, | |
163 | } | |
164 | }, | |
165 | { | |
166 | .xpath = "/frr-zebra:zebra/debugs/debug-mpls", | |
167 | .cbs = { | |
168 | .modify = zebra_debugs_debug_mpls_modify, | |
169 | .destroy = zebra_debugs_debug_mpls_destroy, | |
170 | } | |
171 | }, | |
172 | { | |
173 | .xpath = "/frr-zebra:zebra/debugs/debug-vxlan", | |
174 | .cbs = { | |
175 | .modify = zebra_debugs_debug_vxlan_modify, | |
176 | .destroy = zebra_debugs_debug_vxlan_destroy, | |
177 | } | |
178 | }, | |
179 | { | |
180 | .xpath = "/frr-zebra:zebra/debugs/debug-pw", | |
181 | .cbs = { | |
182 | .modify = zebra_debugs_debug_pw_modify, | |
183 | .destroy = zebra_debugs_debug_pw_destroy, | |
184 | } | |
185 | }, | |
186 | { | |
187 | .xpath = "/frr-zebra:zebra/debugs/debug-dplane", | |
188 | .cbs = { | |
189 | .modify = zebra_debugs_debug_dplane_modify, | |
190 | .destroy = zebra_debugs_debug_dplane_destroy, | |
191 | } | |
192 | }, | |
193 | { | |
194 | .xpath = "/frr-zebra:zebra/debugs/debug-dplane-detail", | |
195 | .cbs = { | |
196 | .modify = zebra_debugs_debug_dplane_detail_modify, | |
197 | .destroy = zebra_debugs_debug_dplane_detail_destroy, | |
198 | } | |
199 | }, | |
200 | { | |
201 | .xpath = "/frr-zebra:zebra/debugs/debug-mlag", | |
202 | .cbs = { | |
203 | .modify = zebra_debugs_debug_mlag_modify, | |
204 | .destroy = zebra_debugs_debug_mlag_destroy, | |
205 | } | |
206 | }, | |
207 | { | |
208 | .xpath = "/frr-zebra:get-route-information", | |
209 | .cbs = { | |
210 | .rpc = get_route_information_rpc, | |
211 | } | |
212 | }, | |
213 | { | |
214 | .xpath = "/frr-zebra:get-v6-mroute-info", | |
215 | .cbs = { | |
216 | .rpc = get_v6_mroute_info_rpc, | |
217 | } | |
218 | }, | |
219 | { | |
220 | .xpath = "/frr-zebra:get-vrf-info", | |
221 | .cbs = { | |
222 | .rpc = get_vrf_info_rpc, | |
223 | } | |
224 | }, | |
225 | { | |
226 | .xpath = "/frr-zebra:get-vrf-vni-info", | |
227 | .cbs = { | |
228 | .rpc = get_vrf_vni_info_rpc, | |
229 | } | |
230 | }, | |
231 | { | |
232 | .xpath = "/frr-zebra:get-evpn-info", | |
233 | .cbs = { | |
234 | .rpc = get_evpn_info_rpc, | |
235 | } | |
236 | }, | |
237 | { | |
238 | .xpath = "/frr-zebra:get-vni-info", | |
239 | .cbs = { | |
240 | .rpc = get_vni_info_rpc, | |
241 | } | |
242 | }, | |
243 | { | |
244 | .xpath = "/frr-zebra:get-evpn-vni-rmac", | |
245 | .cbs = { | |
246 | .rpc = get_evpn_vni_rmac_rpc, | |
247 | } | |
248 | }, | |
249 | { | |
250 | .xpath = "/frr-zebra:get-evpn-vni-nexthops", | |
251 | .cbs = { | |
252 | .rpc = get_evpn_vni_nexthops_rpc, | |
253 | } | |
254 | }, | |
255 | { | |
256 | .xpath = "/frr-zebra:clear-evpn-dup-addr", | |
257 | .cbs = { | |
258 | .rpc = clear_evpn_dup_addr_rpc, | |
259 | } | |
260 | }, | |
261 | { | |
262 | .xpath = "/frr-zebra:get-evpn-macs", | |
263 | .cbs = { | |
264 | .rpc = get_evpn_macs_rpc, | |
265 | } | |
266 | }, | |
267 | { | |
268 | .xpath = "/frr-zebra:get-evpn-arp-cache", | |
269 | .cbs = { | |
270 | .rpc = get_evpn_arp_cache_rpc, | |
271 | } | |
272 | }, | |
273 | { | |
274 | .xpath = "/frr-zebra:get-pbr-ipset", | |
275 | .cbs = { | |
276 | .rpc = get_pbr_ipset_rpc, | |
277 | } | |
278 | }, | |
279 | { | |
280 | .xpath = "/frr-zebra:get-pbr-iptable", | |
281 | .cbs = { | |
282 | .rpc = get_pbr_iptable_rpc, | |
283 | } | |
284 | }, | |
285 | { | |
286 | .xpath = "/frr-zebra:get-debugs", | |
287 | .cbs = { | |
288 | .rpc = get_debugs_rpc, | |
289 | } | |
290 | }, | |
291 | { | |
b00f3e4b | 292 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/ip-addrs", |
ce45ffe7 | 293 | .cbs = { |
b00f3e4b CS |
294 | .create = lib_interface_zebra_ip_addrs_create, |
295 | .destroy = lib_interface_zebra_ip_addrs_destroy, | |
ce45ffe7 CS |
296 | } |
297 | }, | |
298 | { | |
b00f3e4b | 299 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/ip-addrs/label", |
ce45ffe7 | 300 | .cbs = { |
b00f3e4b CS |
301 | .modify = lib_interface_zebra_ip_addrs_label_modify, |
302 | .destroy = lib_interface_zebra_ip_addrs_label_destroy, | |
ce45ffe7 CS |
303 | } |
304 | }, | |
305 | { | |
b00f3e4b | 306 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/ip-addrs/ip4-peer", |
ce45ffe7 | 307 | .cbs = { |
b00f3e4b CS |
308 | .modify = lib_interface_zebra_ip_addrs_ip4_peer_modify, |
309 | .destroy = lib_interface_zebra_ip_addrs_ip4_peer_destroy, | |
ce45ffe7 CS |
310 | } |
311 | }, | |
312 | { | |
313 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/multicast", | |
314 | .cbs = { | |
315 | .modify = lib_interface_zebra_multicast_modify, | |
316 | .destroy = lib_interface_zebra_multicast_destroy, | |
317 | } | |
318 | }, | |
319 | { | |
320 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/link-detect", | |
321 | .cbs = { | |
322 | .modify = lib_interface_zebra_link_detect_modify, | |
323 | .destroy = lib_interface_zebra_link_detect_destroy, | |
324 | } | |
325 | }, | |
326 | { | |
327 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/shutdown", | |
328 | .cbs = { | |
329 | .modify = lib_interface_zebra_shutdown_modify, | |
330 | .destroy = lib_interface_zebra_shutdown_destroy, | |
331 | } | |
332 | }, | |
333 | { | |
334 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/bandwidth", | |
335 | .cbs = { | |
336 | .modify = lib_interface_zebra_bandwidth_modify, | |
337 | .destroy = lib_interface_zebra_bandwidth_destroy, | |
338 | } | |
339 | }, | |
b00f3e4b CS |
340 | { |
341 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/state/up-count", | |
342 | .cbs = { | |
343 | .get_elem = lib_interface_zebra_state_up_count_get_elem, | |
344 | } | |
345 | }, | |
346 | { | |
347 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/state/down-count", | |
348 | .cbs = { | |
349 | .get_elem = lib_interface_zebra_state_down_count_get_elem, | |
350 | } | |
351 | }, | |
352 | { | |
353 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/state/zif-type", | |
354 | .cbs = { | |
355 | .get_elem = lib_interface_zebra_state_zif_type_get_elem, | |
356 | } | |
357 | }, | |
358 | { | |
359 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/state/ptm-status", | |
360 | .cbs = { | |
361 | .get_elem = lib_interface_zebra_state_ptm_status_get_elem, | |
362 | } | |
363 | }, | |
364 | { | |
365 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/state/vlan-id", | |
366 | .cbs = { | |
367 | .get_elem = lib_interface_zebra_state_vlan_id_get_elem, | |
368 | } | |
369 | }, | |
370 | { | |
371 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/state/vni-id", | |
372 | .cbs = { | |
373 | .get_elem = lib_interface_zebra_state_vni_id_get_elem, | |
374 | } | |
375 | }, | |
376 | { | |
377 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/state/remote-vtep", | |
378 | .cbs = { | |
379 | .get_elem = lib_interface_zebra_state_remote_vtep_get_elem, | |
380 | } | |
381 | }, | |
382 | { | |
383 | .xpath = "/frr-interface:lib/interface/frr-zebra:zebra/state/mcast-group", | |
384 | .cbs = { | |
385 | .get_elem = lib_interface_zebra_state_mcast_group_get_elem, | |
386 | } | |
387 | }, | |
ce45ffe7 | 388 | { |
56a88b9e | 389 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib", |
ce45ffe7 | 390 | .cbs = { |
56a88b9e CS |
391 | .get_next = lib_vrf_zebra_ribs_rib_get_next, |
392 | .get_keys = lib_vrf_zebra_ribs_rib_get_keys, | |
393 | .lookup_entry = lib_vrf_zebra_ribs_rib_lookup_entry, | |
ce45ffe7 CS |
394 | } |
395 | }, | |
6c380957 IR |
396 | { |
397 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/afi-safi-name", | |
398 | .cbs = { | |
399 | .get_elem = lib_vrf_zebra_ribs_rib_afi_safi_name_get_elem, | |
400 | } | |
401 | }, | |
402 | { | |
403 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/table-id", | |
404 | .cbs = { | |
405 | .get_elem = lib_vrf_zebra_ribs_rib_table_id_get_elem, | |
406 | } | |
407 | }, | |
ce45ffe7 | 408 | { |
56a88b9e | 409 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route", |
ce45ffe7 | 410 | .cbs = { |
56a88b9e CS |
411 | .get_next = lib_vrf_zebra_ribs_rib_route_get_next, |
412 | .get_keys = lib_vrf_zebra_ribs_rib_route_get_keys, | |
413 | .lookup_entry = lib_vrf_zebra_ribs_rib_route_lookup_entry, | |
ce45ffe7 CS |
414 | } |
415 | }, | |
416 | { | |
56a88b9e | 417 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/prefix", |
ce45ffe7 | 418 | .cbs = { |
56a88b9e | 419 | .get_elem = lib_vrf_zebra_ribs_rib_route_prefix_get_elem, |
ce45ffe7 CS |
420 | } |
421 | }, | |
422 | { | |
56a88b9e | 423 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry", |
ce45ffe7 | 424 | .cbs = { |
56a88b9e CS |
425 | .get_next = lib_vrf_zebra_ribs_rib_route_route_entry_get_next, |
426 | .get_keys = lib_vrf_zebra_ribs_rib_route_route_entry_get_keys, | |
427 | .lookup_entry = lib_vrf_zebra_ribs_rib_route_route_entry_lookup_entry, | |
ce45ffe7 CS |
428 | } |
429 | }, | |
430 | { | |
56a88b9e | 431 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/protocol", |
ce45ffe7 | 432 | .cbs = { |
56a88b9e | 433 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_protocol_get_elem, |
ce45ffe7 CS |
434 | } |
435 | }, | |
436 | { | |
56a88b9e | 437 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/instance", |
ce45ffe7 | 438 | .cbs = { |
56a88b9e | 439 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_instance_get_elem, |
ce45ffe7 CS |
440 | } |
441 | }, | |
442 | { | |
56a88b9e | 443 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/distance", |
ce45ffe7 | 444 | .cbs = { |
56a88b9e | 445 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_distance_get_elem, |
ce45ffe7 CS |
446 | } |
447 | }, | |
448 | { | |
56a88b9e | 449 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/metric", |
ce45ffe7 | 450 | .cbs = { |
56a88b9e | 451 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_metric_get_elem, |
ce45ffe7 CS |
452 | } |
453 | }, | |
454 | { | |
56a88b9e | 455 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/tag", |
ce45ffe7 | 456 | .cbs = { |
56a88b9e | 457 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_tag_get_elem, |
ce45ffe7 CS |
458 | } |
459 | }, | |
460 | { | |
56a88b9e | 461 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/selected", |
ce45ffe7 | 462 | .cbs = { |
56a88b9e | 463 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_selected_get_elem, |
ce45ffe7 CS |
464 | } |
465 | }, | |
466 | { | |
56a88b9e | 467 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/installed", |
ce45ffe7 | 468 | .cbs = { |
56a88b9e | 469 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_installed_get_elem, |
ce45ffe7 CS |
470 | } |
471 | }, | |
472 | { | |
56a88b9e | 473 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/failed", |
ce45ffe7 | 474 | .cbs = { |
56a88b9e | 475 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_failed_get_elem, |
ce45ffe7 CS |
476 | } |
477 | }, | |
478 | { | |
56a88b9e | 479 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/queued", |
ce45ffe7 | 480 | .cbs = { |
56a88b9e | 481 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_queued_get_elem, |
ce45ffe7 CS |
482 | } |
483 | }, | |
484 | { | |
56a88b9e | 485 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/internal-flags", |
ce45ffe7 | 486 | .cbs = { |
56a88b9e | 487 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_internal_flags_get_elem, |
ce45ffe7 CS |
488 | } |
489 | }, | |
490 | { | |
56a88b9e | 491 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/internal-status", |
ce45ffe7 | 492 | .cbs = { |
56a88b9e | 493 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_internal_status_get_elem, |
ce45ffe7 CS |
494 | } |
495 | }, | |
496 | { | |
56a88b9e | 497 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/uptime", |
ce45ffe7 | 498 | .cbs = { |
56a88b9e | 499 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_uptime_get_elem, |
ce45ffe7 CS |
500 | } |
501 | }, | |
502 | { | |
2b2282eb | 503 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/id", |
ce45ffe7 | 504 | .cbs = { |
2b2282eb | 505 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_id_get_elem, |
ce45ffe7 CS |
506 | } |
507 | }, | |
508 | { | |
2b2282eb | 509 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop", |
ce45ffe7 | 510 | .cbs = { |
2b2282eb CS |
511 | .get_next = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_get_next, |
512 | .get_keys = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_get_keys, | |
513 | .lookup_entry = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_lookup_entry, | |
ce45ffe7 CS |
514 | } |
515 | }, | |
516 | { | |
2b2282eb | 517 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/nh-type", |
ce45ffe7 | 518 | .cbs = { |
2b2282eb | 519 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_nh_type_get_elem, |
ce45ffe7 CS |
520 | } |
521 | }, | |
522 | { | |
2b2282eb | 523 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/vrf", |
ce45ffe7 | 524 | .cbs = { |
2b2282eb | 525 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_vrf_get_elem, |
ce45ffe7 CS |
526 | } |
527 | }, | |
528 | { | |
2b2282eb | 529 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/gateway", |
ce45ffe7 | 530 | .cbs = { |
2b2282eb | 531 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_gateway_get_elem, |
ce45ffe7 CS |
532 | } |
533 | }, | |
534 | { | |
2b2282eb | 535 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/interface", |
ce45ffe7 | 536 | .cbs = { |
2b2282eb | 537 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_interface_get_elem, |
ce45ffe7 CS |
538 | } |
539 | }, | |
540 | { | |
2b2282eb | 541 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/bh-type", |
ce45ffe7 | 542 | .cbs = { |
2b2282eb | 543 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_bh_type_get_elem, |
ce45ffe7 CS |
544 | } |
545 | }, | |
546 | { | |
2b2282eb | 547 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/onlink", |
ce45ffe7 | 548 | .cbs = { |
2b2282eb | 549 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_onlink_get_elem, |
ce45ffe7 CS |
550 | } |
551 | }, | |
065276ae SM |
552 | { |
553 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/srte-color", | |
554 | .cbs = { | |
555 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_color_get_elem, | |
556 | } | |
557 | }, | |
ce45ffe7 | 558 | { |
2b2282eb | 559 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/mpls-label-stack/entry", |
ce45ffe7 | 560 | .cbs = { |
2b2282eb CS |
561 | .get_next = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_get_next, |
562 | .get_keys = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_get_keys, | |
563 | .lookup_entry = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_lookup_entry, | |
ce45ffe7 CS |
564 | } |
565 | }, | |
566 | { | |
2b2282eb | 567 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/mpls-label-stack/entry/id", |
ce45ffe7 | 568 | .cbs = { |
2b2282eb | 569 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_id_get_elem, |
ce45ffe7 CS |
570 | } |
571 | }, | |
572 | { | |
2b2282eb | 573 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/mpls-label-stack/entry/label", |
ce45ffe7 | 574 | .cbs = { |
2b2282eb | 575 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_label_get_elem, |
ce45ffe7 CS |
576 | } |
577 | }, | |
578 | { | |
2b2282eb | 579 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/mpls-label-stack/entry/ttl", |
ce45ffe7 | 580 | .cbs = { |
2b2282eb | 581 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_ttl_get_elem, |
ce45ffe7 CS |
582 | } |
583 | }, | |
584 | { | |
2b2282eb | 585 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/mpls-label-stack/entry/traffic-class", |
ce45ffe7 | 586 | .cbs = { |
2b2282eb | 587 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_traffic_class_get_elem, |
ce45ffe7 CS |
588 | } |
589 | }, | |
590 | { | |
2b2282eb | 591 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/duplicate", |
ce45ffe7 | 592 | .cbs = { |
2b2282eb | 593 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_duplicate_get_elem, |
ce45ffe7 CS |
594 | } |
595 | }, | |
596 | { | |
2b2282eb | 597 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/recursive", |
ce45ffe7 | 598 | .cbs = { |
2b2282eb | 599 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_recursive_get_elem, |
ce45ffe7 CS |
600 | } |
601 | }, | |
602 | { | |
2b2282eb | 603 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/active", |
ce45ffe7 | 604 | .cbs = { |
2b2282eb | 605 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_active_get_elem, |
ce45ffe7 CS |
606 | } |
607 | }, | |
608 | { | |
2b2282eb | 609 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/fib", |
ce45ffe7 | 610 | .cbs = { |
2b2282eb | 611 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_fib_get_elem, |
ce45ffe7 CS |
612 | } |
613 | }, | |
614 | { | |
2b2282eb | 615 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/weight", |
ce45ffe7 | 616 | .cbs = { |
2b2282eb | 617 | .get_elem = lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_weight_get_elem, |
ce45ffe7 CS |
618 | } |
619 | }, | |
e2bcfa39 CS |
620 | { |
621 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/l3vni-id", | |
622 | .cbs = { | |
623 | .modify = lib_vrf_zebra_l3vni_id_modify, | |
624 | .destroy = lib_vrf_zebra_l3vni_id_destroy, | |
625 | } | |
626 | }, | |
627 | { | |
628 | .xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/prefix-only", | |
629 | .cbs = { | |
630 | .modify = lib_vrf_zebra_prefix_only_modify, | |
631 | } | |
632 | }, | |
ce45ffe7 CS |
633 | { |
634 | .xpath = NULL, | |
635 | }, | |
636 | } | |
637 | }; |