1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright (C) 2020 Cumulus Networks, Inc.
9 #include "northbound.h"
13 /* clang-format off */
14 const struct frr_yang_module_info frr_zebra_info
= {
18 .xpath
= "/frr-zebra:zebra/mcast-rpf-lookup",
20 .modify
= zebra_mcast_rpf_lookup_modify
,
24 .xpath
= "/frr-zebra:zebra/ip-forwarding",
26 .modify
= zebra_ip_forwarding_modify
,
27 .destroy
= zebra_ip_forwarding_destroy
,
31 .xpath
= "/frr-zebra:zebra/ipv6-forwarding",
33 .modify
= zebra_ipv6_forwarding_modify
,
34 .destroy
= zebra_ipv6_forwarding_destroy
,
38 .xpath
= "/frr-zebra:zebra/workqueue-hold-timer",
40 .modify
= zebra_workqueue_hold_timer_modify
,
44 .xpath
= "/frr-zebra:zebra/zapi-packets",
46 .modify
= zebra_zapi_packets_modify
,
50 .xpath
= "/frr-zebra:zebra/import-kernel-table/table-id",
52 .modify
= zebra_import_kernel_table_table_id_modify
,
53 .destroy
= zebra_import_kernel_table_table_id_destroy
,
57 .xpath
= "/frr-zebra:zebra/import-kernel-table/distance",
59 .modify
= zebra_import_kernel_table_distance_modify
,
63 .xpath
= "/frr-zebra:zebra/import-kernel-table/route-map",
65 .modify
= zebra_import_kernel_table_route_map_modify
,
66 .destroy
= zebra_import_kernel_table_route_map_destroy
,
70 .xpath
= "/frr-zebra:zebra/allow-external-route-update",
72 .create
= zebra_allow_external_route_update_create
,
73 .destroy
= zebra_allow_external_route_update_destroy
,
77 .xpath
= "/frr-zebra:zebra/dplane-queue-limit",
79 .modify
= zebra_dplane_queue_limit_modify
,
83 .xpath
= "/frr-zebra:zebra/debugs/debug-events",
85 .modify
= zebra_debugs_debug_events_modify
,
86 .destroy
= zebra_debugs_debug_events_destroy
,
90 .xpath
= "/frr-zebra:zebra/debugs/debug-zapi-send",
92 .modify
= zebra_debugs_debug_zapi_send_modify
,
93 .destroy
= zebra_debugs_debug_zapi_send_destroy
,
97 .xpath
= "/frr-zebra:zebra/debugs/debug-zapi-recv",
99 .modify
= zebra_debugs_debug_zapi_recv_modify
,
100 .destroy
= zebra_debugs_debug_zapi_recv_destroy
,
104 .xpath
= "/frr-zebra:zebra/debugs/debug-zapi-detail",
106 .modify
= zebra_debugs_debug_zapi_detail_modify
,
107 .destroy
= zebra_debugs_debug_zapi_detail_destroy
,
111 .xpath
= "/frr-zebra:zebra/debugs/debug-kernel",
113 .modify
= zebra_debugs_debug_kernel_modify
,
114 .destroy
= zebra_debugs_debug_kernel_destroy
,
118 .xpath
= "/frr-zebra:zebra/debugs/debug-kernel-msg-send",
120 .modify
= zebra_debugs_debug_kernel_msg_send_modify
,
121 .destroy
= zebra_debugs_debug_kernel_msg_send_destroy
,
125 .xpath
= "/frr-zebra:zebra/debugs/debug-kernel-msg-recv",
127 .modify
= zebra_debugs_debug_kernel_msg_recv_modify
,
128 .destroy
= zebra_debugs_debug_kernel_msg_recv_destroy
,
132 .xpath
= "/frr-zebra:zebra/debugs/debug-rib",
134 .modify
= zebra_debugs_debug_rib_modify
,
135 .destroy
= zebra_debugs_debug_rib_destroy
,
139 .xpath
= "/frr-zebra:zebra/debugs/debug-rib-detail",
141 .modify
= zebra_debugs_debug_rib_detail_modify
,
142 .destroy
= zebra_debugs_debug_rib_detail_destroy
,
146 .xpath
= "/frr-zebra:zebra/debugs/debug-fpm",
148 .modify
= zebra_debugs_debug_fpm_modify
,
149 .destroy
= zebra_debugs_debug_fpm_destroy
,
153 .xpath
= "/frr-zebra:zebra/debugs/debug-nht",
155 .modify
= zebra_debugs_debug_nht_modify
,
156 .destroy
= zebra_debugs_debug_nht_destroy
,
160 .xpath
= "/frr-zebra:zebra/debugs/debug-nht-detail",
162 .modify
= zebra_debugs_debug_nht_detail_modify
,
163 .destroy
= zebra_debugs_debug_nht_detail_destroy
,
167 .xpath
= "/frr-zebra:zebra/debugs/debug-mpls",
169 .modify
= zebra_debugs_debug_mpls_modify
,
170 .destroy
= zebra_debugs_debug_mpls_destroy
,
174 .xpath
= "/frr-zebra:zebra/debugs/debug-vxlan",
176 .modify
= zebra_debugs_debug_vxlan_modify
,
177 .destroy
= zebra_debugs_debug_vxlan_destroy
,
181 .xpath
= "/frr-zebra:zebra/debugs/debug-pw",
183 .modify
= zebra_debugs_debug_pw_modify
,
184 .destroy
= zebra_debugs_debug_pw_destroy
,
188 .xpath
= "/frr-zebra:zebra/debugs/debug-dplane",
190 .modify
= zebra_debugs_debug_dplane_modify
,
191 .destroy
= zebra_debugs_debug_dplane_destroy
,
195 .xpath
= "/frr-zebra:zebra/debugs/debug-dplane-detail",
197 .modify
= zebra_debugs_debug_dplane_detail_modify
,
198 .destroy
= zebra_debugs_debug_dplane_detail_destroy
,
202 .xpath
= "/frr-zebra:zebra/debugs/debug-mlag",
204 .modify
= zebra_debugs_debug_mlag_modify
,
205 .destroy
= zebra_debugs_debug_mlag_destroy
,
209 .xpath
= "/frr-zebra:get-route-information",
211 .rpc
= get_route_information_rpc
,
215 .xpath
= "/frr-zebra:get-v6-mroute-info",
217 .rpc
= get_v6_mroute_info_rpc
,
221 .xpath
= "/frr-zebra:get-vrf-info",
223 .rpc
= get_vrf_info_rpc
,
227 .xpath
= "/frr-zebra:get-vrf-vni-info",
229 .rpc
= get_vrf_vni_info_rpc
,
233 .xpath
= "/frr-zebra:get-evpn-info",
235 .rpc
= get_evpn_info_rpc
,
239 .xpath
= "/frr-zebra:get-vni-info",
241 .rpc
= get_vni_info_rpc
,
245 .xpath
= "/frr-zebra:get-evpn-vni-rmac",
247 .rpc
= get_evpn_vni_rmac_rpc
,
251 .xpath
= "/frr-zebra:get-evpn-vni-nexthops",
253 .rpc
= get_evpn_vni_nexthops_rpc
,
257 .xpath
= "/frr-zebra:clear-evpn-dup-addr",
259 .rpc
= clear_evpn_dup_addr_rpc
,
263 .xpath
= "/frr-zebra:get-evpn-macs",
265 .rpc
= get_evpn_macs_rpc
,
269 .xpath
= "/frr-zebra:get-evpn-arp-cache",
271 .rpc
= get_evpn_arp_cache_rpc
,
275 .xpath
= "/frr-zebra:get-pbr-ipset",
277 .rpc
= get_pbr_ipset_rpc
,
281 .xpath
= "/frr-zebra:get-pbr-iptable",
283 .rpc
= get_pbr_iptable_rpc
,
287 .xpath
= "/frr-zebra:get-debugs",
289 .rpc
= get_debugs_rpc
,
293 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/ip-addrs",
295 .create
= lib_interface_zebra_ip_addrs_create
,
296 .destroy
= lib_interface_zebra_ip_addrs_destroy
,
300 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/ip-addrs/label",
302 .modify
= lib_interface_zebra_ip_addrs_label_modify
,
303 .destroy
= lib_interface_zebra_ip_addrs_label_destroy
,
307 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/ip-addrs/ip4-peer",
309 .modify
= lib_interface_zebra_ip_addrs_ip4_peer_modify
,
310 .destroy
= lib_interface_zebra_ip_addrs_ip4_peer_destroy
,
314 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/multicast",
316 .modify
= lib_interface_zebra_multicast_modify
,
317 .destroy
= lib_interface_zebra_multicast_destroy
,
321 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/link-detect",
323 .modify
= lib_interface_zebra_link_detect_modify
,
324 .destroy
= lib_interface_zebra_link_detect_destroy
,
328 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/shutdown",
330 .modify
= lib_interface_zebra_shutdown_modify
,
331 .destroy
= lib_interface_zebra_shutdown_destroy
,
335 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/bandwidth",
337 .modify
= lib_interface_zebra_bandwidth_modify
,
338 .destroy
= lib_interface_zebra_bandwidth_destroy
,
342 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/bandwidth",
344 .modify
= lib_interface_zebra_bandwidth_modify
,
345 .destroy
= lib_interface_zebra_bandwidth_destroy
,
349 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/link-params/legacy-admin-group",
351 .modify
= lib_interface_zebra_legacy_admin_group_modify
,
352 .destroy
= lib_interface_zebra_legacy_admin_group_destroy
,
353 .cli_show
= cli_show_legacy_admin_group
,
357 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/link-params/affinities",
359 .cli_show
= cli_show_affinity
,
363 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/link-params/affinities/affinity",
365 .create
= lib_interface_zebra_affinity_create
,
366 .destroy
= lib_interface_zebra_affinity_destroy
,
370 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/link-params/affinity-mode",
372 .modify
= lib_interface_zebra_affinity_mode_modify
,
373 .cli_show
= cli_show_affinity_mode
,
377 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/state/up-count",
379 .get_elem
= lib_interface_zebra_state_up_count_get_elem
,
383 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/state/down-count",
385 .get_elem
= lib_interface_zebra_state_down_count_get_elem
,
389 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/state/zif-type",
391 .get_elem
= lib_interface_zebra_state_zif_type_get_elem
,
395 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/state/ptm-status",
397 .get_elem
= lib_interface_zebra_state_ptm_status_get_elem
,
401 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/state/vlan-id",
403 .get_elem
= lib_interface_zebra_state_vlan_id_get_elem
,
407 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/state/vni-id",
409 .get_elem
= lib_interface_zebra_state_vni_id_get_elem
,
413 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/state/remote-vtep",
415 .get_elem
= lib_interface_zebra_state_remote_vtep_get_elem
,
419 .xpath
= "/frr-interface:lib/interface/frr-zebra:zebra/state/mcast-group",
421 .get_elem
= lib_interface_zebra_state_mcast_group_get_elem
,
425 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib",
427 .get_next
= lib_vrf_zebra_ribs_rib_get_next
,
428 .get_keys
= lib_vrf_zebra_ribs_rib_get_keys
,
429 .lookup_entry
= lib_vrf_zebra_ribs_rib_lookup_entry
,
433 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/afi-safi-name",
435 .get_elem
= lib_vrf_zebra_ribs_rib_afi_safi_name_get_elem
,
439 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/table-id",
441 .get_elem
= lib_vrf_zebra_ribs_rib_table_id_get_elem
,
445 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route",
447 .get_next
= lib_vrf_zebra_ribs_rib_route_get_next
,
448 .get_keys
= lib_vrf_zebra_ribs_rib_route_get_keys
,
449 .lookup_entry
= lib_vrf_zebra_ribs_rib_route_lookup_entry
,
453 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/prefix",
455 .get_elem
= lib_vrf_zebra_ribs_rib_route_prefix_get_elem
,
459 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry",
461 .get_next
= lib_vrf_zebra_ribs_rib_route_route_entry_get_next
,
462 .get_keys
= lib_vrf_zebra_ribs_rib_route_route_entry_get_keys
,
463 .lookup_entry
= lib_vrf_zebra_ribs_rib_route_route_entry_lookup_entry
,
467 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/protocol",
469 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_protocol_get_elem
,
473 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/instance",
475 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_instance_get_elem
,
479 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/distance",
481 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_distance_get_elem
,
485 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/metric",
487 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_metric_get_elem
,
491 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/tag",
493 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_tag_get_elem
,
497 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/selected",
499 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_selected_get_elem
,
503 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/installed",
505 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_installed_get_elem
,
509 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/failed",
511 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_failed_get_elem
,
515 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/queued",
517 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_queued_get_elem
,
521 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/internal-flags",
523 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_internal_flags_get_elem
,
527 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/internal-status",
529 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_internal_status_get_elem
,
533 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/uptime",
535 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_uptime_get_elem
,
539 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/id",
541 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_id_get_elem
,
545 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop",
547 .get_next
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_get_next
,
548 .get_keys
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_get_keys
,
549 .lookup_entry
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_lookup_entry
,
553 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/nh-type",
555 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_nh_type_get_elem
,
559 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/vrf",
561 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_vrf_get_elem
,
565 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/gateway",
567 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_gateway_get_elem
,
571 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/interface",
573 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_interface_get_elem
,
577 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/bh-type",
579 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_bh_type_get_elem
,
583 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/onlink",
585 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_onlink_get_elem
,
589 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/srte-color",
591 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_color_get_elem
,
595 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/mpls-label-stack/entry",
597 .get_next
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_get_next
,
598 .get_keys
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_get_keys
,
599 .lookup_entry
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_lookup_entry
,
603 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/mpls-label-stack/entry/id",
605 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_id_get_elem
,
609 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/mpls-label-stack/entry/label",
611 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_label_get_elem
,
615 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/mpls-label-stack/entry/ttl",
617 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_ttl_get_elem
,
621 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/mpls-label-stack/entry/traffic-class",
623 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_traffic_class_get_elem
,
627 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/duplicate",
629 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_duplicate_get_elem
,
633 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/recursive",
635 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_recursive_get_elem
,
639 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/active",
641 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_active_get_elem
,
645 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/fib",
647 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_fib_get_elem
,
651 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop/weight",
653 .get_elem
= lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_weight_get_elem
,
657 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/l3vni-id",
659 .modify
= lib_vrf_zebra_l3vni_id_modify
,
660 .destroy
= lib_vrf_zebra_l3vni_id_destroy
,
664 .xpath
= "/frr-vrf:lib/vrf/frr-zebra:zebra/prefix-only",
666 .modify
= lib_vrf_zebra_prefix_only_modify
,