Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
IP Multicast FIB (mfib)
[vpp.git]
/
src
/
vnet
/
fib
/
fib_path_list.c
diff --git
a/src/vnet/fib/fib_path_list.c
b/src/vnet/fib/fib_path_list.c
index
5b35e9b
..
ce11cf4
100644
(file)
--- a/
src/vnet/fib/fib_path_list.c
+++ b/
src/vnet/fib/fib_path_list.c
@@
-365,10
+365,10
@@
fib_path_list_mk_lb (fib_path_list_t *path_list,
fib_forward_chain_type_t fct,
dpo_id_t *dpo)
{
fib_forward_chain_type_t fct,
dpo_id_t *dpo)
{
- load_balance_path_t *
hash_key
;
+ load_balance_path_t *
nhs
;
fib_node_index_t *path_index;
fib_node_index_t *path_index;
-
hash_key
= NULL;
+
nhs
= NULL;
if (!dpo_id_is_valid(dpo))
{
if (!dpo_id_is_valid(dpo))
{
@@
-388,21
+388,20
@@
fib_path_list_mk_lb (fib_path_list_t *path_list,
*/
vec_foreach (path_index, path_list->fpl_paths)
{
*/
vec_foreach (path_index, path_list->fpl_paths)
{
- hash_key = fib_path_append_nh_for_multipath_hash(
- *path_index,
- fct,
- hash_key);
+ nhs = fib_path_append_nh_for_multipath_hash(*path_index,
+ fct,
+ nhs);
}
/*
* Path-list load-balances, which if used, would be shared and hence
* never need a load-balance map.
*/
}
/*
* Path-list load-balances, which if used, would be shared and hence
* never need a load-balance map.
*/
- load_balance_multipath_update(dpo,
hash_key
, LOAD_BALANCE_FLAG_NONE);
+ load_balance_multipath_update(dpo,
nhs
, LOAD_BALANCE_FLAG_NONE);
FIB_PATH_LIST_DBG(path_list, "mk lb: %d", dpo->dpoi_index);
FIB_PATH_LIST_DBG(path_list, "mk lb: %d", dpo->dpoi_index);
- vec_free(
hash_key
);
+ vec_free(
nhs
);
}
/**
}
/**
@@
-586,11
+585,25
@@
fib_path_list_resolve (fib_path_list_t *path_list)
path_list = fib_path_list_get(path_list_index);
FIB_PATH_LIST_DBG(path_list, "resovled");
path_list = fib_path_list_get(path_list_index);
FIB_PATH_LIST_DBG(path_list, "resovled");
- fib_path_list_mk_urpf(path_list);
+ if (!(path_list->fpl_flags & FIB_PATH_LIST_FLAG_NO_URPF))
+ {
+ fib_path_list_mk_urpf(path_list);
+ }
return (path_list);
}
return (path_list);
}
+u32
+fib_path_list_get_n_paths (fib_node_index_t path_list_index)
+{
+ fib_path_list_t *path_list;
+
+ path_list = fib_path_list_get(path_list_index);
+
+ return (vec_len(path_list->fpl_paths));
+}
+
+
u32
fib_path_list_get_resolving_interface (fib_node_index_t path_list_index)
{
u32
fib_path_list_get_resolving_interface (fib_node_index_t path_list_index)
{
@@
-1015,14
+1028,14
@@
fib_path_list_copy_and_path_remove (fib_node_index_t orig_path_list_index,
*/
void
fib_path_list_contribute_forwarding (fib_node_index_t path_list_index,
*/
void
fib_path_list_contribute_forwarding (fib_node_index_t path_list_index,
- fib_forward_chain_type_t
type
,
+ fib_forward_chain_type_t
fct
,
dpo_id_t *dpo)
{
fib_path_list_t *path_list;
path_list = fib_path_list_get(path_list_index);
dpo_id_t *dpo)
{
fib_path_list_t *path_list;
path_list = fib_path_list_get(path_list_index);
- fib_path_list_mk_lb(path_list,
type
, dpo);
+ fib_path_list_mk_lb(path_list,
fct
, dpo);
}
/*
}
/*