Bumped supported revisions of P4 tools

Includes:
- Use new P4Runtime "v1" package names
- Removed VALID match
- New table entry priority spec (1 is min priority, not 0)
- Fixed p4c-bm2-ss to include arch flag
- Re-compiled P4 programs with more recent p4c (with updated p4info)

Change-Id: I05908f40eda0f0c755009268fd261fb8bcc9be35
diff --git a/protocols/p4runtime/model/src/main/java/org/onosproject/p4runtime/model/P4InfoParser.java b/protocols/p4runtime/model/src/main/java/org/onosproject/p4runtime/model/P4InfoParser.java
index f8d6082..e60f25f 100644
--- a/protocols/p4runtime/model/src/main/java/org/onosproject/p4runtime/model/P4InfoParser.java
+++ b/protocols/p4runtime/model/src/main/java/org/onosproject/p4runtime/model/P4InfoParser.java
@@ -47,20 +47,20 @@
 import org.onosproject.net.pi.model.PiTableId;
 import org.onosproject.net.pi.model.PiTableModel;
 import org.onosproject.net.pi.model.PiTableType;
-import p4.config.P4InfoOuterClass;
-import p4.config.P4InfoOuterClass.Action;
-import p4.config.P4InfoOuterClass.ActionProfile;
-import p4.config.P4InfoOuterClass.ActionRef;
-import p4.config.P4InfoOuterClass.ControllerPacketMetadata;
-import p4.config.P4InfoOuterClass.Counter;
-import p4.config.P4InfoOuterClass.CounterSpec;
-import p4.config.P4InfoOuterClass.DirectCounter;
-import p4.config.P4InfoOuterClass.DirectMeter;
-import p4.config.P4InfoOuterClass.MatchField;
-import p4.config.P4InfoOuterClass.Meter;
-import p4.config.P4InfoOuterClass.MeterSpec;
-import p4.config.P4InfoOuterClass.P4Info;
-import p4.config.P4InfoOuterClass.Table;
+import p4.config.v1.P4InfoOuterClass;
+import p4.config.v1.P4InfoOuterClass.Action;
+import p4.config.v1.P4InfoOuterClass.ActionProfile;
+import p4.config.v1.P4InfoOuterClass.ActionRef;
+import p4.config.v1.P4InfoOuterClass.ControllerPacketMetadata;
+import p4.config.v1.P4InfoOuterClass.Counter;
+import p4.config.v1.P4InfoOuterClass.CounterSpec;
+import p4.config.v1.P4InfoOuterClass.DirectCounter;
+import p4.config.v1.P4InfoOuterClass.DirectMeter;
+import p4.config.v1.P4InfoOuterClass.MatchField;
+import p4.config.v1.P4InfoOuterClass.Meter;
+import p4.config.v1.P4InfoOuterClass.MeterSpec;
+import p4.config.v1.P4InfoOuterClass.P4Info;
+import p4.config.v1.P4InfoOuterClass.Table;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -103,7 +103,6 @@
 
     private static final Map<MatchField.MatchType, PiMatchType> MATCH_TYPE_MAP =
             new ImmutableMap.Builder<MatchField.MatchType, PiMatchType>()
-                    .put(MatchField.MatchType.VALID, PiMatchType.VALID)
                     .put(MatchField.MatchType.EXACT, PiMatchType.EXACT)
                     .put(MatchField.MatchType.LPM, PiMatchType.LPM)
                     .put(MatchField.MatchType.TERNARY, PiMatchType.TERNARY)
@@ -211,7 +210,8 @@
                             tableMsg.getSize(),
                             tableCounterMapBuilder.build(),
                             tableMeterMapBuilder.build(),
-                            tableMsg.getWithEntryTimeout(),
+                            !tableMsg.getIdleTimeoutBehavior()
+                                    .equals(Table.IdleTimeoutBehavior.NO_TIMEOUT),
                             tableFieldMapBuilder.build(),
                             tableActionMapBuilder.build(),
                             actionMap.get(tableMsg.getConstDefaultActionId()),
@@ -307,8 +307,7 @@
         return meterMap;
     }
 
-    private static Map<Integer, PiRegisterModel> parseRegisters(P4Info p4info)
-            throws P4InfoParserException {
+    private static Map<Integer, PiRegisterModel> parseRegisters(P4Info p4info) {
         final Map<Integer, PiRegisterModel> registerMap = Maps.newHashMap();
         for (P4InfoOuterClass.Register registerMsg : p4info.getRegistersList()) {
             registerMap.put(registerMsg.getPreamble().getId(),
diff --git a/protocols/p4runtime/model/src/test/java/org/onosproject/p4runtime/model/P4InfoParserTest.java b/protocols/p4runtime/model/src/test/java/org/onosproject/p4runtime/model/P4InfoParserTest.java
index 452a7a7..e23a49c 100644
--- a/protocols/p4runtime/model/src/test/java/org/onosproject/p4runtime/model/P4InfoParserTest.java
+++ b/protocols/p4runtime/model/src/test/java/org/onosproject/p4runtime/model/P4InfoParserTest.java
@@ -22,6 +22,7 @@
 import com.google.protobuf.TextFormat;
 import org.hamcrest.collection.IsIterableContainingInAnyOrder;
 import org.hamcrest.collection.IsIterableContainingInOrder;
+import org.junit.Assert;
 import org.junit.Test;
 import org.onosproject.net.pi.model.PiActionId;
 import org.onosproject.net.pi.model.PiActionModel;
@@ -40,22 +41,23 @@
 import org.onosproject.net.pi.model.PiPipelineModel;
 import org.onosproject.net.pi.model.PiTableId;
 import org.onosproject.net.pi.model.PiTableModel;
-import p4.config.P4InfoOuterClass.Table;
-import p4.config.P4InfoOuterClass.P4Info;
-import p4.config.P4InfoOuterClass.MatchField;
-import p4.config.P4InfoOuterClass.ActionRef;
+import p4.config.v1.P4InfoOuterClass.ActionRef;
+import p4.config.v1.P4InfoOuterClass.MatchField;
+import p4.config.v1.P4InfoOuterClass.P4Info;
+import p4.config.v1.P4InfoOuterClass.Table;
 
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.*;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
 import static org.hamcrest.core.IsNull.notNullValue;
 
 /**
@@ -69,8 +71,6 @@
     private static final Long DEFAULT_MAX_TABLE_SIZE = 1024L;
     private static final Long DEFAULT_MAX_ACTION_PROFILE_SIZE = 64L;
 
-    public P4InfoParserTest() throws MalformedURLException { }
-
     /**
      * Tests parse method.
      * @throws Exception if equality group objects dose not match as expected
@@ -116,15 +116,14 @@
         List<PiMatchFieldModel> piMatchFieldList = new ArrayList<>();
 
         for (MatchField matchFieldIter : matchFieldList) {
-            int matchTypeNumber = matchFieldIter.getMatchType().getNumber();
-            PiMatchType piMatchType = PiMatchType.VALID;
-            switch (matchTypeNumber) {
-                case 1: piMatchType = PiMatchType.VALID; break;
-                case 2: piMatchType = PiMatchType.EXACT; break;
-                case 3: piMatchType = PiMatchType.LPM; break;
-                case 4: piMatchType = piMatchType.TERNARY; break;
-                case 5: piMatchType = piMatchType.RANGE; break;
-                default: piMatchType = PiMatchType.VALID; break;
+            MatchField.MatchType matchType = matchFieldIter.getMatchType();
+            PiMatchType piMatchType;
+            switch (matchType) {
+                case EXACT: piMatchType = PiMatchType.EXACT; break;
+                case LPM: piMatchType = PiMatchType.LPM; break;
+                case TERNARY: piMatchType = PiMatchType.TERNARY; break;
+                case RANGE: piMatchType = PiMatchType.RANGE; break;
+                default: Assert.fail(); return;
             }
             piMatchFieldList.add(new P4MatchFieldModel(PiMatchFieldId.of(matchFieldIter.getName()),
                                                        matchFieldIter.getBitwidth(), piMatchType));