2 * Copyright (C) 2020 VmWare
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the Free
7 * Software Foundation; either version 2 of the License, or (at your option)
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 * You should have received a copy of the GNU General Public License along
16 * with this program; see the file COPYING; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 #include "northbound.h"
25 #include "pimd/pim_nb.h"
27 /* clang-format off */
28 const struct frr_yang_module_info frr_pim_info
= {
32 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family",
34 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_create
,
35 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_destroy
,
39 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ecmp",
41 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_modify
,
45 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ecmp-rebalance",
47 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_rebalance_modify
,
51 .xpath
= "/frr-pim:pim/address-family/join-prune-interval",
53 .modify
= pim_address_family_join_prune_interval_modify
,
57 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/keep-alive-timer",
59 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_keep_alive_timer_modify
,
63 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/rp-keep-alive-timer",
65 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_keep_alive_timer_modify
,
69 .xpath
= "/frr-pim:pim/address-family",
71 .create
= pim_address_family_create
,
72 .destroy
= pim_address_family_destroy
,
76 .xpath
= "/frr-pim:pim/address-family/packets",
78 .modify
= pim_address_family_packets_modify
,
82 .xpath
= "/frr-pim:pim/address-family/register-suppress-time",
84 .modify
= pim_address_family_register_suppress_time_modify
,
88 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/send-v6-secondary",
90 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_send_v6_secondary_modify
,
91 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_send_v6_secondary_destroy
,
95 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/spt-switchover",
97 .apply_finish
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_apply_finish
,
101 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/spt-switchover/spt-action",
103 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_spt_action_modify
,
107 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/spt-switchover/spt-infinity-prefix-list",
109 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_spt_infinity_prefix_list_modify
,
110 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_spt_infinity_prefix_list_destroy
,
114 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ssm-prefix-list",
116 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_prefix_list_modify
,
117 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_prefix_list_destroy
,
121 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ssm-pingd-source-ip",
123 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_pingd_source_ip_create
,
124 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_pingd_source_ip_destroy
,
128 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp/hold-time",
130 .modify
= pim_msdp_hold_time_modify
,
134 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp/keep-alive",
136 .modify
= pim_msdp_keep_alive_modify
,
140 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp/connection-retry",
142 .modify
= pim_msdp_connection_retry_modify
,
146 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp-mesh-groups",
148 .create
= pim_msdp_mesh_group_create
,
149 .destroy
= pim_msdp_mesh_group_destroy
,
153 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp-mesh-groups/source",
155 .modify
= pim_msdp_mesh_group_source_modify
,
156 .destroy
= pim_msdp_mesh_group_source_destroy
,
160 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp-mesh-groups/members",
162 .create
= pim_msdp_mesh_group_members_create
,
163 .destroy
= pim_msdp_mesh_group_members_destroy
,
167 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp-peer",
169 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_msdp_peer_create
,
170 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_msdp_peer_destroy
,
174 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp-peer/source-ip",
176 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_msdp_peer_source_ip_modify
,
180 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mlag",
182 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_create
,
183 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_destroy
,
184 .apply_finish
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_apply_finish
,
188 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mlag/peerlink-rif",
190 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_peerlink_rif_modify
,
191 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_peerlink_rif_destroy
,
195 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mlag/reg-address",
197 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_reg_address_modify
,
198 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_reg_address_destroy
,
202 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mlag/my-role",
204 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_my_role_modify
,
208 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mlag/peer-state",
210 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_peer_state_modify
,
214 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/register-accept-list",
216 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_modify
,
217 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_destroy
,
221 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family",
223 .create
= lib_interface_pim_address_family_create
,
224 .destroy
= lib_interface_pim_address_family_destroy
,
228 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/pim-enable",
230 .modify
= lib_interface_pim_address_family_pim_enable_modify
,
234 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/dr-priority",
236 .modify
= lib_interface_pim_address_family_dr_priority_modify
,
240 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/hello-interval",
242 .modify
= lib_interface_pim_address_family_hello_interval_modify
,
246 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/hello-holdtime",
248 .modify
= lib_interface_pim_address_family_hello_holdtime_modify
,
249 .destroy
= lib_interface_pim_address_family_hello_holdtime_destroy
,
253 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd",
255 .create
= lib_interface_pim_address_family_bfd_create
,
256 .destroy
= lib_interface_pim_address_family_bfd_destroy
,
257 .apply_finish
= lib_interface_pim_address_family_bfd_apply_finish
,
261 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/min-rx-interval",
263 .modify
= lib_interface_pim_address_family_bfd_min_rx_interval_modify
,
267 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/min-tx-interval",
269 .modify
= lib_interface_pim_address_family_bfd_min_tx_interval_modify
,
273 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/detect_mult",
275 .modify
= lib_interface_pim_address_family_bfd_detect_mult_modify
,
279 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/profile",
281 .modify
= lib_interface_pim_address_family_bfd_profile_modify
,
282 .destroy
= lib_interface_pim_address_family_bfd_profile_destroy
,
286 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bsm",
288 .modify
= lib_interface_pim_address_family_bsm_modify
,
292 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/unicast-bsm",
294 .modify
= lib_interface_pim_address_family_unicast_bsm_modify
,
298 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/active-active",
300 .modify
= lib_interface_pim_address_family_active_active_modify
,
304 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/use-source",
306 .modify
= lib_interface_pim_address_family_use_source_modify
,
307 .destroy
= lib_interface_pim_address_family_use_source_destroy
,
311 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/multicast-boundary-oil",
313 .modify
= lib_interface_pim_address_family_multicast_boundary_oil_modify
,
314 .destroy
= lib_interface_pim_address_family_multicast_boundary_oil_destroy
,
318 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/mroute",
320 .create
= lib_interface_pim_address_family_mroute_create
,
321 .destroy
= lib_interface_pim_address_family_mroute_destroy
,
325 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/mroute/oif",
327 .modify
= lib_interface_pim_address_family_mroute_oif_modify
,
328 .destroy
= lib_interface_pim_address_family_mroute_oif_destroy
,
337 /* clang-format off */
338 const struct frr_yang_module_info frr_pim_rp_info
= {
339 .name
= "frr-pim-rp",
342 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/frr-pim-rp:rp/static-rp/rp-list",
344 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_create
,
345 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_destroy
,
349 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/frr-pim-rp:rp/static-rp/rp-list/group-list",
351 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_group_list_create
,
352 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_group_list_destroy
,
356 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/frr-pim-rp:rp/static-rp/rp-list/prefix-list",
358 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_prefix_list_modify
,
359 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_prefix_list_destroy
,
368 /* clang-format off */
369 const struct frr_yang_module_info frr_gmp_info
= {
373 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family",
375 .create
= lib_interface_gmp_address_family_create
,
376 .destroy
= lib_interface_gmp_address_family_destroy
,
380 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/enable",
382 .modify
= lib_interface_gmp_address_family_enable_modify
,
386 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/igmp-version",
388 .modify
= lib_interface_gmp_address_family_igmp_version_modify
,
389 .destroy
= lib_interface_gmp_address_family_igmp_version_destroy
,
393 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/mld-version",
395 .modify
= lib_interface_gmp_address_family_mld_version_modify
,
396 .destroy
= lib_interface_gmp_address_family_mld_version_destroy
,
400 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/query-interval",
402 .modify
= lib_interface_gmp_address_family_query_interval_modify
,
406 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/query-max-response-time",
408 .modify
= lib_interface_gmp_address_family_query_max_response_time_modify
,
412 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/last-member-query-interval",
414 .modify
= lib_interface_gmp_address_family_last_member_query_interval_modify
,
418 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/robustness-variable",
420 .modify
= lib_interface_gmp_address_family_robustness_variable_modify
,
424 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/static-group",
426 .create
= lib_interface_gmp_address_family_static_group_create
,
427 .destroy
= lib_interface_gmp_address_family_static_group_destroy
,