summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Lo <loj@cisco.com>2018-01-08 23:19:18 -0500
committerJohn Lo <loj@cisco.com>2018-01-08 23:19:18 -0500
commiteeafbef61db693437ff6866974053e0050413255 (patch)
treeeae146e87e2721bcf5a96478ff1b92dfefdc3ebc
parent43ad007a0ce57ed54864ece41714440cf838f356 (diff)
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 <loj@cisco.com>
-rw-r--r--src/vnet/gre/gre_api.c13
1 files changed, 1 insertions, 12 deletions
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: