diff options
Diffstat (limited to 'src/vnet/mpls')
-rw-r--r-- | src/vnet/mpls/mpls_tunnel.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/vnet/mpls/mpls_tunnel.c b/src/vnet/mpls/mpls_tunnel.c index 1254dd9ddfb..457d48eb6bf 100644 --- a/src/vnet/mpls/mpls_tunnel.c +++ b/src/vnet/mpls/mpls_tunnel.c @@ -24,6 +24,7 @@ #include <vnet/adj/adj_midchain.h> #include <vnet/adj/adj_mcast.h> #include <vnet/dpo/replicate_dpo.h> +#include <vnet/fib/mpls_fib.h> /** * @brief pool of tunnel instances @@ -200,9 +201,20 @@ mpls_tunnel_mk_lb (mpls_tunnel_t *mt, { flow_hash_config_t fhc; - fhc = 0; // FIXME - /* fhc = fib_table_get_flow_hash_config(fib_entry->fe_fib_index, */ - /* dpo_proto_to_fib(lb_proto)); */ + switch (linkt) + { + case VNET_LINK_MPLS: + fhc = MPLS_FLOW_HASH_DEFAULT; + break; + case VNET_LINK_IP4: + case VNET_LINK_IP6: + fhc = IP_FLOW_HASH_DEFAULT; + break; + default: + fhc = 0; + break; + } + dpo_set(dpo_lb, DPO_LOAD_BALANCE, lb_proto, |