diff --git a/drivers/lumentum/BUCK b/drivers/lumentum/BUCK
index 03ae2a9..0402921 100644
--- a/drivers/lumentum/BUCK
+++ b/drivers/lumentum/BUCK
@@ -4,7 +4,6 @@
     '//drivers/utilities:onos-drivers-utilities',
     '//protocols/snmp/api:onos-protocols-snmp-api',
     '//protocols/tl1/api:onos-protocols-tl1-api',
-    '//protocols/tl1/ctl:onos-protocols-tl1-ctl',
     '//incubator/api:onos-incubator-api',
     '//apps/optical-model:onos-apps-optical-model',
     '//drivers/optical:onos-drivers-optical',
diff --git a/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumWaveReadyDiscovery.java b/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumWaveReadyDiscovery.java
index cf9ad21..3c02c37 100644
--- a/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumWaveReadyDiscovery.java
+++ b/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumWaveReadyDiscovery.java
@@ -31,10 +31,10 @@
 import org.onosproject.net.device.DeviceDescriptionDiscovery;
 import org.onosproject.net.device.PortDescription;
 import org.onosproject.net.driver.AbstractHandlerBehaviour;
+import org.onosproject.tl1.DefaultTl1Command;
 import org.onosproject.tl1.Tl1Command;
 import org.onosproject.tl1.Tl1Controller;
 import org.onosproject.tl1.Tl1Device;
-import org.onosproject.tl1.impl.DefaultTl1Command;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/protocols/tl1/ctl/src/main/java/org/onosproject/tl1/impl/DefaultTl1Command.java b/protocols/tl1/api/src/main/java/org/onosproject/tl1/DefaultTl1Command.java
similarity index 97%
rename from protocols/tl1/ctl/src/main/java/org/onosproject/tl1/impl/DefaultTl1Command.java
rename to protocols/tl1/api/src/main/java/org/onosproject/tl1/DefaultTl1Command.java
index ab55427..2213698 100644
--- a/protocols/tl1/ctl/src/main/java/org/onosproject/tl1/impl/DefaultTl1Command.java
+++ b/protocols/tl1/api/src/main/java/org/onosproject/tl1/DefaultTl1Command.java
@@ -13,9 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.tl1.impl;
-
-import org.onosproject.tl1.Tl1Command;
+package org.onosproject.tl1;
 
 import java.util.Optional;
 
diff --git a/protocols/tl1/ctl/src/main/java/org/onosproject/tl1/impl/DefaultTl1Device.java b/protocols/tl1/api/src/main/java/org/onosproject/tl1/DefaultTl1Device.java
similarity index 97%
rename from protocols/tl1/ctl/src/main/java/org/onosproject/tl1/impl/DefaultTl1Device.java
rename to protocols/tl1/api/src/main/java/org/onosproject/tl1/DefaultTl1Device.java
index 602d24c..27ac9c9 100644
--- a/protocols/tl1/ctl/src/main/java/org/onosproject/tl1/impl/DefaultTl1Device.java
+++ b/protocols/tl1/api/src/main/java/org/onosproject/tl1/DefaultTl1Device.java
@@ -13,12 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.tl1.impl;
+package org.onosproject.tl1;
 
 import io.netty.channel.Channel;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.TpPort;
-import org.onosproject.tl1.Tl1Device;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/providers/tl1/BUCK b/providers/tl1/BUCK
index f5ebffb..6168610 100644
--- a/providers/tl1/BUCK
+++ b/providers/tl1/BUCK
@@ -1,7 +1,6 @@
 BUNDLES = [
     '//providers/tl1/device:onos-providers-tl1-device',
     '//protocols/tl1/api:onos-protocols-tl1-api',
-    '//protocols/tl1/ctl:onos-protocols-tl1-ctl',
 ]
 
 onos_app (
diff --git a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceProvider.java b/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceProvider.java
index 6013aea..506eb9d 100644
--- a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceProvider.java
+++ b/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceProvider.java
@@ -47,10 +47,11 @@
 import org.onosproject.net.device.DeviceService;
 import org.onosproject.net.provider.AbstractProvider;
 import org.onosproject.net.provider.ProviderId;
+import org.onosproject.tl1.DefaultTl1Device;
 import org.onosproject.tl1.Tl1Controller;
 import org.onosproject.tl1.Tl1Device;
 import org.onosproject.tl1.Tl1Listener;
-import org.onosproject.tl1.impl.DefaultTl1Device;
+import org.onosproject.tl1.device.Tl1DeviceConfig;
 import org.slf4j.Logger;
 
 import java.io.IOException;
@@ -74,7 +75,11 @@
 @Component(immediate = true)
 public class Tl1DeviceProvider extends AbstractProvider implements DeviceProvider {
     private static final String APP_NAME = "org.onosproject.tl1";
-    protected static final String TL1 = "tl1";
+    /**
+     * @deprecated in 1.11.0. Use {@link Tl1DeviceConfig#TL1} instead
+     */
+    @Deprecated
+    protected static final String TL1 = Tl1DeviceConfig.TL1;
     private static final String PROVIDER = "org.onosproject.provider.tl1.device";
     private static final String UNKNOWN = "unknown";
     private static final int REACHABILITY_TIMEOUT = 2000;      // in milliseconds
@@ -116,7 +121,7 @@
             },
             new ConfigFactory<DeviceId, Tl1DeviceConfig>(SubjectFactories.DEVICE_SUBJECT_FACTORY,
                                                          Tl1DeviceConfig.class,
-                                                         TL1) {
+                                                         Tl1DeviceConfig.TL1) {
                 @Override
                 public Tl1DeviceConfig createConfig() {
                     return new Tl1DeviceConfig();
@@ -150,7 +155,7 @@
     }
 
     public Tl1DeviceProvider() {
-        super(new ProviderId(TL1, PROVIDER));
+        super(new ProviderId(Tl1DeviceConfig.TL1, PROVIDER));
     }
 
     @Override
@@ -237,11 +242,11 @@
         try {
             // Add device to TL1 controller
             DeviceId deviceId = DeviceId.deviceId(
-                    new URI(TL1, device.ip() + ":" + device.port(), null));
+                    new URI(Tl1DeviceConfig.TL1, device.ip() + ":" + device.port(), null));
 
             if (controller.addDevice(deviceId, device)) {
                 SparseAnnotations ann = DefaultAnnotations.builder()
-                        .set(AnnotationKeys.PROTOCOL, TL1.toUpperCase())
+                        .set(AnnotationKeys.PROTOCOL, Tl1DeviceConfig.TL1.toUpperCase())
                         .build();
                 // Register device in the core with default parameters and mark it as unavailable
                 DeviceDescription dd = new DefaultDeviceDescription(deviceId.uri(),
diff --git a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1ProviderConfig.java b/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1ProviderConfig.java
index 4f883cd..d083cb9 100644
--- a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1ProviderConfig.java
+++ b/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1ProviderConfig.java
@@ -21,7 +21,7 @@
 import org.onosproject.core.ApplicationId;
 import org.onosproject.incubator.net.config.basics.ConfigException;
 import org.onosproject.net.config.Config;
-import org.onosproject.tl1.impl.DefaultTl1Device;
+import org.onosproject.tl1.DefaultTl1Device;
 import org.onosproject.tl1.Tl1Device;
 
 import java.util.Set;
diff --git a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceConfig.java b/providers/tl1/device/src/main/java/org/onosproject/tl1/device/Tl1DeviceConfig.java
similarity index 92%
rename from providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceConfig.java
rename to providers/tl1/device/src/main/java/org/onosproject/tl1/device/Tl1DeviceConfig.java
index 91c235d..4a7fd7a 100644
--- a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceConfig.java
+++ b/providers/tl1/device/src/main/java/org/onosproject/tl1/device/Tl1DeviceConfig.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.provider.tl1.device.impl;
+package org.onosproject.tl1.device;
 
 import com.google.common.annotations.Beta;
 import org.apache.commons.lang3.tuple.Pair;
@@ -28,6 +28,11 @@
 @Beta
 public class Tl1DeviceConfig extends Config<DeviceId> {
 
+    /**
+     * TL1 provider scheme and ConfigKey.
+     */
+    public static final String TL1 = "tl1";
+
     private static final String IP = "ip";
     private static final String PORT = "port";
     private static final String USERNAME = "username";
@@ -78,7 +83,7 @@
 
     private Pair<String, Integer> extractIpPort() {
         String info = subject.toString();
-        if (info.startsWith(Tl1DeviceProvider.TL1)) {
+        if (info.startsWith(TL1)) {
             //+1 is due to length of colon separator
             String ip = info.substring(info.indexOf(":") + 1, info.lastIndexOf(":"));
             int port = Integer.parseInt(info.substring(info.lastIndexOf(":") + 1));
diff --git a/providers/tl1/device/src/main/java/org/onosproject/tl1/device/package-info.java b/providers/tl1/device/src/main/java/org/onosproject/tl1/device/package-info.java
new file mode 100644
index 0000000..4e579ba
--- /dev/null
+++ b/providers/tl1/device/src/main/java/org/onosproject/tl1/device/package-info.java
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * TL1 device configuration.
+ */
+package org.onosproject.tl1.device;
