aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/mpls
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/mpls')
-rw-r--r--src/vnet/mpls/mpls.api2
-rw-r--r--src/vnet/mpls/mpls_api.c1
-rw-r--r--src/vnet/mpls/mpls_tunnel.c9
3 files changed, 8 insertions, 4 deletions
diff --git a/src/vnet/mpls/mpls.api b/src/vnet/mpls/mpls.api
index 7fa24f4812d..7d38ffc5bdc 100644
--- a/src/vnet/mpls/mpls.api
+++ b/src/vnet/mpls/mpls.api
@@ -88,7 +88,7 @@ define mpls_tunnel_dump
manual_endian manual_print define mpls_tunnel_details
{
u32 context;
- u8 mt_sw_if_index;
+ u32 mt_sw_if_index;
u8 mt_tunnel_index;
u8 mt_l2_only;
u8 mt_is_multicast;
diff --git a/src/vnet/mpls/mpls_api.c b/src/vnet/mpls/mpls_api.c
index dbd1d8b6e31..97b66965190 100644
--- a/src/vnet/mpls/mpls_api.c
+++ b/src/vnet/mpls/mpls_api.c
@@ -439,6 +439,7 @@ send_mpls_tunnel_entry (u32 mti, void *arg)
mp->context = ctx->context;
mp->mt_tunnel_index = ntohl (mti);
+ mp->mt_sw_if_index = ntohl (mt->mt_sw_if_index);
mp->mt_count = ntohl (n);
fib_path_list_walk (mt->mt_path_list, fib_path_encode, &api_rpaths);
diff --git a/src/vnet/mpls/mpls_tunnel.c b/src/vnet/mpls/mpls_tunnel.c
index 1d85c3bc78c..55b60cdb1e5 100644
--- a/src/vnet/mpls/mpls_tunnel.c
+++ b/src/vnet/mpls/mpls_tunnel.c
@@ -165,9 +165,12 @@ mpls_tunnel_mk_lb (mpls_tunnel_t *mt,
lb_proto = fib_forw_chain_type_to_dpo_proto(fct);
- fib_path_list_walk(mt->mt_path_list,
- mpls_tunnel_collect_forwarding,
- &ctx);
+ if (FIB_NODE_INDEX_INVALID != mt->mt_path_list)
+ {
+ fib_path_list_walk(mt->mt_path_list,
+ mpls_tunnel_collect_forwarding,
+ &ctx);
+ }
if (!dpo_id_is_valid(dpo_lb))
{