]> git.proxmox.com Git - mirror_frr.git/blame - pimd/pim_nb.h
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / pimd / pim_nb.h
CommitLineData
acddc0ed 1// SPDX-License-Identifier: GPL-2.0-or-later
299c66b3
SP
2/*
3 * Copyright (C) 2020 VmWare
4 * Sarita Patra
299c66b3
SP
5 */
6
7#ifndef _FRR_PIM_NB_H_
8#define _FRR_PIM_NB_H_
9
10extern const struct frr_yang_module_info frr_pim_info;
11extern const struct frr_yang_module_info frr_pim_rp_info;
3051f443 12extern const struct frr_yang_module_info frr_gmp_info;
299c66b3
SP
13
14/* frr-pim prototypes*/
698f4147 15int routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_modify(
299c66b3 16 struct nb_cb_modify_args *args);
698f4147 17int routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_rebalance_modify(
299c66b3 18 struct nb_cb_modify_args *args);
698f4147 19int pim_address_family_join_prune_interval_modify(struct nb_cb_modify_args *args);
20int routing_control_plane_protocols_control_plane_protocol_pim_address_family_keep_alive_timer_modify(
299c66b3 21 struct nb_cb_modify_args *args);
698f4147 22int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_keep_alive_timer_modify(
23 struct nb_cb_modify_args *args);
24int pim_address_family_create(struct nb_cb_create_args *args);
25int pim_address_family_destroy(struct nb_cb_destroy_args *args);
26int pim_address_family_packets_modify(struct nb_cb_modify_args *args);
27int pim_address_family_register_suppress_time_modify(
299c66b3 28 struct nb_cb_modify_args *args);
299c66b3
SP
29int routing_control_plane_protocols_control_plane_protocol_pim_address_family_create(
30 struct nb_cb_create_args *args);
31int routing_control_plane_protocols_control_plane_protocol_pim_address_family_destroy(
32 struct nb_cb_destroy_args *args);
33int routing_control_plane_protocols_control_plane_protocol_pim_address_family_send_v6_secondary_modify(
34 struct nb_cb_modify_args *args);
35int routing_control_plane_protocols_control_plane_protocol_pim_address_family_send_v6_secondary_destroy(
36 struct nb_cb_destroy_args *args);
37void routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_apply_finish(
38 struct nb_cb_apply_finish_args *args);
39int routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_spt_action_modify(
40 struct nb_cb_modify_args *args);
41int routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_spt_infinity_prefix_list_modify(
42 struct nb_cb_modify_args *args);
43int routing_control_plane_protocols_control_plane_protocol_pim_address_family_spt_switchover_spt_infinity_prefix_list_destroy(
44 struct nb_cb_destroy_args *args);
45int routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_prefix_list_modify(
46 struct nb_cb_modify_args *args);
47int routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_prefix_list_destroy(
48 struct nb_cb_destroy_args *args);
49int routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_pingd_source_ip_create(
50 struct nb_cb_create_args *args);
51int routing_control_plane_protocols_control_plane_protocol_pim_address_family_ssm_pingd_source_ip_destroy(
52 struct nb_cb_destroy_args *args);
622fd3f1
RZ
53int pim_msdp_hold_time_modify(struct nb_cb_modify_args *args);
54int pim_msdp_keep_alive_modify(struct nb_cb_modify_args *args);
55int pim_msdp_connection_retry_modify(struct nb_cb_modify_args *args);
e2809e61
RZ
56int pim_msdp_mesh_group_create(struct nb_cb_create_args *args);
57int pim_msdp_mesh_group_destroy(struct nb_cb_destroy_args *args);
58int pim_msdp_mesh_group_members_create(struct nb_cb_create_args *args);
59int pim_msdp_mesh_group_members_destroy(struct nb_cb_destroy_args *args);
60int pim_msdp_mesh_group_source_modify(struct nb_cb_modify_args *args);
61int pim_msdp_mesh_group_source_destroy(struct nb_cb_destroy_args *args);
299c66b3
SP
62int routing_control_plane_protocols_control_plane_protocol_pim_address_family_msdp_peer_create(
63 struct nb_cb_create_args *args);
64int routing_control_plane_protocols_control_plane_protocol_pim_address_family_msdp_peer_destroy(
65 struct nb_cb_destroy_args *args);
66int routing_control_plane_protocols_control_plane_protocol_pim_address_family_msdp_peer_source_ip_modify(
67 struct nb_cb_modify_args *args);
299c66b3
SP
68int routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_create(
69 struct nb_cb_create_args *args);
70int routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_destroy(
71 struct nb_cb_destroy_args *args);
72void routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_apply_finish(
73 struct nb_cb_apply_finish_args *args);
74int routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_peerlink_rif_modify(
75 struct nb_cb_modify_args *args);
76int routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_peerlink_rif_destroy(
77 struct nb_cb_destroy_args *args);
78int routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_reg_address_modify(
79 struct nb_cb_modify_args *args);
80int routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_reg_address_destroy(
81 struct nb_cb_destroy_args *args);
82int routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_my_role_modify(
83 struct nb_cb_modify_args *args);
84int routing_control_plane_protocols_control_plane_protocol_pim_address_family_mlag_peer_state_modify(
85 struct nb_cb_modify_args *args);
86int routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_modify(
87 struct nb_cb_modify_args *args);
88int routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_destroy(
89 struct nb_cb_destroy_args *args);
698f4147 90int lib_interface_pim_address_family_dr_priority_modify(
91 struct nb_cb_modify_args *args);
299c66b3
SP
92int lib_interface_pim_address_family_create(struct nb_cb_create_args *args);
93int lib_interface_pim_address_family_destroy(struct nb_cb_destroy_args *args);
698f4147 94int lib_interface_pim_address_family_pim_enable_modify(
95 struct nb_cb_modify_args *args);
9726536d 96int lib_interface_pim_address_family_pim_passive_enable_modify(
97 struct nb_cb_modify_args *args);
698f4147 98int lib_interface_pim_address_family_hello_interval_modify(
99 struct nb_cb_modify_args *args);
100int lib_interface_pim_address_family_hello_holdtime_modify(
101 struct nb_cb_modify_args *args);
102int lib_interface_pim_address_family_hello_holdtime_destroy(
103 struct nb_cb_destroy_args *args);
104int lib_interface_pim_address_family_bfd_create(struct nb_cb_create_args *args);
105int lib_interface_pim_address_family_bfd_destroy(
106 struct nb_cb_destroy_args *args);
107void lib_interface_pim_address_family_bfd_apply_finish(
108 struct nb_cb_apply_finish_args *args);
109int lib_interface_pim_address_family_bfd_min_rx_interval_modify(
110 struct nb_cb_modify_args *args);
111int lib_interface_pim_address_family_bfd_min_tx_interval_modify(
112 struct nb_cb_modify_args *args);
113int lib_interface_pim_address_family_bfd_detect_mult_modify(
114 struct nb_cb_modify_args *args);
115int lib_interface_pim_address_family_bfd_profile_modify(
116 struct nb_cb_modify_args *args);
117int lib_interface_pim_address_family_bfd_profile_destroy(
118 struct nb_cb_destroy_args *args);
119int lib_interface_pim_address_family_bsm_modify(struct nb_cb_modify_args *args);
120int lib_interface_pim_address_family_unicast_bsm_modify(
121 struct nb_cb_modify_args *args);
122int lib_interface_pim_address_family_active_active_modify(
123 struct nb_cb_modify_args *args);
299c66b3
SP
124int lib_interface_pim_address_family_use_source_modify(
125 struct nb_cb_modify_args *args);
126int lib_interface_pim_address_family_use_source_destroy(
127 struct nb_cb_destroy_args *args);
128int lib_interface_pim_address_family_multicast_boundary_oil_modify(
129 struct nb_cb_modify_args *args);
130int lib_interface_pim_address_family_multicast_boundary_oil_destroy(
131 struct nb_cb_destroy_args *args);
132int lib_interface_pim_address_family_mroute_create(
133 struct nb_cb_create_args *args);
134int lib_interface_pim_address_family_mroute_destroy(
135 struct nb_cb_destroy_args *args);
136int lib_interface_pim_address_family_mroute_oif_modify(
137 struct nb_cb_modify_args *args);
138int lib_interface_pim_address_family_mroute_oif_destroy(
139 struct nb_cb_destroy_args *args);
140
141/* frr-pim-rp prototypes*/
142int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_create(
143 struct nb_cb_create_args *args);
144int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_destroy(
145 struct nb_cb_destroy_args *args);
146int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_group_list_create(
147 struct nb_cb_create_args *args);
148int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_group_list_destroy(
149 struct nb_cb_destroy_args *args);
150int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_prefix_list_modify(
151 struct nb_cb_modify_args *args);
152int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_static_rp_rp_list_prefix_list_destroy(
153 struct nb_cb_destroy_args *args);
154
3051f443 155/* frr-gmp prototypes*/
156int lib_interface_gmp_address_family_create(
299c66b3 157 struct nb_cb_create_args *args);
3051f443 158int lib_interface_gmp_address_family_destroy(
299c66b3 159 struct nb_cb_destroy_args *args);
3051f443 160int lib_interface_gmp_address_family_enable_modify(
161 struct nb_cb_modify_args *args);
162int lib_interface_gmp_address_family_igmp_version_modify(
163 struct nb_cb_modify_args *args);
164int lib_interface_gmp_address_family_igmp_version_destroy(
165 struct nb_cb_destroy_args *args);
166int lib_interface_gmp_address_family_mld_version_modify(
167 struct nb_cb_modify_args *args);
168int lib_interface_gmp_address_family_mld_version_destroy(
169 struct nb_cb_destroy_args *args);
170int lib_interface_gmp_address_family_query_interval_modify(
171 struct nb_cb_modify_args *args);
172int lib_interface_gmp_address_family_query_max_response_time_modify(
173 struct nb_cb_modify_args *args);
174int lib_interface_gmp_address_family_last_member_query_interval_modify(
175 struct nb_cb_modify_args *args);
176int lib_interface_gmp_address_family_robustness_variable_modify(
177 struct nb_cb_modify_args *args);
178int lib_interface_gmp_address_family_static_group_create(
179 struct nb_cb_create_args *args);
180int lib_interface_gmp_address_family_static_group_destroy(
181 struct nb_cb_destroy_args *args);
299c66b3
SP
182
183/*
184 * Callback registered with routing_nb lib to validate only
185 * one instance of staticd is allowed
186 */
187int routing_control_plane_protocols_name_validate(
188 struct nb_cb_create_args *args);
189
d4addb48 190#if PIM_IPV == 4
191#define FRR_PIM_AF_XPATH_VAL "frr-routing:ipv4"
192#else
193#define FRR_PIM_AF_XPATH_VAL "frr-routing:ipv6"
194#endif
195
698f4147 196#define FRR_PIM_VRF_XPATH \
299c66b3
SP
197 "/frr-routing:routing/control-plane-protocols/" \
198 "control-plane-protocol[type='%s'][name='%s'][vrf='%s']/" \
199 "frr-pim:pim/address-family[address-family='%s']"
698f4147 200#define FRR_PIM_INTERFACE_XPATH \
201 "./frr-pim:pim/address-family[address-family='%s']"
202#define FRR_PIM_ENABLE_XPATH \
203 "%s/frr-pim:pim/address-family[address-family='%s']/pim-enable"
204#define FRR_PIM_ROUTER_XPATH \
205 "/frr-pim:pim/address-family[address-family='%s']"
206#define FRR_PIM_MROUTE_XPATH \
207 "./frr-pim:pim/address-family[address-family='%s']/" \
208 "mroute[source-addr='%s'][group-addr='%s']"
299c66b3
SP
209#define FRR_PIM_STATIC_RP_XPATH \
210 "/frr-routing:routing/control-plane-protocols/" \
211 "control-plane-protocol[type='%s'][name='%s'][vrf='%s']/" \
212 "frr-pim:pim/address-family[address-family='%s']/" \
213 "frr-pim-rp:rp/static-rp/rp-list[rp-address='%s']"
3051f443 214#define FRR_GMP_INTERFACE_XPATH \
215 "./frr-gmp:gmp/address-family[address-family='%s']"
216#define FRR_GMP_ENABLE_XPATH \
217 "%s/frr-gmp:gmp/address-family[address-family='%s']/enable"
218#define FRR_GMP_JOIN_XPATH \
219 "./frr-gmp:gmp/address-family[address-family='%s']/" \
299c66b3 220 "static-group[group-addr='%s'][source-addr='%s']"
698f4147 221#define FRR_PIM_MSDP_XPATH FRR_PIM_VRF_XPATH "/msdp"
622fd3f1 222
299c66b3 223#endif /* _FRR_PIM_NB_H_ */