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();
+}