mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 14:25:26 +00:00
odp-execute: Fix ipv4 missing clearing of connection tracking fields.
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.
Fixes: 92eb03f7b0
("odp-execute: Add ISA implementation of set_masked IPv4 action")
Signed-off-by: Emma Finn <emma.finn@intel.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
@@ -477,6 +477,8 @@ action_avx512_ipv4_set_addrs(struct dp_packet_batch *batch,
|
|||||||
|
|
||||||
th->tcp_csum = tcp_checksum;
|
th->tcp_csum = tcp_checksum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pkt_metadata_init_conn(&packet->md);
|
||||||
}
|
}
|
||||||
/* Write back the modified IPv4 addresses. */
|
/* Write back the modified IPv4 addresses. */
|
||||||
_mm256_mask_storeu_epi32((void *) nh, 0x1F, v_new_hdr);
|
_mm256_mask_storeu_epi32((void *) nh, 0x1F, v_new_hdr);
|
||||||
|
@@ -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) {
|
if (failed) {
|
||||||
VLOG_ERR("Autovalidation of %s failed. Details:\n%s",
|
VLOG_ERR("Autovalidation of %s failed. Details:\n%s",
|
||||||
action_impls[impl].name, ds_cstr(&log_msg));
|
action_impls[impl].name, ds_cstr(&log_msg));
|
||||||
|
Reference in New Issue
Block a user