From f726f539185609cb4f3aee7f34906e8b538cd33e Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Mon, 11 Mar 2019 05:34:50 -0700 Subject: FIB: path parsing, table-id not fib-index (VPP-1586) Change-Id: Ib27952935393163eaabf005c69b1cbc2feca2b98 Signed-off-by: Neale Ranns --- src/vnet/fib/fib_api.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/vnet/fib') diff --git a/src/vnet/fib/fib_api.c b/src/vnet/fib/fib_api.c index 98f92c3e73f..ada0012ecd0 100644 --- a/src/vnet/fib/fib_api.c +++ b/src/vnet/fib/fib_api.c @@ -56,10 +56,20 @@ fib_path_api_parse (const vl_api_fib_path_t *in, out->frp_proto = in->afi; // .frp_addr = (NULL == next_hop ? zero_addr : *next_hop), out->frp_sw_if_index = ntohl(in->sw_if_index); - out->frp_fib_index = ntohl(in->table_id); out->frp_weight = in->weight; out->frp_preference = in->preference; + if (DPO_PROTO_IP4 == out->frp_proto || + DPO_PROTO_IP6 == out->frp_proto || + DPO_PROTO_MPLS == out->frp_proto) + { + out->frp_fib_index = fib_table_find (dpo_proto_to_fib(out->frp_proto), + ntohl (in->table_id)); + + if (~0 == out->frp_fib_index) + return (VNET_API_ERROR_NO_SUCH_FIB); + } + /* * the special INVALID label meams we are not recursing via a * label. Exp-null value is never a valid via-label so that -- cgit 1.2.3-korg