X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ffib%2Ffib_api.h;h=caa993b78d050c8f0c37d880de56ca9da72fa256;hb=990f69450;hp=bbe4eaac74b5b5ee3aca17258d7d1c387d33d143;hpb=f068c3ed296c49dfbfe17677fc1ad2428fb4e3e4;p=vpp.git diff --git a/src/vnet/fib/fib_api.h b/src/vnet/fib/fib_api.h index bbe4eaac74b..caa993b78d0 100644 --- a/src/vnet/fib/fib_api.h +++ b/src/vnet/fib/fib_api.h @@ -16,47 +16,42 @@ #ifndef __FIB_API_H__ #define __FIB_API_H__ +#include +#include +#include -int -add_del_route_check (fib_protocol_t table_proto, - u32 table_id, - u32 next_hop_sw_if_index, - dpo_proto_t next_hop_table_proto, - u32 next_hop_table_id, - u8 is_rpf_id, - u32 * fib_index, u32 * next_hop_fib_index); - -int -add_del_route_t_handler (u8 is_multipath, - u8 is_add, - u8 is_drop, - u8 is_unreach, - u8 is_prohibit, - u8 is_local, - u8 is_multicast, - u8 is_classify, - u32 classify_table_index, - u8 is_resolve_host, - u8 is_resolve_attached, - u8 is_interface_rx, - u8 is_rpf_id, - u8 is_dvr, - u8 is_source_lookup, - u8 is_udp_encap, - u32 fib_index, - const fib_prefix_t * prefix, - dpo_proto_t next_hop_proto, - const ip46_address_t * next_hop, - u32 next_hop_id, - u32 next_hop_sw_if_index, - u8 next_hop_fib_index, - u16 next_hop_weight, - u16 next_hop_preference, - mpls_label_t next_hop_via_label, - mpls_label_t * next_hop_out_label_stack); - -void -copy_fib_next_hop (fib_route_path_encode_t * api_rpath, - void * fp_arg); +/** + * Forward declare the API type, no need to include the generated api headers + */ +struct _vl_api_fib_path; +struct _vl_api_fib_prefix; + +/** + * Encode and decode functions from the API types to internal types + */ +extern void fib_api_path_encode(const fib_route_path_t * api_rpath, + vl_api_fib_path_t *out); +extern int fib_api_path_decode(vl_api_fib_path_t *in, + fib_route_path_t *out); + +extern int fib_api_table_id_decode(fib_protocol_t fproto, + u32 table_id, + u32 *fib_index); + +/** + * Adding routes from the API + */ +extern int fib_api_route_add_del (u8 is_add, + u8 is_multipath, + u32 fib_index, + const fib_prefix_t * prefix, + fib_entry_flag_t entry_flags, + fib_route_path_t *rpaths); + +extern u8* format_vl_api_fib_path(u8 * s, va_list * args); + + +extern int fib_proto_from_api_address_family (vl_api_address_family_t af, fib_protocol_t *out); +extern vl_api_address_family_t fib_proto_to_api_address_family (fib_protocol_t fproto); #endif /* __FIB_API_H__ */