[ONOS-6557]Add PiCriterion and PiInstruction builders for flow rules

Change-Id: I9fd8b04f8d0f6c9886825dd6d7e782fd3cce7ae9
diff --git a/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java b/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
index 1b264b5..d5fcded 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.flow;
 
+import com.google.common.annotations.Beta;
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.Ip6Address;
 import org.onlab.packet.IpPrefix;
@@ -26,6 +27,7 @@
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.flow.criteria.Criterion;
 import org.onosproject.net.flow.criteria.ExtensionSelector;
+import org.onosproject.net.flow.criteria.PiCriterion;
 
 import java.util.Set;
 
@@ -457,6 +459,15 @@
         Builder matchArpOp(int arpOp);
 
         /**
+         * Matches protocol independent fields.
+         *
+         * @param piCriterion protocol-independent criterion
+         * @return a selection builder
+         */
+        @Beta
+        Builder matchPi(PiCriterion piCriterion);
+
+        /**
          * Uses an extension selector.
          *
          * @param extensionSelector extension selector