Add OTN device and ports

Change-Id: I18f3376d1466077e95d7324a27a660302f0123b3
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 5f6fb04..60fd95a 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
@@ -352,7 +352,8 @@
             final Device device = getDevice(deviceId);
 
             List<PortDescription> descs = ports.stream().map(
-              port -> (!(Device.Type.ROADM.equals(device.type()))) ?
+              port -> (!(Device.Type.ROADM.equals(device.type()) ||
+                        (Device.Type.OTN.equals(device.type())))) ?
                   new DefaultPortDescription(port.number(), false,
                           port.type(), port.portSpeed()) :
                       OpticalPortOperator.descriptionOf(port, false)
@@ -439,7 +440,8 @@
                 return;
             }
             Device device = nullIsNotFound(getDevice(deviceId), "Device not found");
-            if ((Device.Type.ROADM.equals(device.type()))) {
+            if ((Device.Type.ROADM.equals(device.type())) ||
+                (Device.Type.OTN.equals(device.type()))) {
                 Port port = getPort(deviceId, portDescription.portNumber());
                 portDescription = OpticalPortOperator.descriptionOf(port, portDescription.isEnabled());
             }
diff --git a/core/net/src/main/java/org/onosproject/net/device/impl/OpticalPortOperator.java b/core/net/src/main/java/org/onosproject/net/device/impl/OpticalPortOperator.java
index 8f60149..ca720e2 100644
--- a/core/net/src/main/java/org/onosproject/net/device/impl/OpticalPortOperator.java
+++ b/core/net/src/main/java/org/onosproject/net/device/impl/OpticalPortOperator.java
@@ -23,6 +23,7 @@
 import org.onosproject.net.AnnotationKeys;
 import org.onosproject.net.DefaultAnnotations;
 import org.onosproject.net.OchPort;
+import org.onosproject.net.OtuPort;
 import org.onosproject.net.OduCltPort;
 import org.onosproject.net.OmsPort;
 import org.onosproject.net.Port;
@@ -32,6 +33,7 @@
 import org.onosproject.net.device.OchPortDescription;
 import org.onosproject.net.device.OduCltPortDescription;
 import org.onosproject.net.device.OmsPortDescription;
+import org.onosproject.net.device.OtuPortDescription;
 import org.onosproject.net.device.PortDescription;
 import org.slf4j.Logger;
 
@@ -115,6 +117,9 @@
             case COPPER:
                 return new DefaultPortDescription(port, descr.isEnabled(), descr.type(),
                         descr.portSpeed(), sa);
+            case OTU:
+                OtuPortDescription otu = (OtuPortDescription) descr;
+                return new OtuPortDescription(port, otu.isEnabled(), otu.signalType(), sa);
             default:
                 log.warn("Unsupported optical port type {} - can't update", descr.type());
                 return descr;
@@ -183,6 +188,9 @@
             case ODUCLT:
                 OduCltPort odu = (OduCltPort) port;
                 return new OduCltPortDescription(ptn, isup, odu.signalType(), an);
+            case OTU:
+                OtuPort otu = (OtuPort) port;
+                return new OtuPortDescription(ptn, isup, otu.signalType(), an);
             default:
                 return new DefaultPortDescription(ptn, isup, port.type(), port.portSpeed(), an);
         }