Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
fib: Source Address Selection
[vpp.git]
/
src
/
vnet
/
fib
/
fib_types.h
diff --git
a/src/vnet/fib/fib_types.h
b/src/vnet/fib/fib_types.h
index
91d1d7b
..
b5a58e7
100644
(file)
--- a/
src/vnet/fib/fib_types.h
+++ b/
src/vnet/fib/fib_types.h
@@
-17,8
+17,7
@@
#define __FIB_TYPES_H__
#include <stdbool.h>
#define __FIB_TYPES_H__
#include <stdbool.h>
-#include <vlib/vlib.h>
-#include <vnet/ip/ip6_packet.h>
+#include <vnet/ip/ip46_address.h>
#include <vnet/mpls/packet.h>
#include <vnet/dpo/dpo.h>
#include <vnet/bier/bier_types.h>
#include <vnet/mpls/packet.h>
#include <vnet/dpo/dpo.h>
#include <vnet/bier/bier_types.h>
@@
-247,6
+246,12
@@
STATIC_ASSERT(STRUCT_OFFSET_OF(fib_prefix_t, fp_addr) == 4,
extern int fib_prefix_cmp(const fib_prefix_t *p1,
const fib_prefix_t *p2);
extern int fib_prefix_cmp(const fib_prefix_t *p1,
const fib_prefix_t *p2);
+/**
+ * \brief Copy a prefix
+ */
+extern void fib_prefix_copy(fib_prefix_t *dst,
+ const fib_prefix_t *src);
+
/**
* \brief Compare two prefixes for covering relationship
*
/**
* \brief Compare two prefixes for covering relationship
*
@@
-259,7
+264,14
@@
extern int fib_prefix_is_cover(const fib_prefix_t *p1,
* \brief Return true is the prefix is a host prefix
*/
extern int fib_prefix_is_host(const fib_prefix_t *p);
* \brief Return true is the prefix is a host prefix
*/
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
/**
* \brief Host prefix from ip
@@
-388,8
+400,17
@@
typedef enum fib_route_path_flags_t_
* Pop a Psuedo Wire Control Word
*/
FIB_ROUTE_PATH_POP_PW_CW = (1 << 18),
* 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;
} fib_route_path_flags_t;
+/**
+ * Format route path flags
+ */
+extern u8 * format_fib_route_path_flags(u8 *s, va_list *ap);
+
/**
* An RPF-ID is numerical value that is used RPF validate. An entry
* has-a RPF-ID, when a packet egress from (e.g. an LSP) it gains an
/**
* An RPF-ID is numerical value that is used RPF validate. An entry
* has-a RPF-ID, when a packet egress from (e.g. an LSP) it gains an
@@
-510,6
+531,11
@@
typedef struct fib_route_path_t_ {
* Present in an mfib path list
*/
index_t frp_bier_imp;
* Present in an mfib path list
*/
index_t frp_bier_imp;
+
+ /**
+ * Glean prefix on a glean path
+ */
+ fib_prefix_t frp_connected;
};
/**
};
/**
@@
-594,6
+620,11
@@
typedef struct fib_route_path_t_ {
*/
extern uword unformat_fib_route_path(unformat_input_t * input, va_list * args);
*/
extern uword unformat_fib_route_path(unformat_input_t * input, va_list * args);
+/**
+ * Format route path flags
+ */
+extern u8 * format_fib_route_path(u8 *s, va_list *ap);
+
/**
* A help string to list the FIB path options
*/
/**
* A help string to list the FIB path options
*/