Adding OLS device Type for ODTN project

Change-Id: Ia3472b47ea12d2f2f44de9cb88f20774881530ee
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 4d8bdb0..da9a72e 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,7 @@
      */
     enum Type {
         SWITCH, ROUTER, ROADM, OTN, ROADM_OTN, FIREWALL, BALANCER, IPS, IDS, CONTROLLER,
-        VIRTUAL, FIBER_SWITCH, MICROWAVE, OLT, ONU, OPTICAL_AMPLIFIER, OTHER, SERVER
+        VIRTUAL, FIBER_SWITCH, MICROWAVE, OLT, ONU, OPTICAL_AMPLIFIER, OLS, OTHER, SERVER
     }
 
     /**
diff --git a/core/api/src/main/java/org/onosproject/net/GridType.java b/core/api/src/main/java/org/onosproject/net/GridType.java
index 498b908..1e21fac 100644
--- a/core/api/src/main/java/org/onosproject/net/GridType.java
+++ b/core/api/src/main/java/org/onosproject/net/GridType.java
@@ -25,5 +25,6 @@
 public enum GridType {
     DWDM,               // Dense Wavelength Division Multiplexing
     CWDM,               // Coarse WDM
-    FLEX                // Flex Grid
+    FLEX,               // Flex Grid
+    UNKNOWN             // Unknown
 }
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 98880db..513e648 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
@@ -708,7 +708,7 @@
                 return;
             }
             if ((Device.Type.ROADM.equals(device.type())) ||
-                    (Device.Type.OTN.equals(device.type()))) {
+                    (Device.Type.OTN.equals(device.type())) || (Device.Type.OLS.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 e8713d3..aaecef0 100644
--- a/core/protobuf/models/proto/net/device/DeviceEnumsProto.proto
+++ b/core/protobuf/models/proto/net/device/DeviceEnumsProto.proto
@@ -33,6 +33,7 @@
     VIRTUAL_DEVICE = 11;
     FIBER_SWITCH = 12;
     MICROWAVE = 13;
+    OLS = 14;
 }
 
 enum DeviceEventTypeProto {
diff --git a/core/protobuf/models/src/main/java/org/onosproject/incubator/protobuf/models/net/device/DeviceProtoTranslator.java b/core/protobuf/models/src/main/java/org/onosproject/incubator/protobuf/models/net/device/DeviceProtoTranslator.java
index 90d10f5..6d23334 100644
--- a/core/protobuf/models/src/main/java/org/onosproject/incubator/protobuf/models/net/device/DeviceProtoTranslator.java
+++ b/core/protobuf/models/src/main/java/org/onosproject/incubator/protobuf/models/net/device/DeviceProtoTranslator.java
@@ -115,6 +115,8 @@
                 return Type.ROUTER;
             case SWITCH:
                 return Type.SWITCH;
+            case OLS:
+                return Type.OLS;
             case VIRTUAL_DEVICE:
                 return Type.VIRTUAL;