From 0ad4a439d68f906295656876cc3bb3092da2cf56 Mon Sep 17 00:00:00 2001 From: jackiechen1985 Date: Thu, 9 May 2019 16:57:16 +0800 Subject: [PATCH] Fix vpp crash bug while deleting dhcp client We must do lock fib while vrf id ~0, otherwise it crashes while unlocking fib. Change-Id: Iec9754ccd67634a132bc5384a4f796d4a65943ae Signed-off-by: jackiechen1985 --- src/plugins/nat/nat.c | 1 + src/vnet/interface.api | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/nat/nat.c b/src/plugins/nat/nat.c index 0d909cedbf4..9eb0384a95b 100755 --- a/src/plugins/nat/nat.c +++ b/src/plugins/nat/nat.c @@ -830,6 +830,7 @@ snat_add_static_mapping (ip4_address_t l_addr, ip4_address_t e_addr, { fib_index = sm->inside_fib_index; vrf_id = sm->inside_vrf_id; + fib_table_lock (fib_index, FIB_PROTOCOL_IP4, FIB_SOURCE_PLUGIN_LOW); } if (!(out2in_only || identity_nat)) diff --git a/src/vnet/interface.api b/src/vnet/interface.api index 8c700e15123..d30f1c285ea 100644 --- a/src/vnet/interface.api +++ b/src/vnet/interface.api @@ -247,7 +247,7 @@ autoreply define sw_interface_add_del_address @param context - sender context, to match reply w/ request @param sw_if_index - index of the interface @param is_ipv6 - if non-zero ipv6, else ipv4 - @param vrf_id - fib table/vrd id to associate the interface with + @param vrf_id - fib table/vrf id to associate the interface with */ autoreply define sw_interface_set_table { -- 2.16.6