From c968fb692cfd02e90404827346b112f37f7643f7 Mon Sep 17 00:00:00 2001 From: vbnogueira <105989644+vbnogueira@users.noreply.github.com> Date: Tue, 27 Aug 2024 04:19:59 -0300 Subject: [PATCH] Remove priority field from ternary table's action (#4879) In P4TC, the kernel doesn't expand the returned bpf action with a priority field because, at least as of now, there is no need for such field. So when this priority field is emitted by the compiler, it causes a mismatch between what the kernel returns and what the eBPF program is expecting Signed-off-by: Victor Nogueira --- backends/tc/ebpfCodeGen.cpp | 6 ------ .../default_hit_const_example_control_blocks.c | 1 - testdata/p4tc_samples_outputs/matchtype_control_blocks.c | 1 - .../mix_matchtype_example_control_blocks.c | 2 -- .../multiple_tables_example_01_control_blocks.c | 1 - .../multiple_tables_example_02_control_blocks.c | 1 - .../simple_ternary_example_control_blocks.c | 1 - 7 files changed, 13 deletions(-) diff --git a/backends/tc/ebpfCodeGen.cpp b/backends/tc/ebpfCodeGen.cpp index c74f1607168..352a67f2e88 100644 --- a/backends/tc/ebpfCodeGen.cpp +++ b/backends/tc/ebpfCodeGen.cpp @@ -896,12 +896,6 @@ void EBPFTablePNA::emitValueStructStructure(EBPF::CodeBuilder *builder) { builder->append("is_default_hit_act:1;"); builder->newline(); - if (isTernaryTable()) { - builder->emitIndent(); - builder->append("__u32 priority;"); - builder->newline(); - } - builder->emitIndent(); builder->append("union "); builder->blockStart(); diff --git a/testdata/p4tc_samples_outputs/default_hit_const_example_control_blocks.c b/testdata/p4tc_samples_outputs/default_hit_const_example_control_blocks.c index 6ea00fb9e14..e86861498d2 100644 --- a/testdata/p4tc_samples_outputs/default_hit_const_example_control_blocks.c +++ b/testdata/p4tc_samples_outputs/default_hit_const_example_control_blocks.c @@ -23,7 +23,6 @@ struct __attribute__((__packed__)) MainControlImpl_set_ct_options_value { u32 hit:1, is_default_miss_act:1, is_default_hit_act:1; - __u32 priority; union { struct { } _NoAction; diff --git a/testdata/p4tc_samples_outputs/matchtype_control_blocks.c b/testdata/p4tc_samples_outputs/matchtype_control_blocks.c index d543802f06f..ab3253b2dbb 100644 --- a/testdata/p4tc_samples_outputs/matchtype_control_blocks.c +++ b/testdata/p4tc_samples_outputs/matchtype_control_blocks.c @@ -47,7 +47,6 @@ struct __attribute__((__packed__)) MainControlImpl_ipv4_tbl_2_value { u32 hit:1, is_default_miss_act:1, is_default_hit_act:1; - __u32 priority; union { struct { } _NoAction; diff --git a/testdata/p4tc_samples_outputs/mix_matchtype_example_control_blocks.c b/testdata/p4tc_samples_outputs/mix_matchtype_example_control_blocks.c index b87eb3e19f4..8b0c6015efa 100644 --- a/testdata/p4tc_samples_outputs/mix_matchtype_example_control_blocks.c +++ b/testdata/p4tc_samples_outputs/mix_matchtype_example_control_blocks.c @@ -47,7 +47,6 @@ struct __attribute__((__packed__)) MainControlImpl_ipv4_tbl_2_value { u32 hit:1, is_default_miss_act:1, is_default_hit_act:1; - __u32 priority; union { struct { } _NoAction; @@ -76,7 +75,6 @@ struct __attribute__((__packed__)) MainControlImpl_ipv4_tbl_3_value { u32 hit:1, is_default_miss_act:1, is_default_hit_act:1; - __u32 priority; union { struct { } _NoAction; diff --git a/testdata/p4tc_samples_outputs/multiple_tables_example_01_control_blocks.c b/testdata/p4tc_samples_outputs/multiple_tables_example_01_control_blocks.c index 65dcc0ba4ff..3209d563f68 100644 --- a/testdata/p4tc_samples_outputs/multiple_tables_example_01_control_blocks.c +++ b/testdata/p4tc_samples_outputs/multiple_tables_example_01_control_blocks.c @@ -179,7 +179,6 @@ struct __attribute__((__packed__)) MainControlImpl_set_ct_options_value { u32 hit:1, is_default_miss_act:1, is_default_hit_act:1; - __u32 priority; union { struct { } _NoAction; diff --git a/testdata/p4tc_samples_outputs/multiple_tables_example_02_control_blocks.c b/testdata/p4tc_samples_outputs/multiple_tables_example_02_control_blocks.c index 1e693351ec0..f14364a20ce 100644 --- a/testdata/p4tc_samples_outputs/multiple_tables_example_02_control_blocks.c +++ b/testdata/p4tc_samples_outputs/multiple_tables_example_02_control_blocks.c @@ -176,7 +176,6 @@ struct __attribute__((__packed__)) MainControlImpl_set_ct_options_value { u32 hit:1, is_default_miss_act:1, is_default_hit_act:1; - __u32 priority; union { struct { } _NoAction; diff --git a/testdata/p4tc_samples_outputs/simple_ternary_example_control_blocks.c b/testdata/p4tc_samples_outputs/simple_ternary_example_control_blocks.c index 3854e10af98..f8bf4947570 100644 --- a/testdata/p4tc_samples_outputs/simple_ternary_example_control_blocks.c +++ b/testdata/p4tc_samples_outputs/simple_ternary_example_control_blocks.c @@ -23,7 +23,6 @@ struct __attribute__((__packed__)) ingress_nh_table_value { u32 hit:1, is_default_miss_act:1, is_default_hit_act:1; - __u32 priority; union { struct { } _NoAction;