diff --git a/cli/pom.xml b/cli/pom.xml
index 2a9e922..ddeacc5 100644
--- a/cli/pom.xml
+++ b/cli/pom.xml
@@ -39,6 +39,10 @@
         </dependency>
         <dependency>
             <groupId>org.onosproject</groupId>
+            <artifactId>onos-incubator-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
             <artifactId>onlab-osgi</artifactId>
         </dependency>
         <dependency>
diff --git a/cli/src/main/java/org/onosproject/cli/net/BorrowTunnelCommand.java b/cli/src/main/java/org/onosproject/cli/net/TunnelBorrowCommand.java
similarity index 92%
rename from cli/src/main/java/org/onosproject/cli/net/BorrowTunnelCommand.java
rename to cli/src/main/java/org/onosproject/cli/net/TunnelBorrowCommand.java
index 4a15d8e..61188d2 100644
--- a/cli/src/main/java/org/onosproject/cli/net/BorrowTunnelCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/TunnelBorrowCommand.java
@@ -27,13 +27,13 @@
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.provider.ProviderId;
-import org.onosproject.net.tunnel.DefaultOpticalTunnelEndPoint;
-import org.onosproject.net.tunnel.IpTunnelEndPoint;
-import org.onosproject.net.tunnel.OpticalLogicId;
-import org.onosproject.net.tunnel.OpticalTunnelEndPoint;
-import org.onosproject.net.tunnel.Tunnel;
-import org.onosproject.net.tunnel.TunnelEndPoint;
-import org.onosproject.net.tunnel.TunnelService;
+import org.onosproject.incubator.net.tunnel.DefaultOpticalTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.IpTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.OpticalLogicId;
+import org.onosproject.incubator.net.tunnel.OpticalTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.Tunnel;
+import org.onosproject.incubator.net.tunnel.TunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.TunnelService;
 
 /**
  * Borrows all tunnels between specific source tunnel end point and specific
@@ -43,7 +43,7 @@
 description = "Borrows all tunnels between specific source tunnel end point"
         + " and specific destination tunnel end point."
         + " Supports for IP address and optical as tunnel end point now. It's used by consumers.")
-public class BorrowTunnelCommand extends AbstractShellCommand {
+public class TunnelBorrowCommand extends AbstractShellCommand {
     @Argument(index = 0, name = "consumerId", description = "consumer id means application id.",
             required = true, multiValued = false)
     String consumerId = null;
diff --git a/cli/src/main/java/org/onosproject/cli/net/DeleteTunnelCommand.java b/cli/src/main/java/org/onosproject/cli/net/TunnelDeleteCommand.java
similarity index 91%
rename from cli/src/main/java/org/onosproject/cli/net/DeleteTunnelCommand.java
rename to cli/src/main/java/org/onosproject/cli/net/TunnelDeleteCommand.java
index cded33b..9be0da8 100644
--- a/cli/src/main/java/org/onosproject/cli/net/DeleteTunnelCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/TunnelDeleteCommand.java
@@ -24,12 +24,12 @@
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.provider.ProviderId;
-import org.onosproject.net.tunnel.DefaultOpticalTunnelEndPoint;
-import org.onosproject.net.tunnel.IpTunnelEndPoint;
-import org.onosproject.net.tunnel.OpticalLogicId;
-import org.onosproject.net.tunnel.OpticalTunnelEndPoint;
-import org.onosproject.net.tunnel.TunnelAdminService;
-import org.onosproject.net.tunnel.TunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.DefaultOpticalTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.IpTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.OpticalLogicId;
+import org.onosproject.incubator.net.tunnel.OpticalTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.TunnelAdminService;
+import org.onosproject.incubator.net.tunnel.TunnelEndPoint;
 
 /**
  * Supports for deleting all tunnels by using IP address and optical as tunnel
@@ -37,7 +37,7 @@
  */
 @Command(scope = "onos", name = "delete-tunnels", description = "Supports for deleting all tunnels by using IP address"
         + " and optical as tunnel end point now. It's used by consumers.")
-public class DeleteTunnelCommand extends AbstractShellCommand {
+public class TunnelDeleteCommand extends AbstractShellCommand {
     static String applicationId = "DEFAULT_APP_ID";
     @Argument(index = 0, name = "src", description = "Source tunnel point."
             + " Only supports for IpTunnelEndPoint and OpticalTunnelEndPoint as end point now."
diff --git a/cli/src/main/java/org/onosproject/cli/net/QueryTunnelCommand.java b/cli/src/main/java/org/onosproject/cli/net/TunnelQueryCommand.java
similarity index 91%
rename from cli/src/main/java/org/onosproject/cli/net/QueryTunnelCommand.java
rename to cli/src/main/java/org/onosproject/cli/net/TunnelQueryCommand.java
index b4bc117..4e1fe28 100644
--- a/cli/src/main/java/org/onosproject/cli/net/QueryTunnelCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/TunnelQueryCommand.java
@@ -25,13 +25,13 @@
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.provider.ProviderId;
-import org.onosproject.net.tunnel.DefaultOpticalTunnelEndPoint;
-import org.onosproject.net.tunnel.IpTunnelEndPoint;
-import org.onosproject.net.tunnel.OpticalLogicId;
-import org.onosproject.net.tunnel.OpticalTunnelEndPoint;
-import org.onosproject.net.tunnel.Tunnel;
-import org.onosproject.net.tunnel.TunnelEndPoint;
-import org.onosproject.net.tunnel.TunnelService;
+import org.onosproject.incubator.net.tunnel.DefaultOpticalTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.IpTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.OpticalLogicId;
+import org.onosproject.incubator.net.tunnel.OpticalTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.Tunnel;
+import org.onosproject.incubator.net.tunnel.TunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.TunnelService;
 
 /**
  * Supports for querying all tunnels by using IP address and optical as tunnel
@@ -40,7 +40,7 @@
 @Command(scope = "onos", name = "query-tunnels", description = "Supports for querying all tunnels by using IP address"
         + " and optical as tunnel end point now."
         + " It's used by consumers.")
-public class QueryTunnelCommand extends AbstractShellCommand {
+public class TunnelQueryCommand extends AbstractShellCommand {
     @Argument(index = 0, name = "src", description = "Source tunnel point."
             + " Only supports for IpTunnelEndPoint and OpticalTunnelEndPoint as end point now."
             + " If deletess a ODUK or OCH type tunnel, the formatter of this argument is DeviceId-PortNumber."
diff --git a/cli/src/main/java/org/onosproject/cli/net/QueryTunnelSubscriptionCommand.java b/cli/src/main/java/org/onosproject/cli/net/TunnelQuerySubscriptionCommand.java
similarity index 91%
rename from cli/src/main/java/org/onosproject/cli/net/QueryTunnelSubscriptionCommand.java
rename to cli/src/main/java/org/onosproject/cli/net/TunnelQuerySubscriptionCommand.java
index c91dcce..45d1e78 100644
--- a/cli/src/main/java/org/onosproject/cli/net/QueryTunnelSubscriptionCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/TunnelQuerySubscriptionCommand.java
@@ -22,8 +22,8 @@
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.DefaultApplicationId;
-import org.onosproject.net.tunnel.TunnelService;
-import org.onosproject.net.tunnel.TunnelSubscription;
+import org.onosproject.incubator.net.tunnel.TunnelService;
+import org.onosproject.incubator.net.tunnel.TunnelSubscription;
 
 /**
  * Query all tunnel subscriptions of consumer by consumer id.
@@ -31,7 +31,7 @@
  */
 @Command(scope = "onos", name = "query-tunnel-subscriptions",
       description = "Query all request orders of consumer by consumer id. It's used by consumers.")
-public class QueryTunnelSubscriptionCommand extends AbstractShellCommand {
+public class TunnelQuerySubscriptionCommand extends AbstractShellCommand {
     @Argument(index = 0, name = "consumerId",
             description = "consumer id means provider id",
             required = true, multiValued = false)
diff --git a/cli/src/main/java/org/onosproject/cli/net/ReturnTunnelCommand.java b/cli/src/main/java/org/onosproject/cli/net/TunnelReturnCommand.java
similarity index 92%
rename from cli/src/main/java/org/onosproject/cli/net/ReturnTunnelCommand.java
rename to cli/src/main/java/org/onosproject/cli/net/TunnelReturnCommand.java
index c3111e8..3de8f00 100644
--- a/cli/src/main/java/org/onosproject/cli/net/ReturnTunnelCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/TunnelReturnCommand.java
@@ -26,12 +26,12 @@
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.provider.ProviderId;
-import org.onosproject.net.tunnel.DefaultOpticalTunnelEndPoint;
-import org.onosproject.net.tunnel.IpTunnelEndPoint;
-import org.onosproject.net.tunnel.OpticalLogicId;
-import org.onosproject.net.tunnel.OpticalTunnelEndPoint;
-import org.onosproject.net.tunnel.TunnelEndPoint;
-import org.onosproject.net.tunnel.TunnelService;
+import org.onosproject.incubator.net.tunnel.DefaultOpticalTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.IpTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.OpticalLogicId;
+import org.onosproject.incubator.net.tunnel.OpticalTunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.TunnelEndPoint;
+import org.onosproject.incubator.net.tunnel.TunnelService;
 
 /**
  * Returns all tunnels between specific source tunnel end point and specific
@@ -42,7 +42,7 @@
 description = "Returns all tunnels between specific source tunnel end point and specific "
         + " destination tunnel end point. Supports for IP address and optical as tunnel end point now."
         + " It's used by consumers.")
-public class ReturnTunnelCommand extends AbstractShellCommand {
+public class TunnelReturnCommand extends AbstractShellCommand {
     @Argument(index = 0, name = "consumerId", description = "consumer id means application id.",
             required = true, multiValued = false)
     String consumerId = null;
diff --git a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index 93afcd5..d92129a 100644
--- a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -369,19 +369,19 @@
         </command>
         <!-- tunnel commands -->
         <command>
-            <action class="org.onosproject.cli.net.DeleteTunnelCommand"/>
+            <action class="org.onosproject.cli.net.TunnelDeleteCommand"/>
         </command>
         <command>
-            <action class="org.onosproject.cli.net.BorrowTunnelCommand"/>
+            <action class="org.onosproject.cli.net.TunnelBorrowCommand"/>
         </command>
         <command>
-            <action class="org.onosproject.cli.net.ReturnTunnelCommand"/>
+            <action class="org.onosproject.cli.net.TunnelReturnCommand"/>
         </command>
         <command>
-            <action class="org.onosproject.cli.net.QueryTunnelCommand"/>
+            <action class="org.onosproject.cli.net.TunnelQueryCommand"/>
         </command>
         <command>
-            <action class="org.onosproject.cli.net.QueryTunnelSubscriptionCommand"/>
+            <action class="org.onosproject.cli.net.TunnelQuerySubscriptionCommand"/>
         </command>
     </command-bundle>
 
