[AETHER-1077] Missing entries in default P4RT mirror store.

Default and Table mirrors were using the same name for their internal EC map.
This was leading to empty EC maps in the standby nodes.

Change-Id: I575dfbf5ba5339f8c94c4e5ed218887a11f14d36
diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/AbstractDistributedP4RuntimeMirror.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/AbstractDistributedP4RuntimeMirror.java
index 4bc9536..32bac3e 100644
--- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/AbstractDistributedP4RuntimeMirror.java
+++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/AbstractDistributedP4RuntimeMirror.java
@@ -48,6 +48,7 @@
 import java.util.stream.Collectors;
 
 import static com.google.common.base.Preconditions.checkNotNull;
+import static java.lang.String.format;
 import static org.onosproject.net.pi.service.PiPipeconfWatchdogService.PipelineStatus.READY;
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -63,6 +64,8 @@
         <H extends PiHandle, E extends PiEntity>
         implements P4RuntimeMirror<H, E> {
 
+    private static final String MAP_NAME_TEMPLATE = "onos-p4runtime-mirror-%s-map";
+
     private final Logger log = getLogger(getClass());
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY)
@@ -92,10 +95,17 @@
         this.flushOnPipelineUnknown = flushOnPipelineUnknown;
     }
 
+    /**
+     * Returns a string that identifies the map maintained by this store among
+     * others that uses this abstract class.
+     *
+     * @return string
+     */
+    protected abstract String mapSimpleName();
+
     @Activate
     public void activate() {
-        final String mapName = "onos-p4runtime-mirror-"
-                + entityType.name().toLowerCase();
+        final String fullMapName = format(MAP_NAME_TEMPLATE, mapSimpleName());
         final KryoNamespace serializer = KryoNamespace.newBuilder()
                 .register(KryoNamespaces.API)
                 .register(TimedEntry.class)
@@ -103,14 +113,14 @@
 
         mirrorMap = storageService
                 .<PiHandle, TimedEntry<E>>eventuallyConsistentMapBuilder()
-                .withName(mapName)
+                .withName(fullMapName)
                 .withSerializer(serializer)
                 .withTimestampProvider((k, v) -> new WallClockTimestamp())
                 .build();
 
         annotationsMap = storageService
                 .<PiHandle, Annotations>eventuallyConsistentMapBuilder()
-                .withName(mapName + "-annotations")
+                .withName(fullMapName + "-annotations")
                 .withSerializer(serializer)
                 .withTimestampProvider((k, v) -> new WallClockTimestamp())
                 .build();
diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeActionProfileGroupMirror.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeActionProfileGroupMirror.java
index 9d5d4b1..f4459bc 100644
--- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeActionProfileGroupMirror.java
+++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeActionProfileGroupMirror.java
@@ -33,4 +33,9 @@
     public DistributedP4RuntimeActionProfileGroupMirror() {
         super(PiEntityType.ACTION_PROFILE_GROUP);
     }
+
+    @Override
+    protected String mapSimpleName() {
+        return PiEntityType.ACTION_PROFILE_GROUP.name().toLowerCase();
+    }
 }
diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeActionProfileMemberMirror.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeActionProfileMemberMirror.java
index f84006b..22fbc57 100644
--- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeActionProfileMemberMirror.java
+++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeActionProfileMemberMirror.java
@@ -33,4 +33,9 @@
     public DistributedP4RuntimeActionProfileMemberMirror() {
         super(PiEntityType.ACTION_PROFILE_MEMBER);
     }
+
+    @Override
+    protected String mapSimpleName() {
+        return PiEntityType.ACTION_PROFILE_MEMBER.name().toLowerCase();
+    }
 }
diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeDefaultEntryMirror.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeDefaultEntryMirror.java
index 95eb601..e6b3bdf 100644
--- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeDefaultEntryMirror.java
+++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeDefaultEntryMirror.java
@@ -33,4 +33,9 @@
     public DistributedP4RuntimeDefaultEntryMirror() {
         super(PiEntityType.TABLE_ENTRY);
     }
+
+    @Override
+    protected String mapSimpleName() {
+        return PiEntityType.TABLE_ENTRY.name().toLowerCase() + "-default";
+    }
 }
diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeMeterMirror.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeMeterMirror.java
index 581c83a..48546fc 100644
--- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeMeterMirror.java
+++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeMeterMirror.java
@@ -33,4 +33,9 @@
     public DistributedP4RuntimeMeterMirror() {
         super(PiEntityType.METER_CELL_CONFIG);
     }
+
+    @Override
+    protected String mapSimpleName() {
+        return PiEntityType.METER_CELL_CONFIG.name().toLowerCase();
+    }
 }
diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimePreEntryMirror.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimePreEntryMirror.java
index 35f209e..ed7fba8 100644
--- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimePreEntryMirror.java
+++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimePreEntryMirror.java
@@ -35,4 +35,9 @@
         // invalidate pipeline status.
         super(PiEntityType.PRE_ENTRY, true);
     }
+
+    @Override
+    protected String mapSimpleName() {
+        return PiEntityType.PRE_ENTRY.name().toLowerCase();
+    }
 }
diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeTableMirror.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeTableMirror.java
index 4f5235f..916148e 100644
--- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeTableMirror.java
+++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeTableMirror.java
@@ -33,4 +33,9 @@
     public DistributedP4RuntimeTableMirror() {
         super(PiEntityType.TABLE_ENTRY);
     }
+
+    @Override
+    protected String mapSimpleName() {
+        return PiEntityType.TABLE_ENTRY.name().toLowerCase();
+    }
 }