P4-related cherry-picks for 1.12

Squashed. Includes the following commits from master:

8b19a07297 Fixed onos.py
74174bf177 Fix 'unable to translate flow rule' in p4-tutorial icmpdropper
4555c5f308 Minor refactoring of BMv2 mininet scripts
07b2b70f53 Refactored PI-ECMP app to use action profiles of basic.p4
6ffd3772b7 ONOS-7050 First stab at PI translation store
2d4271fc20 ONOS-7050 Refactored PI translation service and store
3874b44821 ONOS-7050 Refactored P4Runtime FRP to use distributed stores
41efe435be ONOS-7050 Refactored P4Runtime GP to use distributed stores
806f7b7418 ONOS-6810 Implement Mastership handling in general DeviceProvider
c7922a4b40 ONOS-7267 Fix pipeconf UI

Change-Id: I279b6477f48ebec768b494799feb12faadbd559c
diff --git a/tools/dev/mininet/onos.py b/tools/dev/mininet/onos.py
index 9b59cc7..2e7b6f7 100755
--- a/tools/dev/mininet/onos.py
+++ b/tools/dev/mininet/onos.py
@@ -364,14 +364,11 @@
             time.sleep( 1 )
         info( ' ssh-port' )
         waitListening( server=self, port=KarafPort, callback=self.sanityCheck )
-        info( ' openflow-port' )
-        waitListening( server=self, port=OpenFlowPort,
-                       callback=self.sanityCheck )
-        info( ' client' )
+        info( ' protocol' )
         while True:
             result = quietRun( '%s -h %s "apps -a"' %
                                ( self.client, self.IP() ), shell=True )
-            if 'openflow' in result:
+            if 'openflow' in result or 'p4runtime' in result:
                 break
             info( '.' )
             self.sanityCheck()
@@ -380,7 +377,7 @@
         while True:
             result = quietRun( '%s -h %s "nodes"' %
                                ( self.client, self.IP() ), shell=True )
-            nodeStr = 'id=%s, address=%s:%s, state=READY, updated' %\
+            nodeStr = 'id=%s, address=%s:%s, state=READY' %\
                       ( self.IP(), self.IP(), CopycatPort )
             if nodeStr in result:
                 break