[SDFAB-352][SDFAB-353] Retrieve MeterFeatures from the P4RT southbound, Extend MeterProviderService and revisit MeterStore

Change-Id: If0dae53643988cb551ff5020abd792cb6d33ff6b
diff --git a/core/api/src/main/java/org/onosproject/net/meter/MeterFeatures.java b/core/api/src/main/java/org/onosproject/net/meter/MeterFeatures.java
index 2749687..ff846eb 100644
--- a/core/api/src/main/java/org/onosproject/net/meter/MeterFeatures.java
+++ b/core/api/src/main/java/org/onosproject/net/meter/MeterFeatures.java
@@ -35,10 +35,26 @@
      * Returns the maximum number of meters accepted by the device.
      *
      * @return the maximum meter value.
+     * @deprecated in onos-2.5 replaced by {@link #startIndex()} and {@link #endIndex()}
      */
+    @Deprecated
     long maxMeter();
 
     /**
+     * Returns the start index (inclusive) of the meters.
+     *
+     * @return the start index
+     */
+    long startIndex();
+
+    /**
+     * Returns the end index (inclusive) of the meters.
+     *
+     * @return the end index
+     */
+    long endIndex();
+
+    /**
      * Returns band types supported.
      *
      * @return the band types supported.
@@ -89,6 +105,13 @@
     Set<MeterFeaturesFlag> features();
 
     /**
+     * Returns Meter Scope.
+     *
+     * @return meter scope
+     */
+    MeterScope scope();
+
+    /**
      * A meter features builder.
      */
     interface Builder {
@@ -105,10 +128,28 @@
          *
          * @param maxMeter the maximum meters available
          * @return this builder
+         * @deprecated in onos-2.5 replaced by {@link #withStartIndex(long)} and {@link #withEndIndex(long)}
          */
+        @Deprecated
         Builder withMaxMeters(long maxMeter);
 
         /**
+         * Assigns the start index (inclusive) for this meter features.
+         *
+         * @param startIndex the start index
+         * @return this builder
+         */
+        Builder withStartIndex(long startIndex);
+
+        /**
+         * Assigns the end index (inclusive) for this meter features.
+         *
+         * @param endIndex the end index
+         * @return this builder
+         */
+        Builder withEndIndex(long endIndex);
+
+        /**
          * Assigns the max bands value for this meter features.
          *
          * @param maxBands the maximum bands available.
@@ -165,6 +206,14 @@
         Builder withFeatures(Set<MeterFeaturesFlag> featureFlags);
 
         /**
+         * Assigns the meter scope.
+         *
+         * @param scope the scope
+         * @return this builder
+         */
+        Builder withScope(MeterScope scope);
+
+        /**
          * Builds the Meter Features based on the specified parameters.
          *
          * @return the meter features