fib: fib api updates
[vpp.git] / src / vnet / fib / fib_entry.h
index 950f0dc..5d0fb24 100644 (file)
@@ -64,6 +64,10 @@ typedef enum fib_source_t_ {
      * From the BIER subsystem
      */
     FIB_SOURCE_BIER,
+    /**
+     * From 6RD.
+     */
+    FIB_SOURCE_6RD,
     /**
      * From the control plane API
      */
@@ -157,6 +161,7 @@ STATIC_ASSERT (sizeof(fib_source_t) == 1,
     [FIB_SOURCE_INTERFACE] = "interface",              \
     [FIB_SOURCE_PROXY] = "proxy",                       \
     [FIB_SOURCE_BIER] = "BIER",                                \
+    [FIB_SOURCE_6RD] = "6RD",                          \
     [FIB_SOURCE_API] = "API",                          \
     [FIB_SOURCE_CLI] = "CLI",                          \
     [FIB_SOURCE_ADJ] = "adjacency",                    \
@@ -281,6 +286,8 @@ typedef enum fib_entry_flag_t_ {
     FIB_ENTRY_FLAG_INTERPOSE = (1 << FIB_ENTRY_ATTRIBUTE_INTERPOSE),
 } __attribute__((packed)) fib_entry_flag_t;
 
+extern u8 * format_fib_entry_flags(u8 *s, va_list *args);
+
 /**
  * Flags for the source data
  */
@@ -332,6 +339,8 @@ typedef enum fib_entry_src_flag_t_ {
     FIB_ENTRY_SRC_FLAG_INHERITED = (1 << FIB_ENTRY_SRC_ATTRIBUTE_INHERITED),
 } __attribute__ ((packed)) fib_entry_src_flag_t;
 
+extern u8 * format_fib_entry_src_flags(u8 *s, va_list *args);
+
 /*
  * Keep the size of the flags field to 2 bytes, so it
  * can be placed next to the 2 bytes reference count
@@ -530,7 +539,7 @@ extern void fib_entry_update (fib_node_index_t fib_entry_index,
 extern void fib_entry_path_add(fib_node_index_t fib_entry_index,
                               fib_source_t source,
                               fib_entry_flag_t flags,
-                              const fib_route_path_t *rpath);
+                              const fib_route_path_t *rpaths);
 extern void fib_entry_special_add(fib_node_index_t fib_entry_index,
                                  fib_source_t source,
                                  fib_entry_flag_t flags,
@@ -544,7 +553,7 @@ extern fib_entry_src_flag_t fib_entry_special_remove(fib_node_index_t fib_entry_
 
 extern fib_entry_src_flag_t fib_entry_path_remove(fib_node_index_t fib_entry_index,
                                                  fib_source_t source,
-                                                 const fib_route_path_t *rpath);
+                                                 const fib_route_path_t *rpaths);
 
 extern void fib_entry_inherit(fib_node_index_t cover,
                               fib_node_index_t covered);
@@ -592,9 +601,8 @@ extern u32 fib_entry_get_resolving_interface_for_source(
     fib_node_index_t fib_entry_index,
     fib_source_t source);
 
-extern void fib_entry_encode(fib_node_index_t fib_entry_index,
-                            fib_route_path_encode_t **api_rpaths);
-extern const fib_prefix_t *fib_entry_get_prefix(fib_node_index_t fib_entry_index);
+extern fib_route_path_t* fib_entry_encode(fib_node_index_t fib_entry_index);
+extern const fib_prefix_t* fib_entry_get_prefix(fib_node_index_t fib_entry_index);
 extern u32 fib_entry_get_fib_index(fib_node_index_t fib_entry_index);
 extern void fib_entry_set_source_data(fib_node_index_t fib_entry_index,
                                       fib_source_t source,
@@ -618,6 +626,8 @@ extern void fib_entry_set_flow_hash_config(fib_node_index_t fib_entry_index,
 
 extern void fib_entry_module_init(void);
 
+extern u32 fib_entry_get_stats_index(fib_node_index_t fib_entry_index);
+
 /*
  * unsafe... beware the raw pointer.
  */