return (FIB_FORW_CHAIN_TYPE_UNICAST_IP4);
}
+fib_forward_chain_type_t
+fib_forw_chain_type_from_fib_proto (fib_protocol_t proto)
+{
+ switch (proto)
+ {
+ case FIB_PROTOCOL_IP4:
+ return (FIB_FORW_CHAIN_TYPE_UNICAST_IP4);
+ case FIB_PROTOCOL_IP6:
+ return (FIB_FORW_CHAIN_TYPE_UNICAST_IP6);
+ case FIB_PROTOCOL_MPLS:
+ return (FIB_FORW_CHAIN_TYPE_MPLS_NON_EOS);
+ }
+ ASSERT(0);
+ return (FIB_FORW_CHAIN_TYPE_UNICAST_IP4);
+}
+
vnet_link_t
fib_forw_chain_type_to_link_type (fib_forward_chain_type_t fct)
{
vnet_main_t *vnm;
vnm = vnet_get_main ();
- memset(rpath, 0, sizeof(*rpath));
+ clib_memset(rpath, 0, sizeof(*rpath));
rpath->frp_weight = 1;
rpath->frp_sw_if_index = ~0;
{
rpath->frp_proto = DPO_PROTO_IP4;
*payload_proto = DPO_PROTO_IP4;
+ fi = fib_table_find (FIB_PROTOCOL_IP4, rpath->frp_fib_index);
+ if (~0 == fi)
+ return 0;
+ rpath->frp_fib_index = fi;
}
else if (unformat (input,
"ip6-lookup-in-table %d",
{
rpath->frp_proto = DPO_PROTO_IP6;
*payload_proto = DPO_PROTO_IP6;
+ fi = fib_table_find (FIB_PROTOCOL_IP6, rpath->frp_fib_index);
+ if (~0 == fi)
+ return 0;
+ rpath->frp_fib_index = fi;
}
else if (unformat (input,
"mpls-lookup-in-table %d",
{
rpath->frp_proto = DPO_PROTO_MPLS;
*payload_proto = DPO_PROTO_MPLS;
+ fi = fib_table_find (FIB_PROTOCOL_MPLS, rpath->frp_fib_index);
+ if (~0 == fi)
+ return 0;
+ rpath->frp_fib_index = fi;
}
else if (unformat (input, "src-lookup"))
{