Support tofino build for P4_14 test programs
Also, modified programs such that both the P4_14 and P4_16 versions
produce the same forwarding behaviour and control API (i.e. P4Info)
Change-Id: I90b7fdfedff5f2a89e0f2295d32e2bb61cd0e0eb
diff --git a/tools/test/p4src/p4-14/wcmp.p4 b/tools/test/p4src/p4-14/wcmp.p4
index d24183f..a388be7 100644
--- a/tools/test/p4src/p4-14/wcmp.p4
+++ b/tools/test/p4src/p4-14/wcmp.p4
@@ -3,6 +3,7 @@
#include "include/parser.p4"
#include "include/actions.p4"
#include "include/port_counters.p4"
+#include "include/packet_io.p4"
#define SELECTOR_WIDTH 32
@@ -46,16 +47,16 @@
table table0 {
reads {
- standard_metadata.ingress_port : ternary;
- ethernet.dstAddr : ternary;
- ethernet.srcAddr : ternary;
+ IGR_PORT_FIELD : ternary;
+ ethernet.dstAddr : ternary;
+ ethernet.srcAddr : ternary;
ethernet.etherType : ternary;
}
actions {
set_egress_port;
wcmp_group;
send_to_cpu;
- drop;
+ _drop;
}
support_timeout: true;
}
@@ -89,14 +90,21 @@
}
control ingress {
- apply(table0) {
- wcmp_group {
- apply(wcmp_set_selector_table) {
- wcmp_set_selector {
- apply(wcmp_group_table);
+ ingress_pkt_io();
+ if (not valid(packet_out_hdr)) {
+ apply(table0) {
+ wcmp_group {
+ apply(wcmp_set_selector_table) {
+ wcmp_set_selector {
+ apply(wcmp_group_table);
+ }
}
}
}
}
process_port_counters();
-}
\ No newline at end of file
+}
+
+control egress {
+ egress_pkt_io();
+}