aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/mpls/mpls.c
diff options
context:
space:
mode:
Diffstat (limited to 'vnet/vnet/mpls/mpls.c')
-rw-r--r--vnet/vnet/mpls/mpls.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/vnet/vnet/mpls/mpls.c b/vnet/vnet/mpls/mpls.c
index ac35e5d4..aa1d963d 100644
--- a/vnet/vnet/mpls/mpls.c
+++ b/vnet/vnet/mpls/mpls.c
@@ -528,7 +528,7 @@ vnet_mpls_local_label (vlib_main_t * vm,
rpath.frp_label = MPLS_LABEL_INVALID;
rpath.frp_proto = FIB_PROTOCOL_IP4;
rpath.frp_sw_if_index = FIB_NODE_INDEX_INVALID;
- pfx.fp_payload_proto = FIB_PROTOCOL_IP4;
+ pfx.fp_payload_proto = DPO_PROTO_IP4;
vec_add1(rpaths, rpath);
}
else if (unformat (line_input,
@@ -539,7 +539,7 @@ vnet_mpls_local_label (vlib_main_t * vm,
rpath.frp_proto = FIB_PROTOCOL_IP6;
rpath.frp_sw_if_index = FIB_NODE_INDEX_INVALID;
vec_add1(rpaths, rpath);
- pfx.fp_payload_proto = FIB_PROTOCOL_IP6;
+ pfx.fp_payload_proto = DPO_PROTO_IP6;
}
else if (unformat (line_input,
"mpls-lookup-in-table %d",
@@ -548,7 +548,7 @@ vnet_mpls_local_label (vlib_main_t * vm,
rpath.frp_label = MPLS_LABEL_INVALID;
rpath.frp_proto = FIB_PROTOCOL_MPLS;
rpath.frp_sw_if_index = FIB_NODE_INDEX_INVALID;
- pfx.fp_payload_proto = FIB_PROTOCOL_MPLS;
+ pfx.fp_payload_proto = DPO_PROTO_MPLS;
vec_add1(rpaths, rpath);
}
else
@@ -597,10 +597,16 @@ vnet_mpls_local_label (vlib_main_t * vm,
pfx.fp_len = 21;
pfx.fp_label = local_label;
+ if (NULL == rpaths)
+ {
+ error = clib_error_return(0 , "no paths");
+ goto done;
+ }
+
/*
* the CLI parsing stored table Ids, swap to FIB indicies
*/
- fi = fib_table_id_find_fib_index(pfx.fp_payload_proto,
+ fi = fib_table_id_find_fib_index(dpo_proto_to_fib(pfx.fp_payload_proto),
rpaths[0].frp_fib_index);
if (~0 == fi)