rpath.frp_sw_if_index = ~0;
vec_add1 (rpaths, rpath);
}
+ else if (vec_len (prefixs) > 0 &&
+ unformat (line_input, "via %U",
+ unformat_vnet_sw_interface, vnm,
+ &rpath.frp_sw_if_index))
+ {
+ rpath.frp_weight = 1;
+ rpath.frp_proto = prefixs[0].fp_proto;
+ vec_add1 (rpaths, rpath);
+ }
else if (vec_len (prefixs) > 0 &&
unformat (line_input, "via %U",
unformat_dpo, &dpo, prefixs[0].fp_proto))
pfx.fp_proto = FIB_PROTOCOL_MPLS;
pfx.fp_len = 21;
pfx.fp_label = local_label;
- pfx.fp_payload_proto = DPO_PROTO_MPLS;
+ pfx.fp_payload_proto = fib_proto_to_dpo(rpaths[0].frp_proto);
if (NULL == rpaths)
{
if (~0 == fi)
{
error = clib_error_return(0 , "%U Via table %d does not exist",
- format_fib_protocol, pfx.fp_payload_proto,
+ format_dpo_proto, pfx.fp_payload_proto,
rpaths[0].frp_fib_index);
goto done;
}