1 /* 2 * Copyright (C) 2020 Cumulus Networks, Inc. 3 * Chirag Shah 4 * 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) 8 * any later version. 9 * 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 13 * more details. 14 * 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 18 */ 19 20 #ifndef ZEBRA_ZEBRA_NB_H_ 21 #define ZEBRA_ZEBRA_NB_H_ 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 extern const struct frr_yang_module_info frr_zebra_info; 28 29 /* prototypes */ 30 int get_route_information_rpc(struct nb_cb_rpc_args *args); 31 int get_v6_mroute_info_rpc(struct nb_cb_rpc_args *args); 32 int get_vrf_info_rpc(struct nb_cb_rpc_args *args); 33 int get_vrf_vni_info_rpc(struct nb_cb_rpc_args *args); 34 int get_evpn_info_rpc(struct nb_cb_rpc_args *args); 35 int get_vni_info_rpc(struct nb_cb_rpc_args *args); 36 int get_evpn_vni_rmac_rpc(struct nb_cb_rpc_args *args); 37 int get_evpn_vni_nexthops_rpc(struct nb_cb_rpc_args *args); 38 int clear_evpn_dup_addr_rpc(struct nb_cb_rpc_args *args); 39 int get_evpn_macs_rpc(struct nb_cb_rpc_args *args); 40 int get_evpn_arp_cache_rpc(struct nb_cb_rpc_args *args); 41 int get_pbr_ipset_rpc(struct nb_cb_rpc_args *args); 42 int get_pbr_iptable_rpc(struct nb_cb_rpc_args *args); 43 int get_debugs_rpc(struct nb_cb_rpc_args *args); 44 int zebra_mcast_rpf_lookup_modify(struct nb_cb_modify_args *args); 45 int zebra_ip_forwarding_modify(struct nb_cb_modify_args *args); 46 int zebra_ip_forwarding_destroy(struct nb_cb_destroy_args *args); 47 int zebra_ipv6_forwarding_modify(struct nb_cb_modify_args *args); 48 int zebra_ipv6_forwarding_destroy(struct nb_cb_destroy_args *args); 49 int zebra_workqueue_hold_timer_modify(struct nb_cb_modify_args *args); 50 int zebra_zapi_packets_modify(struct nb_cb_modify_args *args); 51 int zebra_import_kernel_table_table_id_modify(struct nb_cb_modify_args *args); 52 int zebra_import_kernel_table_table_id_destroy(struct nb_cb_destroy_args *args); 53 int zebra_import_kernel_table_distance_modify(struct nb_cb_modify_args *args); 54 int zebra_import_kernel_table_route_map_modify(struct nb_cb_modify_args *args); 55 int zebra_import_kernel_table_route_map_destroy( 56 struct nb_cb_destroy_args *args); 57 int zebra_allow_external_route_update_create(struct nb_cb_create_args *args); 58 int zebra_allow_external_route_update_destroy(struct nb_cb_destroy_args *args); 59 int zebra_dplane_queue_limit_modify(struct nb_cb_modify_args *args); 60 int zebra_debugs_debug_events_modify(struct nb_cb_modify_args *args); 61 int zebra_debugs_debug_events_destroy(struct nb_cb_destroy_args *args); 62 int zebra_debugs_debug_zapi_send_modify(struct nb_cb_modify_args *args); 63 int zebra_debugs_debug_zapi_send_destroy(struct nb_cb_destroy_args *args); 64 int zebra_debugs_debug_zapi_recv_modify(struct nb_cb_modify_args *args); 65 int zebra_debugs_debug_zapi_recv_destroy(struct nb_cb_destroy_args *args); 66 int zebra_debugs_debug_zapi_detail_modify(struct nb_cb_modify_args *args); 67 int zebra_debugs_debug_zapi_detail_destroy(struct nb_cb_destroy_args *args); 68 int zebra_debugs_debug_kernel_modify(struct nb_cb_modify_args *args); 69 int zebra_debugs_debug_kernel_destroy(struct nb_cb_destroy_args *args); 70 int zebra_debugs_debug_kernel_msg_send_modify(struct nb_cb_modify_args *args); 71 int zebra_debugs_debug_kernel_msg_send_destroy(struct nb_cb_destroy_args *args); 72 int zebra_debugs_debug_kernel_msg_recv_modify(struct nb_cb_modify_args *args); 73 int zebra_debugs_debug_kernel_msg_recv_destroy(struct nb_cb_destroy_args *args); 74 int zebra_debugs_debug_rib_modify(struct nb_cb_modify_args *args); 75 int zebra_debugs_debug_rib_destroy(struct nb_cb_destroy_args *args); 76 int zebra_debugs_debug_rib_detail_modify(struct nb_cb_modify_args *args); 77 int zebra_debugs_debug_rib_detail_destroy(struct nb_cb_destroy_args *args); 78 int zebra_debugs_debug_fpm_modify(struct nb_cb_modify_args *args); 79 int zebra_debugs_debug_fpm_destroy(struct nb_cb_destroy_args *args); 80 int zebra_debugs_debug_nht_modify(struct nb_cb_modify_args *args); 81 int zebra_debugs_debug_nht_destroy(struct nb_cb_destroy_args *args); 82 int zebra_debugs_debug_nht_detail_modify(struct nb_cb_modify_args *args); 83 int zebra_debugs_debug_nht_detail_destroy(struct nb_cb_destroy_args *args); 84 int zebra_debugs_debug_mpls_modify(struct nb_cb_modify_args *args); 85 int zebra_debugs_debug_mpls_destroy(struct nb_cb_destroy_args *args); 86 int zebra_debugs_debug_vxlan_modify(struct nb_cb_modify_args *args); 87 int zebra_debugs_debug_vxlan_destroy(struct nb_cb_destroy_args *args); 88 int zebra_debugs_debug_pw_modify(struct nb_cb_modify_args *args); 89 int zebra_debugs_debug_pw_destroy(struct nb_cb_destroy_args *args); 90 int zebra_debugs_debug_dplane_modify(struct nb_cb_modify_args *args); 91 int zebra_debugs_debug_dplane_destroy(struct nb_cb_destroy_args *args); 92 int zebra_debugs_debug_dplane_detail_modify(struct nb_cb_modify_args *args); 93 int zebra_debugs_debug_dplane_detail_destroy(struct nb_cb_destroy_args *args); 94 int zebra_debugs_debug_mlag_modify(struct nb_cb_modify_args *args); 95 int zebra_debugs_debug_mlag_destroy(struct nb_cb_destroy_args *args); 96 int lib_interface_zebra_ip_addrs_create(struct nb_cb_create_args *args); 97 int lib_interface_zebra_ip_addrs_destroy(struct nb_cb_destroy_args *args); 98 int lib_interface_zebra_ip_addrs_label_modify(struct nb_cb_modify_args *args); 99 int lib_interface_zebra_ip_addrs_label_destroy(struct nb_cb_destroy_args *args); 100 int lib_interface_zebra_ip_addrs_ip4_peer_modify( 101 struct nb_cb_modify_args *args); 102 int lib_interface_zebra_ip_addrs_ip4_peer_destroy( 103 struct nb_cb_destroy_args *args); 104 int lib_interface_zebra_multicast_modify(struct nb_cb_modify_args *args); 105 int lib_interface_zebra_multicast_destroy(struct nb_cb_destroy_args *args); 106 int lib_interface_zebra_link_detect_modify(struct nb_cb_modify_args *args); 107 int lib_interface_zebra_link_detect_destroy(struct nb_cb_destroy_args *args); 108 int lib_interface_zebra_shutdown_modify(struct nb_cb_modify_args *args); 109 int lib_interface_zebra_shutdown_destroy(struct nb_cb_destroy_args *args); 110 int lib_interface_zebra_bandwidth_modify(struct nb_cb_modify_args *args); 111 int lib_interface_zebra_bandwidth_destroy(struct nb_cb_destroy_args *args); 112 int lib_route_map_entry_match_condition_ipv4_prefix_length_modify( 113 struct nb_cb_modify_args *args); 114 int lib_route_map_entry_match_condition_ipv4_prefix_length_destroy( 115 struct nb_cb_destroy_args *args); 116 int lib_route_map_entry_match_condition_ipv6_prefix_length_modify( 117 struct nb_cb_modify_args *args); 118 int lib_route_map_entry_match_condition_ipv6_prefix_length_destroy( 119 struct nb_cb_destroy_args *args); 120 int lib_route_map_entry_match_condition_source_protocol_modify( 121 struct nb_cb_modify_args *args); 122 int lib_route_map_entry_match_condition_source_protocol_destroy( 123 struct nb_cb_destroy_args *args); 124 int lib_route_map_entry_match_condition_source_instance_modify( 125 struct nb_cb_modify_args *args); 126 int lib_route_map_entry_match_condition_source_instance_destroy( 127 struct nb_cb_destroy_args *args); 128 int lib_route_map_entry_set_action_source_v4_modify( 129 struct nb_cb_modify_args *args); 130 int lib_route_map_entry_set_action_source_v4_destroy( 131 struct nb_cb_destroy_args *args); 132 int lib_route_map_entry_set_action_source_v6_modify( 133 struct nb_cb_modify_args *args); 134 int lib_route_map_entry_set_action_source_v6_destroy( 135 struct nb_cb_destroy_args *args); 136 struct yang_data * 137 lib_interface_zebra_state_up_count_get_elem(struct nb_cb_get_elem_args *args); 138 struct yang_data * 139 lib_interface_zebra_state_down_count_get_elem(struct nb_cb_get_elem_args *args); 140 struct yang_data * 141 lib_interface_zebra_state_zif_type_get_elem(struct nb_cb_get_elem_args *args); 142 struct yang_data * 143 lib_interface_zebra_state_ptm_status_get_elem(struct nb_cb_get_elem_args *args); 144 struct yang_data * 145 lib_interface_zebra_state_vlan_id_get_elem(struct nb_cb_get_elem_args *args); 146 struct yang_data * 147 lib_interface_zebra_state_vni_id_get_elem(struct nb_cb_get_elem_args *args); 148 struct yang_data *lib_interface_zebra_state_remote_vtep_get_elem( 149 struct nb_cb_get_elem_args *args); 150 struct yang_data *lib_interface_zebra_state_mcast_group_get_elem( 151 struct nb_cb_get_elem_args *args); 152 int lib_vrf_zebra_ribs_rib_create(struct nb_cb_create_args *args); 153 int lib_vrf_zebra_ribs_rib_destroy(struct nb_cb_destroy_args *args); 154 const void *lib_vrf_zebra_ribs_rib_get_next(struct nb_cb_get_next_args *args); 155 int lib_vrf_zebra_ribs_rib_get_keys(struct nb_cb_get_keys_args *args); 156 const void * 157 lib_vrf_zebra_ribs_rib_lookup_entry(struct nb_cb_lookup_entry_args *args); 158 const void * 159 lib_vrf_zebra_ribs_rib_route_get_next(struct nb_cb_get_next_args *args); 160 int lib_vrf_zebra_ribs_rib_route_get_keys(struct nb_cb_get_keys_args *args); 161 const void * 162 lib_vrf_zebra_ribs_rib_route_lookup_entry(struct nb_cb_lookup_entry_args *args); 163 struct yang_data * 164 lib_vrf_zebra_ribs_rib_route_prefix_get_elem(struct nb_cb_get_elem_args *args); 165 struct yang_data *lib_vrf_zebra_ribs_rib_route_protocol_get_elem( 166 struct nb_cb_get_elem_args *args); 167 struct yang_data *lib_vrf_zebra_ribs_rib_route_protocol_v6_get_elem( 168 struct nb_cb_get_elem_args *args); 169 struct yang_data * 170 lib_vrf_zebra_ribs_rib_route_vrf_get_elem(struct nb_cb_get_elem_args *args); 171 struct yang_data *lib_vrf_zebra_ribs_rib_route_distance_get_elem( 172 struct nb_cb_get_elem_args *args); 173 struct yang_data * 174 lib_vrf_zebra_ribs_rib_route_metric_get_elem(struct nb_cb_get_elem_args *args); 175 struct yang_data * 176 lib_vrf_zebra_ribs_rib_route_tag_get_elem(struct nb_cb_get_elem_args *args); 177 struct yang_data *lib_vrf_zebra_ribs_rib_route_selected_get_elem( 178 struct nb_cb_get_elem_args *args); 179 struct yang_data *lib_vrf_zebra_ribs_rib_route_installed_get_elem( 180 struct nb_cb_get_elem_args *args); 181 struct yang_data * 182 lib_vrf_zebra_ribs_rib_route_failed_get_elem(struct nb_cb_get_elem_args *args); 183 struct yang_data * 184 lib_vrf_zebra_ribs_rib_route_queued_get_elem(struct nb_cb_get_elem_args *args); 185 struct yang_data *lib_vrf_zebra_ribs_rib_route_internal_flags_get_elem( 186 struct nb_cb_get_elem_args *args); 187 struct yang_data *lib_vrf_zebra_ribs_rib_route_internal_status_get_elem( 188 struct nb_cb_get_elem_args *args); 189 struct yang_data * 190 lib_vrf_zebra_ribs_rib_route_uptime_get_elem(struct nb_cb_get_elem_args *args); 191 const void *lib_vrf_zebra_ribs_rib_route_nexthop_group_get_next( 192 struct nb_cb_get_next_args *args); 193 int lib_vrf_zebra_ribs_rib_route_nexthop_group_get_keys( 194 struct nb_cb_get_keys_args *args); 195 const void *lib_vrf_zebra_ribs_rib_route_nexthop_group_lookup_entry( 196 struct nb_cb_lookup_entry_args *args); 197 struct yang_data *lib_vrf_zebra_ribs_rib_route_nexthop_group_name_get_elem( 198 struct nb_cb_get_elem_args *args); 199 const void * 200 lib_vrf_zebra_ribs_rib_route_nexthop_group_frr_nexthops_nexthop_get_next( 201 struct nb_cb_get_next_args *args); 202 int lib_vrf_zebra_ribs_rib_route_nexthop_group_frr_nexthops_nexthop_get_keys( 203 struct nb_cb_get_keys_args *args); 204 int lib_vrf_zebra_ribs_rib_create(struct nb_cb_create_args *args); 205 int lib_vrf_zebra_ribs_rib_destroy(struct nb_cb_destroy_args *args); 206 const void *lib_vrf_zebra_ribs_rib_get_next(struct nb_cb_get_next_args *args); 207 int lib_vrf_zebra_ribs_rib_get_keys(struct nb_cb_get_keys_args *args); 208 const void * 209 lib_vrf_zebra_ribs_rib_lookup_entry(struct nb_cb_lookup_entry_args *args); 210 const void * 211 lib_vrf_zebra_ribs_rib_route_get_next(struct nb_cb_get_next_args *args); 212 int lib_vrf_zebra_ribs_rib_route_get_keys(struct nb_cb_get_keys_args *args); 213 const void * 214 lib_vrf_zebra_ribs_rib_route_lookup_entry(struct nb_cb_lookup_entry_args *args); 215 struct yang_data * 216 lib_vrf_zebra_ribs_rib_route_prefix_get_elem(struct nb_cb_get_elem_args *args); 217 const void *lib_vrf_zebra_ribs_rib_route_route_entry_get_next( 218 struct nb_cb_get_next_args *args); 219 int lib_vrf_zebra_ribs_rib_route_route_entry_get_keys( 220 struct nb_cb_get_keys_args *args); 221 const void *lib_vrf_zebra_ribs_rib_route_route_entry_lookup_entry( 222 struct nb_cb_lookup_entry_args *args); 223 struct yang_data *lib_vrf_zebra_ribs_rib_route_route_entry_protocol_get_elem( 224 struct nb_cb_get_elem_args *args); 225 struct yang_data *lib_vrf_zebra_ribs_rib_route_route_entry_instance_get_elem( 226 struct nb_cb_get_elem_args *args); 227 struct yang_data *lib_vrf_zebra_ribs_rib_route_route_entry_distance_get_elem( 228 struct nb_cb_get_elem_args *args); 229 struct yang_data *lib_vrf_zebra_ribs_rib_route_route_entry_metric_get_elem( 230 struct nb_cb_get_elem_args *args); 231 struct yang_data *lib_vrf_zebra_ribs_rib_route_route_entry_tag_get_elem( 232 struct nb_cb_get_elem_args *args); 233 struct yang_data *lib_vrf_zebra_ribs_rib_route_route_entry_selected_get_elem( 234 struct nb_cb_get_elem_args *args); 235 struct yang_data *lib_vrf_zebra_ribs_rib_route_route_entry_installed_get_elem( 236 struct nb_cb_get_elem_args *args); 237 struct yang_data *lib_vrf_zebra_ribs_rib_route_route_entry_failed_get_elem( 238 struct nb_cb_get_elem_args *args); 239 struct yang_data *lib_vrf_zebra_ribs_rib_route_route_entry_queued_get_elem( 240 struct nb_cb_get_elem_args *args); 241 struct yang_data * 242 lib_vrf_zebra_ribs_rib_route_route_entry_internal_flags_get_elem( 243 struct nb_cb_get_elem_args *args); 244 struct yang_data * 245 lib_vrf_zebra_ribs_rib_route_route_entry_internal_status_get_elem( 246 struct nb_cb_get_elem_args *args); 247 struct yang_data *lib_vrf_zebra_ribs_rib_route_route_entry_uptime_get_elem( 248 struct nb_cb_get_elem_args *args); 249 struct yang_data * 250 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_id_get_elem( 251 struct nb_cb_get_elem_args *args); 252 const void * 253 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_get_next( 254 struct nb_cb_get_next_args *args); 255 int lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_get_keys( 256 struct nb_cb_get_keys_args *args); 257 const void * 258 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_lookup_entry( 259 struct nb_cb_lookup_entry_args *args); 260 struct yang_data * 261 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_nh_type_get_elem( 262 struct nb_cb_get_elem_args *args); 263 struct yang_data * 264 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_vrf_get_elem( 265 struct nb_cb_get_elem_args *args); 266 struct yang_data * 267 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_gateway_get_elem( 268 struct nb_cb_get_elem_args *args); 269 struct yang_data * 270 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_interface_get_elem( 271 struct nb_cb_get_elem_args *args); 272 struct yang_data * 273 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_bh_type_get_elem( 274 struct nb_cb_get_elem_args *args); 275 struct yang_data * 276 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_onlink_get_elem( 277 struct nb_cb_get_elem_args *args); 278 struct yang_data * 279 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_color_get_elem( 280 struct nb_cb_get_elem_args *args); 281 const void * 282 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_get_next( 283 struct nb_cb_get_next_args *args); 284 int lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_get_keys( 285 struct nb_cb_get_keys_args *args); 286 const void * 287 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_lookup_entry( 288 struct nb_cb_lookup_entry_args *args); 289 struct yang_data * 290 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_id_get_elem( 291 struct nb_cb_get_elem_args *args); 292 struct yang_data * 293 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_label_get_elem( 294 struct nb_cb_get_elem_args *args); 295 struct yang_data * 296 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_ttl_get_elem( 297 struct nb_cb_get_elem_args *args); 298 struct yang_data * 299 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_mpls_label_stack_entry_traffic_class_get_elem( 300 struct nb_cb_get_elem_args *args); 301 struct yang_data * 302 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_duplicate_get_elem( 303 struct nb_cb_get_elem_args *args); 304 struct yang_data * 305 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_recursive_get_elem( 306 struct nb_cb_get_elem_args *args); 307 struct yang_data * 308 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_active_get_elem( 309 struct nb_cb_get_elem_args *args); 310 struct yang_data * 311 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_fib_get_elem( 312 struct nb_cb_get_elem_args *args); 313 struct yang_data * 314 lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_weight_get_elem( 315 struct nb_cb_get_elem_args *args); 316 int lib_vrf_zebra_l3vni_id_modify(struct nb_cb_modify_args *args); 317 int lib_vrf_zebra_l3vni_id_destroy(struct nb_cb_destroy_args *args); 318 int lib_vrf_zebra_prefix_only_modify(struct nb_cb_modify_args *args); 319 320 #ifdef __cplusplus 321 } 322 #endif 323 324 #endif 325