ip: fix ip ACL traces 90/37690/6
authorBenoît Ganne <bganne@cisco.com>
Fri, 18 Nov 2022 16:05:10 +0000 (17:05 +0100)
committerDave Barach <vpp@barachs.net>
Thu, 2 Feb 2023 16:27:28 +0000 (16:27 +0000)
If we match a next table, we must save its index in the trace instead of
the index of the 1st table.

Type: fix

Change-Id: Idd862242e7fc200eb3ab29b17a26131b844af2c0
Signed-off-by: Benoît Ganne <bganne@cisco.com>
src/vnet/ip/ip_in_out_acl.c

index d8d6d76..11e3873 100644 (file)
@@ -327,8 +327,9 @@ ip_in_out_acl_inline_trace (
            {
              while (1)
                {
-                 if (PREDICT_TRUE (t[0]->next_table_index != ~0))
-                   t[0] = pool_elt_at_index (tables, t[0]->next_table_index);
+                 table_index[0] = t[0]->next_table_index;
+                 if (PREDICT_TRUE (table_index[0] != ~0))
+                   t[0] = pool_elt_at_index (tables, table_index[0]);
                  else
                    {
                      _next[0] = (t[0]->miss_next_index < n_next_nodes) ?
@@ -434,8 +435,9 @@ ip_in_out_acl_inline_trace (
            {
              while (1)
                {
-                 if (PREDICT_TRUE (t[1]->next_table_index != ~0))
-                   t[1] = pool_elt_at_index (tables, t[1]->next_table_index);
+                 table_index[1] = t[1]->next_table_index;
+                 if (PREDICT_TRUE (table_index[1] != ~0))
+                   t[1] = pool_elt_at_index (tables, table_index[1]);
                  else
                    {
                      _next[1] = (t[1]->miss_next_index < n_next_nodes) ?
@@ -636,8 +638,9 @@ ip_in_out_acl_inline_trace (
            {
              while (1)
                {
-                 if (PREDICT_TRUE (t0->next_table_index != ~0))
-                   t0 = pool_elt_at_index (tables, t0->next_table_index);
+                 table_index0 = t0->next_table_index;
+                 if (PREDICT_TRUE (table_index0 != ~0))
+                   t0 = pool_elt_at_index (tables, table_index0);
                  else
                    {
                      next0 = (t0->miss_next_index < n_next_nodes) ?