linux-cp: check if lcp_itf_pair exists before creating tap 86/39486/3
authorStanislav Zaikin <stanislav.zaikin@46labs.com>
Tue, 5 Sep 2023 08:40:07 +0000 (10:40 +0200)
committerMatthew Smith <mgsmith@netgate.com>
Fri, 13 Oct 2023 20:45:57 +0000 (20:45 +0000)
Now we create tun/tap and then check whether lcp_itf_pair was already
created. Move the check in the beginning.

Type: fix

Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
Change-Id: I848685a9cfdbe92a5e38ecb8e5d5322262b4e384

src/plugins/linux-cp/lcp_interface.c

index fab048a..921dccf 100644 (file)
@@ -782,6 +782,15 @@ lcp_itf_pair_create (u32 phy_sw_if_index, u8 *host_if_name,
   const vnet_sw_interface_t *sw;
   const vnet_hw_interface_t *hw;
   const lcp_itf_pair_t *lip;
+  index_t lipi;
+
+  lipi = lcp_itf_pair_find_by_phy (phy_sw_if_index);
+
+  if (lipi != INDEX_INVALID)
+    {
+      LCP_ITF_PAIR_ERR ("pair_create: already created");
+      return VNET_API_ERROR_VALUE_EXIST;
+    }
 
   if (!vnet_sw_if_index_is_api_valid (phy_sw_if_index))
     {