diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2DefaultConfiguration.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2DefaultConfiguration.java
index 53a31b9..f047306 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2DefaultConfiguration.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2DefaultConfiguration.java
@@ -18,6 +18,7 @@
 
 import com.eclipsesource.json.JsonArray;
 import com.eclipsesource.json.JsonObject;
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableList;
@@ -36,6 +37,7 @@
 /**
  * Default implementation of a BMv2 configuration backed by a JSON object.
  */
+@Beta
 public final class Bmv2DefaultConfiguration implements Bmv2Configuration {
 
     private final JsonObject json;
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2FlowRuleTranslator.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2FlowRuleTranslator.java
index 3fb5b11..bc768d0 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2FlowRuleTranslator.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2FlowRuleTranslator.java
@@ -37,9 +37,9 @@
      *  <li> action: is built using the context interpreter
      *          {@link Bmv2Interpreter#mapTreatment(org.onosproject.net.flow.TrafficTreatment, Bmv2Configuration)
      *          treatment mapping function} or the flow rule
-     *          {@link org.onosproject.bmv2.api.runtime.Bmv2ExtensionTreatment} extension treatment} (if any).
-     *  <li> timeout: if the table supports timeout, use the same as the flow rule, otherwise none (i.e. permanent
-     *          entry).
+     *          {@link org.onosproject.bmv2.api.runtime.Bmv2ExtensionTreatment extension treatment} (if any).
+     *  <li> timeout: if the table supports timeout, use the same as the flow rule, otherwise none (i.e. returns a
+     *          permanent entry).
      * </ul>
      *
      * @param rule    a flow rule
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2FlowRuleTranslatorException.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2FlowRuleTranslatorException.java
index 49f999d..645ac33 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2FlowRuleTranslatorException.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2FlowRuleTranslatorException.java
@@ -16,10 +16,13 @@
 
 package org.onosproject.bmv2.api.context;
 
+import com.google.common.annotations.Beta;
+
 /**
  * BMv2 flow rule translator exception.
  */
-public class Bmv2FlowRuleTranslatorException extends Exception {
+@Beta
+public final class Bmv2FlowRuleTranslatorException extends Exception {
 
     public Bmv2FlowRuleTranslatorException(String msg) {
         super(msg);
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2InterpreterException.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2InterpreterException.java
index 5e774ad..7c143fc 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2InterpreterException.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/context/Bmv2InterpreterException.java
@@ -16,10 +16,13 @@
 
 package org.onosproject.bmv2.api.context;
 
+import com.google.common.annotations.Beta;
+
 /**
  * A BMv2 interpreter exception.
  */
-public class Bmv2InterpreterException extends Exception {
+@Beta
+public final class Bmv2InterpreterException extends Exception {
 
     public Bmv2InterpreterException(String message) {
         super(message);
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2Action.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2Action.java
index 0f1983f..e05803c 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2Action.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2Action.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.Lists;
 import org.onlab.util.ImmutableByteSequence;
@@ -30,6 +31,7 @@
 /**
  * An action of a BMv2 match-action table entry.
  */
+@Beta
 public final class Bmv2Action {
 
     private final String name;
@@ -58,8 +60,7 @@
     }
 
     /**
-     * Returns an immutable view of the ordered list of parameters of this
-     * action.
+     * Returns an immutable view of the list of parameters of this action.
      *
      * @return list of byte sequence
      */
@@ -106,7 +107,7 @@
         }
 
         /**
-         * Set the action name.
+         * Sets the action name.
          *
          * @param actionName a string value
          * @return this
@@ -117,7 +118,7 @@
         }
 
         /**
-         * Add a parameter at the end of the parameters list.
+         * Adds a parameter at the end of the parameters list.
          *
          * @param parameter a ByteBuffer value
          * @return this
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2Device.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2Device.java
index bff414f..c3efce3 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2Device.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2Device.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.Objects;
 import org.onosproject.net.DeviceId;
 
@@ -27,8 +28,9 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
- * Representation of a BMv2 device.
+ * A BMv2 device.
  */
+@Beta
 public final class Bmv2Device {
 
     public static final String N_A = "n/a";
@@ -47,9 +49,9 @@
     /**
      * Creates a new BMv2 device object.
      *
-     * @param thriftServerHost the hostname / IP address of the Thrift runtime server running on the device
-     * @param thriftServerPort the port of the Thrift runtime server running on the device
-     * @param internalDeviceId the internal device ID number
+     * @param thriftServerHost the hostname or IP address of the Thrift RPC server running on the device
+     * @param thriftServerPort the listening port used by the device Thrift RPC server
+     * @param internalDeviceId the internal numeric device ID
      */
     public Bmv2Device(String thriftServerHost, int thriftServerPort, int internalDeviceId) {
         this.thriftServerHost = checkNotNull(thriftServerHost, "host cannot be null");
@@ -68,7 +70,7 @@
     }
 
     /**
-     * Returns the hostname (or IP address) of the Thrift runtime server running on the device.
+     * Returns the hostname or IP address of the Thrift RPC server running on the device.
      *
      * @return a string value
      */
@@ -77,7 +79,7 @@
     }
 
     /**
-     * Returns the port of the Thrift runtime server running on the device.
+     * Returns the listening port of the Thrift RPC server running on the device.
      *
      * @return an integer value
      */
@@ -102,7 +104,6 @@
      */
     public DeviceId asDeviceId() {
         try {
-            // TODO: include internalDeviceId number in the deviceId URI
             return DeviceId.deviceId(new URI(SCHEME, this.thriftServerHost + ":" + this.thriftServerPort,
                                              String.valueOf(this.internalDeviceId)));
         } catch (URISyntaxException e) {
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2DeviceAgent.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2DeviceAgent.java
index 4dc3c1a..c128aeb 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2DeviceAgent.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2DeviceAgent.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import org.apache.commons.lang3.tuple.Pair;
 import org.onlab.util.ImmutableByteSequence;
 import org.onosproject.net.DeviceId;
@@ -26,6 +27,7 @@
 /**
  * An agent to control a BMv2 device.
  */
+@Beta
 public interface Bmv2DeviceAgent {
 
     /**
@@ -43,20 +45,20 @@
     boolean ping();
 
     /**
-     * Adds a new table entry.
+     * Adds a new table entry. If successful returns a table-specific identifier of the installed entry.
      *
-     * @param entry a table entry value
-     * @return table-specific entry ID
+     * @param entry a table entry
+     * @return a long value
      * @throws Bmv2RuntimeException if any error occurs
      */
     long addTableEntry(Bmv2TableEntry entry) throws Bmv2RuntimeException;
 
     /**
-     * Modifies an existing table entry by updating its action.
+     * Modifies an existing entry at by updating its action.
      *
-     * @param tableName string value of table name
-     * @param entryId   long value of entry ID
-     * @param action    an action value
+     * @param tableName a string value
+     * @param entryId   a long value
+     * @param action    an action
      * @throws Bmv2RuntimeException if any error occurs
      */
     void modifyTableEntry(String tableName, long entryId, Bmv2Action action) throws Bmv2RuntimeException;
@@ -64,16 +66,16 @@
     /**
      * Deletes currently installed entry.
      *
-     * @param tableName string value of table name
-     * @param entryId   long value of entry ID
+     * @param tableName a string value
+     * @param entryId   a long value
      * @throws Bmv2RuntimeException if any error occurs
      */
     void deleteTableEntry(String tableName, long entryId) throws Bmv2RuntimeException;
 
     /**
-     * Sets table default action.
+     * Sets a default action for the given table.
      *
-     * @param tableName string value of table name
+     * @param tableName a string value
      * @param action    an action value
      * @throws Bmv2RuntimeException if any error occurs
      */
@@ -97,7 +99,7 @@
     List<Bmv2ParsedTableEntry> getTableEntries(String tableName) throws Bmv2RuntimeException;
 
     /**
-     * Requests the device to transmit a given byte sequence over the given port.
+     * Requests the device to transmit a given packet over the given port.
      *
      * @param portNumber a port number
      * @param packet a byte sequence
@@ -106,7 +108,7 @@
     void transmitPacket(int portNumber, ImmutableByteSequence packet) throws Bmv2RuntimeException;
 
     /**
-     * Resets the state of the switch (e.g. delete all entries, etc.).
+     * Resets the state of the switch.
      *
      * @throws Bmv2RuntimeException if any error occurs
      */
@@ -121,7 +123,7 @@
     String dumpJsonConfig() throws Bmv2RuntimeException;
 
     /**
-     * Returns the md5 sum of the JSON-formatted model configuration currently used to process packets.
+     * Returns the MD5 sum of the JSON-formatted configuration currently used to process packets.
      *
      * @return a string value
      * @throws Bmv2RuntimeException if any error occurs
@@ -139,7 +141,7 @@
     Pair<Long, Long> readTableEntryCounter(String tableName, long entryId) throws Bmv2RuntimeException;
 
     /**
-     * Returns the counter values for a given counter and index.
+     * Returns the values of a given counter instance.
      *
      * @param counterName a counter name
      * @param index       an integer value
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExactMatchParam.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExactMatchParam.java
index d02dd2d..5b55d28 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExactMatchParam.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExactMatchParam.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import org.onlab.util.ImmutableByteSequence;
@@ -23,8 +24,9 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
- * Representation of a BMv2 exact match parameter.
+ * A BMv2 exact match parameter.
  */
+@Beta
 public final class Bmv2ExactMatchParam implements Bmv2MatchParam {
 
     private final ImmutableByteSequence value;
@@ -45,7 +47,7 @@
     }
 
     /**
-     * Return the byte sequence value matched by this parameter.
+     * Return the byte sequence matched by this parameter.
      *
      * @return an immutable byte buffer value
      */
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExtensionSelector.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExtensionSelector.java
index 10bc9dc..cd8ec77 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExtensionSelector.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExtensionSelector.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import org.onlab.util.KryoNamespace;
@@ -31,6 +32,7 @@
 /**
  * Extension selector for BMv2 used as a wrapper for multiple BMv2 match parameters.
  */
+@Beta
 public final class Bmv2ExtensionSelector extends AbstractExtension implements ExtensionSelector {
 
     private final KryoNamespace appKryo = new KryoNamespace.Builder()
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExtensionTreatment.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExtensionTreatment.java
index b4c9790..b2f65f3 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExtensionTreatment.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ExtensionTreatment.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import org.onlab.util.KryoNamespace;
@@ -28,16 +29,27 @@
 /**
  * Extension treatment for BMv2 used as a wrapper for a {@link Bmv2Action}.
  */
+@Beta
 public final class Bmv2ExtensionTreatment extends AbstractExtension implements ExtensionTreatment {
 
     private final KryoNamespace appKryo = new KryoNamespace.Builder().build();
     private Bmv2Action action;
 
+    /**
+     * Creates a new extension treatment for the given BMv2 action.
+     *
+     * @param action an action
+     */
     public Bmv2ExtensionTreatment(Bmv2Action action) {
         this.action = action;
     }
 
-    public Bmv2Action getAction() {
+    /**
+     * Returns the action contained by this extension selector.
+     *
+     * @return an action
+     */
+    public Bmv2Action action() {
         return action;
     }
 
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2FlowRuleWrapper.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2FlowRuleWrapper.java
index a7b5b46..31bab78 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2FlowRuleWrapper.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2FlowRuleWrapper.java
@@ -16,15 +16,17 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.Objects;
 import org.onosproject.net.flow.FlowRule;
 
 import java.util.Date;
 
 /**
- * A wrapper class for a ONOS flow rule installed on a BMv2 device.
+ * A wrapper for a ONOS flow rule installed on a BMv2 device.
  */
-public class Bmv2FlowRuleWrapper {
+@Beta
+public final class Bmv2FlowRuleWrapper {
 
     private final FlowRule rule;
     private final long entryId;
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2LpmMatchParam.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2LpmMatchParam.java
index ee75d3b..5f280b3 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2LpmMatchParam.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2LpmMatchParam.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import org.onlab.util.ImmutableByteSequence;
@@ -24,8 +25,9 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
- * Representation of a BMv2 longest prefix match (LPM) parameter.
+ * A BMv2 longest prefix match (LPM) parameter.
  */
+@Beta
 public final class Bmv2LpmMatchParam implements Bmv2MatchParam {
 
     private final ImmutableByteSequence value;
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchKey.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchKey.java
index c0c6b7c..34276aa 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchKey.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchKey.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.Lists;
 import org.onlab.util.ImmutableByteSequence;
@@ -30,6 +31,7 @@
 /**
  * A match key of a BMv2 match-action table entry.
  */
+@Beta
 public final class Bmv2MatchKey {
 
     private final List<Bmv2MatchParam> matchParams;
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchParam.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchParam.java
index 3b7142f..15c750f 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchParam.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchParam.java
@@ -16,9 +16,12 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
+
 /**
  * Representation of a BMv2 match parameter.
  */
+@Beta
 public interface Bmv2MatchParam {
 
     /**
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ParsedTableEntry.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ParsedTableEntry.java
index 9a32a70..bf59cf4 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ParsedTableEntry.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ParsedTableEntry.java
@@ -16,12 +16,14 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 
 /**
  * Representation of a table entry installed on a BMv2 device.
  */
+@Beta
 public final class Bmv2ParsedTableEntry {
     private final long entryId;
     private final Bmv2MatchKey matchKey;
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2PortInfo.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2PortInfo.java
index f53a436..568d141 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2PortInfo.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2PortInfo.java
@@ -16,12 +16,14 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 
 /**
  * Information of a port of a BMv2 device.
  */
+@Beta
 public final class Bmv2PortInfo {
 
     private final String ifaceName;
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2RuntimeException.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2RuntimeException.java
index 697c8d2..176e6f0 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2RuntimeException.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2RuntimeException.java
@@ -16,9 +16,12 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
+
 /**
  * General exception of the BMv2 runtime APIs.
  */
+@Beta
 public final class Bmv2RuntimeException extends Exception {
 
     private final Code code;
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TableEntry.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TableEntry.java
index ce6bd83..6ea97e9 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TableEntry.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TableEntry.java
@@ -16,6 +16,8 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
+
 import java.util.Objects;
 
 import static com.google.common.base.Preconditions.checkArgument;
@@ -24,6 +26,7 @@
 /**
  * An entry of a match-action table in a BMv2 device.
  */
+@Beta
 public final class Bmv2TableEntry {
 
     private static final int NO_PRIORITY_VALUE = -1;
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TableEntryReference.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TableEntryReference.java
index fd59fb9..6283239 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TableEntryReference.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TableEntryReference.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import org.onosproject.net.DeviceId;
@@ -23,6 +24,7 @@
 /**
  * A reference to a table entry installed on a BMv2 device.
  */
+@Beta
 public final class Bmv2TableEntryReference {
 
 
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TernaryMatchParam.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TernaryMatchParam.java
index 60b38f0..713d532 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TernaryMatchParam.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2TernaryMatchParam.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.runtime;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import org.onlab.util.ImmutableByteSequence;
@@ -26,6 +27,7 @@
 /**
  * Representation of a BMv2 ternary match parameter.
  */
+@Beta
 public final class Bmv2TernaryMatchParam implements Bmv2MatchParam {
 
     private final ImmutableByteSequence value;
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ValidMatchParam.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ValidMatchParam.java
index 38b8c2a..9312b56 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ValidMatchParam.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2ValidMatchParam.java
@@ -17,6 +17,7 @@
 package org.onosproject.bmv2.api.runtime;
 
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 
 import java.util.Objects;
@@ -24,6 +25,7 @@
 /**
  * Representation of a BMv2 valid match parameter.
  */
+@Beta
 public final class Bmv2ValidMatchParam implements Bmv2MatchParam {
 
     private final boolean flag;
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2Controller.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2Controller.java
index 62b1f55..22ba016 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2Controller.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2Controller.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.service;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.bmv2.api.runtime.Bmv2DeviceAgent;
 import org.onosproject.bmv2.api.runtime.Bmv2RuntimeException;
 import org.onosproject.net.DeviceId;
@@ -23,6 +24,7 @@
 /**
  * A controller of BMv2 devices.
  */
+@Beta
 public interface Bmv2Controller {
 
     /**
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2DeviceContextService.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2DeviceContextService.java
index 7afce3d..077a294 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2DeviceContextService.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2DeviceContextService.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.service;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.bmv2.api.context.Bmv2DeviceContext;
 import org.onosproject.bmv2.api.context.Bmv2Interpreter;
 import org.onosproject.net.DeviceId;
@@ -23,6 +24,7 @@
 /**
  * A service for managing BMv2 device contexts.
  */
+@Beta
 public interface Bmv2DeviceContextService {
 
     /**
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2DeviceListener.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2DeviceListener.java
index dbd6d65..cb8c444 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2DeviceListener.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2DeviceListener.java
@@ -16,11 +16,13 @@
 
 package org.onosproject.bmv2.api.service;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.bmv2.api.runtime.Bmv2Device;
 
 /**
  * A listener of BMv2 device events.
  */
+@Beta
 public interface Bmv2DeviceListener {
 
     /**
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2PacketListener.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2PacketListener.java
index a713dd8..32629eb 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2PacketListener.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2PacketListener.java
@@ -16,12 +16,14 @@
 
 package org.onosproject.bmv2.api.service;
 
+import com.google.common.annotations.Beta;
 import org.onlab.util.ImmutableByteSequence;
 import org.onosproject.bmv2.api.runtime.Bmv2Device;
 
 /**
  * A listener of BMv2 packet events.
  */
+@Beta
 public interface Bmv2PacketListener {
 
     /**
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2TableEntryService.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2TableEntryService.java
index 5806f10..cd25ee5 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2TableEntryService.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/service/Bmv2TableEntryService.java
@@ -17,6 +17,7 @@
 package org.onosproject.bmv2.api.service;
 
 
+import com.google.common.annotations.Beta;
 import org.onosproject.bmv2.api.context.Bmv2FlowRuleTranslator;
 import org.onosproject.bmv2.api.runtime.Bmv2FlowRuleWrapper;
 import org.onosproject.bmv2.api.runtime.Bmv2TableEntryReference;
@@ -24,6 +25,7 @@
 /**
  * A service for managing BMv2 table entries.
  */
+@Beta
 public interface Bmv2TableEntryService {
 
     /**
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/utils/Bmv2TranslatorUtils.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/utils/Bmv2TranslatorUtils.java
index 8d8966f..0cc102b 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/utils/Bmv2TranslatorUtils.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/utils/Bmv2TranslatorUtils.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.bmv2.api.utils;
 
+import com.google.common.annotations.Beta;
 import org.onlab.util.HexString;
 import org.onlab.util.ImmutableByteSequence;
 
@@ -25,8 +26,9 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
- * Collection of util methods to deal with flow rule translation.
+ * Collection of utility methods to deal with flow rule translation.
  */
+@Beta
 public final class Bmv2TranslatorUtils {
 
     private Bmv2TranslatorUtils() {
