diff --git a/apps/newoptical/src/main/java/org/onosproject/newoptical/OpticalPathProvisioner.java b/apps/newoptical/src/main/java/org/onosproject/newoptical/OpticalPathProvisioner.java
index f39b01a..abedb45 100644
--- a/apps/newoptical/src/main/java/org/onosproject/newoptical/OpticalPathProvisioner.java
+++ b/apps/newoptical/src/main/java/org/onosproject/newoptical/OpticalPathProvisioner.java
@@ -563,11 +563,11 @@
      * Verifies if given device type is NOT in packet layer, i.e., switch or router device.
      *
      * @param type device type
-     * @return true if in packet layer, false otherwise
+     * @return true if in optical layer, false otherwise
      */
     private boolean isTransportLayer(Device.Type type) {
         return type == Device.Type.ROADM || type == Device.Type.OTN || type == Device.Type.ROADM_OTN ||
-                type == Device.Type.OLS;
+                type == Device.Type.OLS ||  type == Device.Type.TERMINAL_DEVICE;
     }
 
     /**
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/util/OpticalIntentUtility.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/util/OpticalIntentUtility.java
index 758db56..4a6af72 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/util/OpticalIntentUtility.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/util/OpticalIntentUtility.java
@@ -34,6 +34,7 @@
 import org.onosproject.net.intent.OpticalOduIntent;
 import org.onosproject.net.optical.OchPort;
 
+import static org.onosproject.net.Device.Type;
 import static org.onosproject.net.optical.device.OpticalDeviceServiceView.opticalView;
 
 import org.slf4j.Logger;
@@ -90,9 +91,9 @@
             }
 
             CltSignalType signalType = ((OduCltPort) srcPort).signalType();
-            if (Device.Type.ROADM.equals(srcDevice.type()) ||
-                    Device.Type.ROADM_OTN.equals(srcDevice.type()) ||
-                    Device.Type.OLS.equals(srcDevice.type())) {
+            if (Type.ROADM.equals(srcDevice.type()) ||
+                    Type.ROADM_OTN.equals(srcDevice.type()) ||
+                    Type.OLS.equals(srcDevice.type())) {
                 intent = OpticalCircuitIntent.builder()
                         .appId(appId)
                         .key(key)
@@ -101,7 +102,7 @@
                         .signalType(signalType)
                         .bidirectional(bidirectional)
                         .build();
-            } else if (Device.Type.OTN.equals(srcDevice.type())) {
+            } else if (Type.OTN.equals(srcDevice.type()) || Type.TERMINAL_DEVICE.equals(srcDevice.type())) {
                 intent = OpticalOduIntent.builder()
                         .appId(appId)
                         .key(key)
@@ -173,9 +174,9 @@
             }
 
             CltSignalType signalType = ((OduCltPort) srcPort).signalType();
-            if (Device.Type.ROADM.equals(srcDevice.type()) ||
-                    Device.Type.ROADM_OTN.equals(srcDevice.type()) ||
-                    Device.Type.OLS.equals(srcDevice.type())) {
+            if (Type.ROADM.equals(srcDevice.type()) ||
+                    Type.ROADM_OTN.equals(srcDevice.type()) ||
+                    Type.OLS.equals(srcDevice.type())) {
                 intent = OpticalCircuitIntent.builder()
                         .appId(appId)
                         .key(key)
@@ -184,7 +185,7 @@
                         .signalType(signalType)
                         .bidirectional(bidirectional)
                         .build();
-            } else if (Device.Type.OTN.equals(srcDevice.type())) {
+            } else if (Type.OTN.equals(srcDevice.type()) || Type.TERMINAL_DEVICE.equals(srcDevice.type())) {
                 intent = OpticalOduIntent.builder()
                         .appId(appId)
                         .key(key)
diff --git a/core/api/src/main/java/org/onosproject/net/Device.java b/core/api/src/main/java/org/onosproject/net/Device.java
index da9a72e..e0a3d69 100644
--- a/core/api/src/main/java/org/onosproject/net/Device.java
+++ b/core/api/src/main/java/org/onosproject/net/Device.java
@@ -27,7 +27,8 @@
      */
     enum Type {
         SWITCH, ROUTER, ROADM, OTN, ROADM_OTN, FIREWALL, BALANCER, IPS, IDS, CONTROLLER,
-        VIRTUAL, FIBER_SWITCH, MICROWAVE, OLT, ONU, OPTICAL_AMPLIFIER, OLS, OTHER, SERVER
+        VIRTUAL, FIBER_SWITCH, MICROWAVE, OLT, ONU, OPTICAL_AMPLIFIER, OLS, TERMINAL_DEVICE,
+        OTHER, SERVER
     }
 
     /**
diff --git a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
index 513e648..0f0069e 100644
--- a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
@@ -707,8 +707,8 @@
                 log.trace("Device not found: {}", deviceId);
                 return;
             }
-            if ((Device.Type.ROADM.equals(device.type())) ||
-                    (Device.Type.OTN.equals(device.type())) || (Device.Type.OLS.equals(device.type()))) {
+            if ((Type.ROADM.equals(device.type())) || (Type.OTN.equals(device.type())) ||
+                    (Type.OLS.equals(device.type())) || (Type.TERMINAL_DEVICE.equals(device.type()))) {
                 // FIXME This is ignoring all other info in portDescription given as input??
                 PortDescription storedPortDesc = store.getPortDescription(provider().id(),
                                                                           deviceId,
diff --git a/core/protobuf/models/proto/net/device/DeviceEnumsProto.proto b/core/protobuf/models/proto/net/device/DeviceEnumsProto.proto
index aaecef0..e74503c 100644
--- a/core/protobuf/models/proto/net/device/DeviceEnumsProto.proto
+++ b/core/protobuf/models/proto/net/device/DeviceEnumsProto.proto
@@ -34,6 +34,7 @@
     FIBER_SWITCH = 12;
     MICROWAVE = 13;
     OLS = 14;
+    TERMINAL_DEVICE = 15;
 }
 
 enum DeviceEventTypeProto {
diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/CassiniTerminalDeviceDiscovery.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/CassiniTerminalDeviceDiscovery.java
index ca7fbc2..acb6c4a 100644
--- a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/CassiniTerminalDeviceDiscovery.java
+++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/CassiniTerminalDeviceDiscovery.java
@@ -140,7 +140,7 @@
     @Override
     public DeviceDescription discoverDeviceDetails() {
         return new DefaultDeviceDescription(handler().data().deviceId().uri(),
-                                            Device.Type.OTN,
+                                            Device.Type.TERMINAL_DEVICE,
                                             "EDGECORE",
                                             "Cassini",
                                             "OcNOS",
diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/InfineraOpenConfigDeviceDiscovery.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/InfineraOpenConfigDeviceDiscovery.java
index 55eb6c7..e137b92 100644
--- a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/InfineraOpenConfigDeviceDiscovery.java
+++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/InfineraOpenConfigDeviceDiscovery.java
@@ -64,7 +64,7 @@
     @Override
     public DeviceDescription discoverDeviceDetails() {
         return new DefaultDeviceDescription(handler().data().deviceId().uri(),
-                Device.Type.OTN, "Infinera", "XT-3300",
+                Device.Type.TERMINAL_DEVICE, "Infinera", "XT-3300",
                 "unknown", "unknown", new ChassisId());
     }
 
diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/OpenConfigDeviceDiscovery.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/OpenConfigDeviceDiscovery.java
index fa5b14e..086c5ab 100644
--- a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/OpenConfigDeviceDiscovery.java
+++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/OpenConfigDeviceDiscovery.java
@@ -64,7 +64,7 @@
     @Override
     public DeviceDescription discoverDeviceDetails() {
         return new DefaultDeviceDescription(handler().data().deviceId().uri(),
-                Device.Type.OTN, "unknown", "unknown",
+                Device.Type.TERMINAL_DEVICE, "unknown", "unknown",
                 "unknown", "unknown", new ChassisId());
     }
 
diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/openconfig/TerminalDeviceDiscovery.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/openconfig/TerminalDeviceDiscovery.java
index b65f15c..36926e8 100644
--- a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/openconfig/TerminalDeviceDiscovery.java
+++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/openconfig/TerminalDeviceDiscovery.java
@@ -257,7 +257,7 @@
 
         // Other option "OTHER", we use ROADM for now
         org.onosproject.net.Device.Type type =
-            org.onosproject.net.Device.Type.ROADM;
+            Device.Type.TERMINAL_DEVICE;
 
         // Some defaults
         String vendor       = "NOVENDOR";
diff --git a/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java b/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java
index 4f44307..768c207 100644
--- a/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java
+++ b/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java
@@ -189,7 +189,8 @@
                                           Device.Type.FIBER_SWITCH,
                                           Device.Type.OPTICAL_AMPLIFIER,
                                           Device.Type.OTN,
-                                          Device.Type.OLS),
+                                          Device.Type.OLS,
+                                          Device.Type.TERMINAL_DEVICE),
                                ImmutableMap.of(NO_LLDP, SuppressionRules.ANY_VALUE));
 
     private SuppressionRules rules = LldpLinkProvider.DEFAULT_RULES;
diff --git a/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/OpenFlowMeterProvider.java b/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/OpenFlowMeterProvider.java
index 0767230..ca34e10 100644
--- a/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/OpenFlowMeterProvider.java
+++ b/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/OpenFlowMeterProvider.java
@@ -121,7 +121,9 @@
             ImmutableSet.copyOf(EnumSet.of(Device.Type.ROADM,
                                            Device.Type.ROADM_OTN,
                                            Device.Type.FIBER_SWITCH,
-                                           Device.Type.OTN));
+                                           Device.Type.OTN,
+                                           Device.Type.OLS,
+                                           Device.Type.TERMINAL_DEVICE));
 
     /**
      * Creates a OpenFlow meter provider.
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
index 021e4e1..5f30bf8 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
@@ -775,14 +775,16 @@
         // Send optical first, others later for layered rendering
         for (Device device : services.device().getDevices()) {
             if ((device.type() == Device.Type.ROADM) ||
-                    (device.type() == Device.Type.OTN) || (device.type() == Device.Type.OLS)) {
+                    (device.type() == Device.Type.OTN) ||
+                    (device.type() == Device.Type.OLS) ||
+                    (device.type() == Device.Type.TERMINAL_DEVICE)) {
                 sendMessage(deviceMessage(new DeviceEvent(DEVICE_ADDED, device)));
             }
         }
         for (Device device : services.device().getDevices()) {
             if ((device.type() != Device.Type.ROADM) &&
                     (device.type() != Device.Type.OTN) && (device.type() != Device.Type.OLS) &&
-                    (device.type() != Device.Type.CONTROLLER)) {
+                    (device.type() != Device.Type.TERMINAL_DEVICE) && (device.type() != Device.Type.CONTROLLER)) {
                 sendMessage(deviceMessage(new DeviceEvent(DEVICE_ADDED, device)));
             }
         }
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
index 6f370b8..994f014 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
@@ -142,6 +142,7 @@
         DEVICE_GLYPHS.put(Device.Type.ROADM, "m_roadm");
         DEVICE_GLYPHS.put(Device.Type.OLS, "m_roadm");
         DEVICE_GLYPHS.put(Device.Type.OTN, "m_otn");
+        DEVICE_GLYPHS.put(Device.Type.TERMINAL_DEVICE, "m_otn");
         DEVICE_GLYPHS.put(Device.Type.ROADM_OTN, "m_roadm_otn");
         DEVICE_GLYPHS.put(Device.Type.BALANCER, "m_balancer");
         DEVICE_GLYPHS.put(Device.Type.IPS, "m_ips");
diff --git a/web/gui/src/main/webapp/app/view/topo/topoD3.js b/web/gui/src/main/webapp/app/view/topo/topoD3.js
index 15499a5..1b73fbf 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoD3.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoD3.js
@@ -74,6 +74,8 @@
         'switch': 'm_switch',
         roadm: 'm_roadm',
         otn: 'm_otn',
+        ols: 'm_roadm',
+        terminal_device: 'm_otn',
         roadm_otn: 'm_roadm_otn',
         fiber_switch: 'm_fiberSwitch',
         microwave: 'm_microwave',
diff --git a/web/gui/src/main/webapp/app/view/topo/topoFilter.js b/web/gui/src/main/webapp/app/view/topo/topoFilter.js
index b5a5283..5e4d43a 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoFilter.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoFilter.js
@@ -52,6 +52,9 @@
                 router: 'pkt',
                 roadm: 'opt',
                 otn: 'opt',
+                ols: 'opt',
+                terminal_device: 'opt',
+                roadm_otn: 'opt',
             },
             link: {
                 hostLink: 'pkt',
