From: John Lo Date: Tue, 9 Jan 2018 04:19:18 +0000 (-0500) Subject: GRE tunnel key should use fib_index instead of fib_id (VPP-1118) X-Git-Tag: v18.01-rc2~8 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F10%2F10010%2F1;p=vpp.git GRE tunnel key should use fib_index instead of fib_id (VPP-1118) Follow up fix - vl_api_gre_add_del_tunnel_t_handler should pass outer_fib_id from API message to vnet_gre_add_del_tunnel() and not convert it to fib_index, since vnet_gre_add_del_tunnel() already perform the lookup to get fib_index from fib_id. Change-Id: I24967a97f82ce018ddef596e556bd3eb1706cb63 Signed-off-by: John Lo --- diff --git a/src/vnet/gre/gre_api.c b/src/vnet/gre/gre_api.c index ceeb1d4c697..bcf01e2153f 100644 --- a/src/vnet/gre/gre_api.c +++ b/src/vnet/gre/gre_api.c @@ -54,19 +54,8 @@ static void vl_api_gre_add_del_tunnel_t_handler vl_api_gre_add_del_tunnel_reply_t *rmp; int rv = 0; vnet_gre_add_del_tunnel_args_t _a, *a = &_a; - u32 outer_fib_id; - u32 p; u32 sw_if_index = ~0; - p = fib_table_find (!mp->is_ipv6 ? FIB_PROTOCOL_IP4 : FIB_PROTOCOL_IP6, - ntohl (mp->outer_fib_id)); - if (p == ~0) - { - rv = VNET_API_ERROR_NO_SUCH_FIB; - goto out; - } - outer_fib_id = p; - /* Check src & dst are different */ if ((mp->is_ipv6 && memcmp (mp->src_address, mp->dst_address, 16) == 0) || (!mp->is_ipv6 && memcmp (mp->src_address, mp->dst_address, 4) == 0)) @@ -92,7 +81,7 @@ static void vl_api_gre_add_del_tunnel_t_handler clib_memcpy (&(a->dst.ip6), mp->dst_address, 16); } - a->outer_fib_id = outer_fib_id; + a->outer_fib_id = ntohl (mp->outer_fib_id); rv = vnet_gre_add_del_tunnel (a, &sw_if_index); out: