ONOS-7066 ONOS-7067 PI abstractions refactoring and P4Info model parser

Includes changes previously reviewed in #15607, #15877, and #15955.

Change-Id: Ie2ff62e415f2099832ebfe05961a879b7b188fc3
diff --git a/core/common/src/main/java/org/onosproject/codec/impl/PiTableModelCodec.java b/core/common/src/main/java/org/onosproject/codec/impl/PiTableModelCodec.java
index 052e083..adf8bd7 100644
--- a/core/common/src/main/java/org/onosproject/codec/impl/PiTableModelCodec.java
+++ b/core/common/src/main/java/org/onosproject/codec/impl/PiTableModelCodec.java
@@ -20,7 +20,7 @@
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.onosproject.codec.CodecContext;
 import org.onosproject.codec.JsonCodec;
-import org.onosproject.net.pi.model.PiTableMatchFieldModel;
+import org.onosproject.net.pi.model.PiMatchFieldModel;
 import org.onosproject.net.pi.model.PiTableModel;
 
 /**
@@ -40,21 +40,21 @@
 
         ObjectNode result = context.mapper().createObjectNode();
 
-        result.put(NAME, table.name());
+        result.put(NAME, table.id().toString());
         result.put(MAX_SIZE, table.maxSize());
-        result.put(HAS_COUNTERS, table.hasCounters());
+        result.put(HAS_COUNTERS, table.counters().size() > 0);
         result.put(SUPPORT_AGING, table.supportsAging());
 
         ArrayNode matchFields = result.putArray(MATCH_FIELDS);
         table.matchFields().forEach(matchField -> {
             ObjectNode matchFieldData =
-                    context.encode(matchField, PiTableMatchFieldModel.class);
+                    context.encode(matchField, PiMatchFieldModel.class);
             matchFields.add(matchFieldData);
         });
 
         ArrayNode actions = result.putArray(ACTIONS);
         table.actions().forEach(action -> {
-            actions.add(action.name());
+            actions.add(action.id().toString());
         });
 
         return result;