X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ffib%2Ffib_api.h;h=ffff2289b373270b38c8a8fd1dbeb261197014b6;hb=097fa66b9;hp=c369e8f858873d4e8a4a3f7244b1b3a446193b79;hpb=6f6311560380d0e992f710558e213df1b098ef94;p=vpp.git diff --git a/src/vnet/fib/fib_api.h b/src/vnet/fib/fib_api.h index c369e8f8588..ffff2289b37 100644 --- a/src/vnet/fib/fib_api.h +++ b/src/vnet/fib/fib_api.h @@ -16,44 +16,41 @@ #ifndef __FIB_API_H__ #define __FIB_API_H__ +#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_l2_bridged, - u32 fib_index, - const fib_prefix_t * prefix, - dpo_proto_t next_hop_proto, - const ip46_address_t * next_hop, - 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, + struct _vl_api_fib_path *out); +extern int fib_api_path_decode(struct _vl_api_fib_path *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 void 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 fib_protocol_t fib_proto_from_api_address_family (int af); +extern int fib_proto_to_api_address_family (fib_protocol_t fproto); #endif /* __FIB_API_H__ */