ip: change ip API enums address_family and ip_proto size to u8
[vpp.git] / src / vnet / fib / fib_api.h
index f5a107c..2492c89 100644 (file)
 #ifndef __FIB_API_H__
 #define __FIB_API_H__
 
+#include <vnet/fib/fib_types.h>
+#include <vnet/fib/fib_entry.h>
+#include <vnet/ip/ip.api_types.h>
 
-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,
-                        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 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__ */