fib: Source Address Selection
[vpp.git] / src / vnet / fib / fib_types.h
index 832092c..b5a58e7 100644 (file)
@@ -266,6 +266,13 @@ extern int fib_prefix_is_cover(const fib_prefix_t *p1,
 extern int fib_prefix_is_host(const fib_prefix_t *p);
 extern u8 fib_prefix_get_host_length (fib_protocol_t proto);
 
+/**
+ * normalise a prefix (i.e. mask the host bits according to the
+ * prefix length)
+ */
+extern void fib_prefix_normalize(const fib_prefix_t *p,
+                                 fib_prefix_t *out);
+
 /**
  * \brief Host prefix from ip
  */
@@ -393,6 +400,10 @@ typedef enum fib_route_path_flags_t_
      * Pop a Psuedo Wire Control Word
      */
     FIB_ROUTE_PATH_POP_PW_CW = (1 << 18),
+    /**
+     * A path that resolves via a glean adjacency
+     */
+    FIB_ROUTE_PATH_GLEAN = (1 << 19),
 } fib_route_path_flags_t;
 
 /**
@@ -520,6 +531,11 @@ typedef struct fib_route_path_t_ {
                  * Present in an mfib path list
                  */
                 index_t frp_bier_imp;
+
+                /**
+                 * Glean prefix on a glean path
+                 */
+                fib_prefix_t frp_connected;
             };
 
             /**