ip-neighbor: fix show ip neighbor issue 57/26957/2
authorMichael Yu <michael.a.yu@nokia-sbell.com>
Fri, 8 May 2020 08:42:58 +0000 (16:42 +0800)
committerNeale Ranns <nranns@cisco.com>
Sun, 10 May 2020 08:09:56 +0000 (08:09 +0000)
Fix the issue that vppctl show ip4{6} neighbor [interface] command can't
show entries correctly, example: both ip4 and ip6 entries can be shown
with command:
vppctl show ip4 neighbor.

Type: fix

Signed-off-by: Michael Yu <michael.a.yu@nokia-sbell.com>
Change-Id: I229368b71cd285adce994c8290cc9d7e4c4f5aa6
Signed-off-by: Michael Yu <michael.a.yu@nokia-sbell.com>
src/vnet/ip-neighbor/ip_neighbor.c

index a0179f7..09b5605 100644 (file)
@@ -821,12 +821,11 @@ ip_neighbor_entries (u32 sw_if_index, ip46_type_t type)
   /* *INDENT-OFF* */
   pool_foreach (ipn, ip_neighbor_pool,
   ({
-    if (sw_if_index != ~0 &&
-        ipn->ipn_key->ipnk_sw_if_index != sw_if_index &&
+    if ((sw_if_index == ~0 ||
+        ipn->ipn_key->ipnk_sw_if_index == sw_if_index) &&
         (IP46_TYPE_ANY == type ||
-         (ipn->ipn_key->ipnk_type == type)))
-      continue;
-    vec_add1 (ipnis, ip_neighbor_get_index(ipn));
+         ipn->ipn_key->ipnk_type == type))
+       vec_add1 (ipnis, ip_neighbor_get_index(ipn));
   }));
 
   /* *INDENT-ON* */