This patch add clearing of connection tracking fields to the
avx512 implementation of the ipv4 action. This patch also extends
the actions autovalidator to include a compare for packet metadata.

Signed-off-by: Emma Finn <[email protected]>
---
 lib/odp-execute-avx512.c  |  2 ++
 lib/odp-execute-private.c | 12 ++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/lib/odp-execute-avx512.c b/lib/odp-execute-avx512.c
index 6c7713251..66b3998da 100644
--- a/lib/odp-execute-avx512.c
+++ b/lib/odp-execute-avx512.c
@@ -477,6 +477,8 @@ action_avx512_ipv4_set_addrs(struct dp_packet_batch *batch,
 
                 th->tcp_csum = tcp_checksum;
             }
+
+            pkt_metadata_init_conn(&packet->md);
         }
         /* Write back the modified IPv4 addresses. */
         _mm256_mask_storeu_epi32((void *) nh, 0x1F, v_new_hdr);
diff --git a/lib/odp-execute-private.c b/lib/odp-execute-private.c
index f80ae5a23..57be5cfe7 100644
--- a/lib/odp-execute-private.c
+++ b/lib/odp-execute-private.c
@@ -229,6 +229,18 @@ action_autoval_generic(struct dp_packet_batch *batch, 
const struct nlattr *a)
                 }
             }
 
+            /* Compare packet metadata. */
+            if (memcmp(&good_pkt->md, &test_pkt->md, sizeof good_pkt->md)) {
+                ds_put_format(&log_msg, "Autovalidation metadata failed\n");
+                ds_put_format(&log_msg, "Good packet metadata:\n");
+                ds_put_sparse_hex_dump(&log_msg, &good_pkt->md,
+                                       sizeof good_pkt->md, 0, false);
+                ds_put_format(&log_msg, "Test packet metadata:\n");
+                ds_put_sparse_hex_dump(&log_msg, &test_pkt->md,
+                                       sizeof test_pkt->md, 0, false);
+                failed = true;
+            }
+
             if (failed) {
                 VLOG_ERR("Autovalidation of %s failed. Details:\n%s",
                          action_impls[impl].name, ds_cstr(&log_msg));
-- 
2.25.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to