#define __FIB_TYPES_H__
#include <stdbool.h>
-#include <vlib/vlib.h>
#include <vnet/ip/ip46_address.h>
#include <vnet/mpls/packet.h>
#include <vnet/dpo/dpo.h>
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
*/
* 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;
/**
* Present in an mfib path list
*/
index_t frp_bier_imp;
+
+ /**
+ * Glean prefix on a glean path
+ */
+ fib_prefix_t frp_connected;
};
/**
*/
fib_rpf_id_t frp_rpf_id;
- union {
- /**
- * The FIB index to lookup the nexthop
- * Only valid for recursive paths.
- */
- u32 frp_fib_index;
- /**
- * The BIER table to resolve the fmask in
- */
- u32 frp_bier_fib_index;
- };
+ /**
+ * The FIB index to lookup the nexthop
+ * Only valid for recursive paths.
+ */
+ u32 frp_fib_index;
/**
* The outgoing MPLS label Stack. NULL implies no label.
*/