1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright (C) 2020 VmWare
9 #include "northbound.h"
12 #include "pimd/pim_nb.h"
14 /* clang-format off */
15 const struct frr_yang_module_info frr_pim_info
= {
19 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family",
21 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_create
,
22 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_destroy
,
26 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ecmp",
28 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_modify
,
32 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ecmp-rebalance",
34 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_rebalance_modify
,
38 .xpath
= "/frr-pim:pim/address-family/join-prune-interval",
40 .modify
= pim_address_family_join_prune_interval_modify
,
44 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/keep-alive-timer",
46 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_keep_alive_timer_modify
,
50 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/rp-keep-alive-timer",
52 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_keep_alive_timer_modify
,
56 .xpath
= "/frr-pim:pim/address-family",
58 .create
= pim_address_family_create
,
59 .destroy
= pim_address_family_destroy
,
63 .xpath
= "/frr-pim:pim/address-family/packets",
65 .modify
= pim_address_family_packets_modify
,
69 .xpath
= "/frr-pim:pim/address-family/register-suppress-time",
71 .modify
= pim_address_family_register_suppress_time_modify
,
75 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/send-v6-secondary",
77 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_send_v6_secondary_modify
,
78 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_send_v6_secondary_destroy
,
82 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/spt-switchover",
84 .apply_finish
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_apply_finish
,
88 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/spt-switchover/spt-action",
90 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_spt_action_modify
,
94 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/spt-switchover/spt-infinity-prefix-list",
96 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_spt_infinity_prefix_list_modify
,
97 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_spt_infinity_prefix_list_destroy
,
101 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ssm-prefix-list",
103 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_prefix_list_modify
,
104 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_prefix_list_destroy
,
108 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ssm-pingd-source-ip",
110 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_pingd_source_ip_create
,
111 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_pingd_source_ip_destroy
,
115 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp/hold-time",
117 .modify
= pim_msdp_hold_time_modify
,
121 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp/keep-alive",
123 .modify
= pim_msdp_keep_alive_modify
,
127 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp/connection-retry",
129 .modify
= pim_msdp_connection_retry_modify
,
133 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp-mesh-groups",
135 .create
= pim_msdp_mesh_group_create
,
136 .destroy
= pim_msdp_mesh_group_destroy
,
140 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp-mesh-groups/source",
142 .modify
= pim_msdp_mesh_group_source_modify
,
143 .destroy
= pim_msdp_mesh_group_source_destroy
,
147 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp-mesh-groups/members",
149 .create
= pim_msdp_mesh_group_members_create
,
150 .destroy
= pim_msdp_mesh_group_members_destroy
,
154 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp-peer",
156 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_msdp_peer_create
,
157 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_msdp_peer_destroy
,
161 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp-peer/source-ip",
163 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_msdp_peer_source_ip_modify
,
167 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mlag",
169 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_create
,
170 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_destroy
,
171 .apply_finish
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_apply_finish
,
175 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mlag/peerlink-rif",
177 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_peerlink_rif_modify
,
178 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_peerlink_rif_destroy
,
182 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mlag/reg-address",
184 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_reg_address_modify
,
185 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_reg_address_destroy
,
189 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mlag/my-role",
191 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_my_role_modify
,
195 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mlag/peer-state",
197 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_peer_state_modify
,
201 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/register-accept-list",
203 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_modify
,
204 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_destroy
,
208 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family",
210 .create
= lib_interface_pim_address_family_create
,
211 .destroy
= lib_interface_pim_address_family_destroy
,
215 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/pim-enable",
217 .modify
= lib_interface_pim_address_family_pim_enable_modify
,
221 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/pim-passive-enable",
223 .modify
= lib_interface_pim_address_family_pim_passive_enable_modify
,
227 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/dr-priority",
229 .modify
= lib_interface_pim_address_family_dr_priority_modify
,
233 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/hello-interval",
235 .modify
= lib_interface_pim_address_family_hello_interval_modify
,
239 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/hello-holdtime",
241 .modify
= lib_interface_pim_address_family_hello_holdtime_modify
,
242 .destroy
= lib_interface_pim_address_family_hello_holdtime_destroy
,
246 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd",
248 .create
= lib_interface_pim_address_family_bfd_create
,
249 .destroy
= lib_interface_pim_address_family_bfd_destroy
,
250 .apply_finish
= lib_interface_pim_address_family_bfd_apply_finish
,
254 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/min-rx-interval",
256 .modify
= lib_interface_pim_address_family_bfd_min_rx_interval_modify
,
260 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/min-tx-interval",
262 .modify
= lib_interface_pim_address_family_bfd_min_tx_interval_modify
,
266 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/detect_mult",
268 .modify
= lib_interface_pim_address_family_bfd_detect_mult_modify
,
272 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/profile",
274 .modify
= lib_interface_pim_address_family_bfd_profile_modify
,
275 .destroy
= lib_interface_pim_address_family_bfd_profile_destroy
,
279 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/bsm",
281 .modify
= lib_interface_pim_address_family_bsm_modify
,
285 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/unicast-bsm",
287 .modify
= lib_interface_pim_address_family_unicast_bsm_modify
,
291 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/active-active",
293 .modify
= lib_interface_pim_address_family_active_active_modify
,
297 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/use-source",
299 .modify
= lib_interface_pim_address_family_use_source_modify
,
300 .destroy
= lib_interface_pim_address_family_use_source_destroy
,
304 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/multicast-boundary-oil",
306 .modify
= lib_interface_pim_address_family_multicast_boundary_oil_modify
,
307 .destroy
= lib_interface_pim_address_family_multicast_boundary_oil_destroy
,
311 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/mroute",
313 .create
= lib_interface_pim_address_family_mroute_create
,
314 .destroy
= lib_interface_pim_address_family_mroute_destroy
,
318 .xpath
= "/frr-interface:lib/interface/frr-pim:pim/address-family/mroute/oif",
320 .modify
= lib_interface_pim_address_family_mroute_oif_modify
,
321 .destroy
= lib_interface_pim_address_family_mroute_oif_destroy
,
330 /* clang-format off */
331 const struct frr_yang_module_info frr_pim_rp_info
= {
332 .name
= "frr-pim-rp",
335 .xpath
= "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/frr-pim-rp:rp/static-rp/rp-list",
337 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_create
,
338 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_destroy
,
342 .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",
344 .create
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_group_list_create
,
345 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_group_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/prefix-list",
351 .modify
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_prefix_list_modify
,
352 .destroy
= routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_prefix_list_destroy
,
361 /* clang-format off */
362 const struct frr_yang_module_info frr_gmp_info
= {
366 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family",
368 .create
= lib_interface_gmp_address_family_create
,
369 .destroy
= lib_interface_gmp_address_family_destroy
,
373 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/enable",
375 .modify
= lib_interface_gmp_address_family_enable_modify
,
379 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/igmp-version",
381 .modify
= lib_interface_gmp_address_family_igmp_version_modify
,
382 .destroy
= lib_interface_gmp_address_family_igmp_version_destroy
,
386 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/mld-version",
388 .modify
= lib_interface_gmp_address_family_mld_version_modify
,
389 .destroy
= lib_interface_gmp_address_family_mld_version_destroy
,
393 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/query-interval",
395 .modify
= lib_interface_gmp_address_family_query_interval_modify
,
399 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/query-max-response-time",
401 .modify
= lib_interface_gmp_address_family_query_max_response_time_modify
,
405 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/last-member-query-interval",
407 .modify
= lib_interface_gmp_address_family_last_member_query_interval_modify
,
411 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/robustness-variable",
413 .modify
= lib_interface_gmp_address_family_robustness_variable_modify
,
417 .xpath
= "/frr-interface:lib/interface/frr-gmp:gmp/address-family/static-group",
419 .create
= lib_interface_gmp_address_family_static_group_create
,
420 .destroy
= lib_interface_gmp_address_family_static_group_destroy
,