diff --git a/core/api/src/main/java/org/onosproject/net/meter/MeterId.java b/core/api/src/main/java/org/onosproject/net/meter/MeterId.java
index c8eec46..22ef064 100644
--- a/core/api/src/main/java/org/onosproject/net/meter/MeterId.java
+++ b/core/api/src/main/java/org/onosproject/net/meter/MeterId.java
@@ -20,34 +20,47 @@
 import static com.google.common.base.Preconditions.checkArgument;
 
 /**
- * A representation of a meter id.
+ * A representation of a meter identifier.
  * Uniquely identifies a meter in the scope of a single device.
+ * <p>
+ * The meter_id field uniquely identifies a meter within a switch. Meters are
+ * defined starting with meter_id=1 up to the maximum number of meters that the
+ * switch can support. The OpenFlow protocol also defines some additional
+ * virtual meters that can not be associated with flows:
  */
 public final class MeterId extends Identifier<Long> {
 
-    static final long MAX = 0xFFFF0000;
+    /**  Flow meters can use any number up to MAX. */
+    public static final long MAX = 0xFFFF0000L;
 
-    public static final MeterId SLOWPATH = new MeterId(0xFFFFFFFD);
-    public static final MeterId CONTROLLER = new MeterId(0xFFFFFFFE);
-    public static final MeterId ALL = new MeterId(0xFFFFFFFF);
+
+    /* The following are virtual meters as defined in openflow-spec-1.3 P. 58 */
+    /** Meter for slow datapath, if any. */
+    public static final MeterId SLOWPATH = new MeterId(0xFFFFFFFDL);
+    /** Meter for controller connection. */
+    public static final MeterId CONTROLLER = new MeterId(0xFFFFFFFEL);
+    /** Represents all meters for stat requests commands. */
+    public static final MeterId ALL = new MeterId(0xFFFFFFFFL);
+
 
     private MeterId(long id) {
         super(id);
-        checkArgument(id >= MAX, "id cannot be larger than 0xFFFF0000");
     }
 
     @Override
     public String toString() {
-        return Long.toHexString(this.identifier);
+        return Long.toHexString(identifier);
     }
 
     /**
      * Creates a new meter identifier.
      *
-     * @param id backing identifier value
+     * @param id the backing identifier value
      * @return meter identifier
      */
     public static MeterId meterId(long id) {
+        checkArgument(id > 0, "id cannot be negative nor 0");
+        checkArgument(id <= MAX, "id cannot be larger than {}", MAX);
         return new MeterId(id);
     }
 }
diff --git a/core/common/src/test/java/org/onosproject/codec/impl/TrafficTreatmentCodecTest.java b/core/common/src/test/java/org/onosproject/codec/impl/TrafficTreatmentCodecTest.java
index 3a26a92..250b8bd 100644
--- a/core/common/src/test/java/org/onosproject/codec/impl/TrafficTreatmentCodecTest.java
+++ b/core/common/src/test/java/org/onosproject/codec/impl/TrafficTreatmentCodecTest.java
@@ -64,7 +64,7 @@
         Instruction output = Instructions.createOutput(PortNumber.portNumber(0));
         Instruction modL2Src = Instructions.modL2Src(MacAddress.valueOf("11:22:33:44:55:66"));
         Instruction modL2Dst = Instructions.modL2Dst(MacAddress.valueOf("44:55:66:77:88:99"));
-        MeterId meterId = MeterId.meterId(0);
+        MeterId meterId = MeterId.meterId(1);
         Instruction meter = Instructions.meterTraffic(meterId);
         Instruction transition = Instructions.transition(1);
         TrafficTreatment.Builder tBuilder = DefaultTrafficTreatment.builder();
diff --git a/core/common/src/test/resources/org/onosproject/codec/impl/TrafficTreatment.json b/core/common/src/test/resources/org/onosproject/codec/impl/TrafficTreatment.json
index c185905..40e4eea 100644
--- a/core/common/src/test/resources/org/onosproject/codec/impl/TrafficTreatment.json
+++ b/core/common/src/test/resources/org/onosproject/codec/impl/TrafficTreatment.json
@@ -11,11 +11,11 @@
     },
     {
       "type": "METER",
-      "meterId": "0"
+      "meterId": "1"
     },
     {
       "type": "TABLE",
       "tableId": "1"
     }
   ]
-}
\ No newline at end of file
+}
