NAT: interface fib fix (VPP-1691) 69/20069/2
authorFilip Varga <fivarga@cisco.com>
Tue, 11 Jun 2019 08:45:21 +0000 (10:45 +0200)
committerOle Trøan <otroan@employees.org>
Wed, 12 Jun 2019 07:42:59 +0000 (07:42 +0000)
Change-Id: I2d1e2addb2e440c23c255ac7709169f7909cb0be
Signed-off-by: Filip Varga <fivarga@cisco.com>
src/plugins/nat/nat.c

index 9eb0384..363c1c0 100755 (executable)
@@ -2178,6 +2178,7 @@ snat_update_outside_fib (u32 sw_if_index, u32 new_fib_index,
   nat_outside_fib_t *outside_fib;
   snat_interface_t *i;
   u8 is_add = 1;
+  u8 match = 0;
 
   if (new_fib_index == old_fib_index)
     return;
@@ -2185,14 +2186,21 @@ snat_update_outside_fib (u32 sw_if_index, u32 new_fib_index,
   if (!vec_len (sm->outside_fibs))
     return;
 
-  pool_foreach (i, sm->interfaces, (
-                                    {
-                                    if (i->sw_if_index == sw_if_index)
-                                    {
-                                    if (!(nat_interface_is_outside (i)))
-                                    return;}
-                                    }
-               ));
+  /* *INDENT-OFF* */
+  pool_foreach (i, sm->interfaces,
+    ({
+      if (i->sw_if_index == sw_if_index)
+        {
+          if (!(nat_interface_is_outside (i)))
+           return;
+          match = 1;
+        }
+    }));
+  /* *INDENT-ON* */
+
+  if (!match)
+    return;
+
   vec_foreach (outside_fib, sm->outside_fibs)
   {
     if (outside_fib->fib_index == old_fib_index)