diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultOpticalTunnelEndPoint.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultOpticalTunnelEndPoint.java
index f80dfac..ae0f514 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultOpticalTunnelEndPoint.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultOpticalTunnelEndPoint.java
@@ -20,6 +20,7 @@
 import java.util.Objects;
 import java.util.Optional;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.AbstractModel;
 import org.onosproject.net.Annotations;
 import org.onosproject.net.ElementId;
@@ -29,6 +30,7 @@
 /**
  * Default optical tunnel point model implementation.
  */
+@Beta
 public class DefaultOpticalTunnelEndPoint extends AbstractModel implements OpticalTunnelEndPoint {
     private final Optional<ElementId> elementId;
     private final Optional<PortNumber> portNumber;
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnel.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnel.java
index 5f448e0..86a790f 100755
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnel.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnel.java
@@ -19,6 +19,7 @@
 
 import java.util.Objects;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.DefaultGroupId;
 import org.onosproject.net.AbstractModel;
 import org.onosproject.net.Annotations;
@@ -30,6 +31,7 @@
  * The default implementation of an network tunnel. supports for creating a
  * tunnel by connect point ,IP address, MAC address, device and so on.
  */
+@Beta
 public final class DefaultTunnel extends AbstractModel implements Tunnel {
 
     private final TunnelEndPoint src; // a source point of tunnel.
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnelDescription.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnelDescription.java
index 347021d..055934a 100755
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnelDescription.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnelDescription.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.DefaultGroupId;
 import org.onosproject.net.AbstractDescription;
 import org.onosproject.net.Path;
@@ -26,6 +27,7 @@
 /**
  * Default implementation of immutable tunnel description entity.
  */
+@Beta
 public class DefaultTunnelDescription extends AbstractDescription
         implements TunnelDescription {
 
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/IpTunnelEndPoint.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/IpTunnelEndPoint.java
index a9278fc..7c5247a 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/IpTunnelEndPoint.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/IpTunnelEndPoint.java
@@ -18,12 +18,15 @@
 
 import java.util.Objects;
 
+import com.google.common.annotations.Beta;
 import org.onlab.packet.IpAddress;
 
 import com.google.common.base.MoreObjects;
+
 /**
  * Represent for a tunnel point using ip address.
  */
+@Beta
 public final class IpTunnelEndPoint implements TunnelEndPoint {
 
     private final IpAddress ip;
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/OpticalLogicId.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/OpticalLogicId.java
index fee5542..90f5eab 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/OpticalLogicId.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/OpticalLogicId.java
@@ -17,11 +17,14 @@
 package org.onosproject.incubator.net.tunnel;
 
 import java.util.Objects;
+
+import com.google.common.annotations.Beta;
 import com.google.common.primitives.UnsignedLongs;
 
 /**
  * Representation of a label Id, a logical port identifier.
  */
+@Beta
 public final class OpticalLogicId {
         /**
          * Represents a logical Id.
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/OpticalTunnelEndPoint.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/OpticalTunnelEndPoint.java
index 7f0ab4b..7d72398 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/OpticalTunnelEndPoint.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/OpticalTunnelEndPoint.java
@@ -18,6 +18,7 @@
 
 import java.util.Optional;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.Annotated;
 import org.onosproject.net.ElementId;
 import org.onosproject.net.NetworkResource;
@@ -29,6 +30,7 @@
  * it is used to identify e.g., ODUk timeSlot, WDM lambda, etc.
  * It supports nested case.
  */
+@Beta
 public interface OpticalTunnelEndPoint extends TunnelEndPoint, Annotated, Provided, NetworkResource {
 
     /** Represents coarse tunnel point type classification. */
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/Tunnel.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/Tunnel.java
index edbbe1b..33af106 100755
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/Tunnel.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/Tunnel.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.DefaultGroupId;
 import org.onosproject.net.Annotated;
 import org.onosproject.net.NetworkResource;
@@ -28,6 +29,7 @@
  * least two tunnel end point objects that model the logical ports essentially.
  * Note that it supports nested case.
  */
+@Beta
 public interface Tunnel extends Annotated, Provided, NetworkResource {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelAdminService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelAdminService.java
index 3c6cf3f..5165a68 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelAdminService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelAdminService.java
@@ -16,12 +16,14 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.Path;
 import org.onosproject.net.provider.ProviderId;
 
 /**
  * Service for administering the inventory of provisioned tunnels.
  */
+@Beta
 public interface TunnelAdminService {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelDescription.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelDescription.java
index dbcbc63..a8408be 100755
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelDescription.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelDescription.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.DefaultGroupId;
 import org.onosproject.incubator.net.tunnel.Tunnel.Type;
 import org.onosproject.net.Annotated;
@@ -25,6 +26,7 @@
 /**
  * Describes a tunnel.
  */
+@Beta
 public interface TunnelDescription extends Description, Annotated {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEndPoint.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEndPoint.java
index 3265a4e..5589028 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEndPoint.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEndPoint.java
@@ -16,10 +16,13 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
+
 /**
  * Represents for source end point or destination end point of a tunnel. Maybe a tunnel
  * based on ConnectPoint, IpAddress, MacAddress and so on is built.
  */
+@Beta
 public interface TunnelEndPoint {
 
 }
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEvent.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEvent.java
index 16c5ec3..18044ee 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEvent.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEvent.java
@@ -16,11 +16,13 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.event.AbstractEvent;
 
 /**
  * Describes tunnel events.
  */
+@Beta
 public final class TunnelEvent extends AbstractEvent<TunnelEvent.Type, Tunnel> {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelId.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelId.java
index 0cbad8c..5a3f97f 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelId.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelId.java
@@ -16,10 +16,12 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 
 /**
  * Representation of a Tunnel Id.
  */
+@Beta
 public final class TunnelId {
     private final long value;
 
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelListener.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelListener.java
index 41011be..b3a69fd 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelListener.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelListener.java
@@ -16,10 +16,12 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.event.EventListener;
 
 /**
  * Entity capable of receiving tunnel related events.
  */
+@Beta
 public interface TunnelListener extends EventListener<TunnelEvent> {
 }
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelName.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelName.java
index 7e32137..77a8c8e 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelName.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelName.java
@@ -16,6 +16,8 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
+
 import java.util.Objects;
 
 /**
@@ -23,6 +25,7 @@
  * TunnelName is given by producer. The consumer can borrow tunnels with
  * TunnelId or TunnelName.
  */
+@Beta
 public final class TunnelName {
     private final String str;
 
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProvider.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProvider.java
index 1107fc1..5677901 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProvider.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProvider.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.ElementId;
 import org.onosproject.net.Path;
 import org.onosproject.net.provider.Provider;
@@ -23,6 +24,7 @@
 /**
  * Abstraction of an entity providing tunnel setup/release services to the core.
  */
+@Beta
 public interface TunnelProvider extends Provider {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProviderRegistry.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProviderRegistry.java
index 33ff21c..069455a 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProviderRegistry.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProviderRegistry.java
@@ -16,11 +16,13 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.provider.ProviderRegistry;
 
 /**
  * Abstraction of an tunnel provider registry.
  */
+@Beta
 public interface TunnelProviderRegistry
         extends ProviderRegistry<TunnelProvider, TunnelProviderService> {
 }
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProviderService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProviderService.java
index 84f8f24..bb158bf 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProviderService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelProviderService.java
@@ -16,11 +16,13 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.provider.ProviderService;
 
 /**
  * APIs for tunnel provider to notify the tunnel subSystem.
  */
+@Beta
 public interface TunnelProviderService extends ProviderService<TunnelProvider> {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java
index 1216cc6..a495955 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java
@@ -17,6 +17,7 @@
 
 import java.util.Collection;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.incubator.net.tunnel.Tunnel.Type;
 import org.onosproject.net.Annotations;
@@ -25,6 +26,7 @@
 /**
  * Service for interacting with the inventory of tunnels.
  */
+@Beta
 public interface TunnelService {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStore.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStore.java
index b773611..00ed577 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStore.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStore.java
@@ -17,6 +17,7 @@
 
 import java.util.Collection;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.incubator.net.tunnel.Tunnel.Type;
 import org.onosproject.net.Annotations;
@@ -26,6 +27,7 @@
 /**
  * Manages inventory of tunnel; not intended for direct use.
  */
+@Beta
 public interface TunnelStore extends Store<TunnelEvent, TunnelStoreDelegate> {
     /**
      * Creates or updates a tunnel.
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStoreDelegate.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStoreDelegate.java
index cf8a998..dfbc6ec 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStoreDelegate.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStoreDelegate.java
@@ -16,10 +16,12 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.store.StoreDelegate;
 
 /**
  * Tunnel store delegate abstraction.
  */
+@Beta
 public interface TunnelStoreDelegate extends StoreDelegate<TunnelEvent> {
 }
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelSubscription.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelSubscription.java
index 9dd8e62..336789b 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelSubscription.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelSubscription.java
@@ -20,6 +20,7 @@
 
 import java.util.Objects;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.AbstractAnnotated;
 import org.onosproject.net.Annotations;
@@ -33,6 +34,7 @@
  * ONOS. Although there is no a tunnel that consumer want to use, when producer
  * creates a new tunnel, ONOS will notify the consumers that want to use it.
  */
+@Beta
 public final class TunnelSubscription extends AbstractAnnotated {
     private final ApplicationId consumerId;
     private final TunnelEndPoint src;
