summaryrefslogtreecommitdiffstats
path: root/vnet/vnet/fib/fib_path_list.c
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2016-10-03 09:40:25 +0100
committerFlorin Coras <florin.coras@gmail.com>2016-10-03 11:45:15 +0000
commit5e575b1d59a5a4c1590ca09d6383a876fb9fdd25 (patch)
treefcba6d058fe32d9b32fe246577565020d10455ff /vnet/vnet/fib/fib_path_list.c
parent553d808fc44e61846e4cda108083dd88beb338e3 (diff)
L2 over LISP and GRE (VPP-457)
Change-Id: I0d7f9c7f41a9f9e0acb0950adedb90d45df08c2a Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'vnet/vnet/fib/fib_path_list.c')
-rw-r--r--vnet/vnet/fib/fib_path_list.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/vnet/vnet/fib/fib_path_list.c b/vnet/vnet/fib/fib_path_list.c
index 1df73968614..3523d93a7bb 100644
--- a/vnet/vnet/fib/fib_path_list.c
+++ b/vnet/vnet/fib/fib_path_list.c
@@ -353,7 +353,7 @@ fib_path_list_last_lock_gone (fib_node_t *node)
*/
static void
fib_path_list_mk_lb (fib_path_list_t *path_list,
- fib_forward_chain_type_t type,
+ fib_forward_chain_type_t fct,
dpo_id_t *dpo)
{
load_balance_path_t *hash_key;
@@ -361,6 +361,19 @@ fib_path_list_mk_lb (fib_path_list_t *path_list,
hash_key = NULL;
+ if (!dpo_id_is_valid(dpo))
+ {
+ /*
+ * first time create
+ */
+ dpo_set(dpo,
+ DPO_LOAD_BALANCE,
+ fib_forw_chain_type_to_dpo_proto(fct),
+ load_balance_create(0,
+ fib_forw_chain_type_to_dpo_proto(fct),
+ 0 /* FIXME FLOW HASH */));
+ }
+
/*
* We gather the DPOs from resolved paths.
*/
@@ -368,7 +381,7 @@ fib_path_list_mk_lb (fib_path_list_t *path_list,
{
hash_key = fib_path_append_nh_for_multipath_hash(
*path_index,
- type,
+ fct,
hash_key);
}