Make device store aware of optical ports (ONOS-1794).
Change-Id: Ia70855e391e22e1ab22bae73deb38fe9dbb90884
diff --git a/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java b/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
index 873a273..aa736a1 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
@@ -45,6 +45,9 @@
import org.onosproject.net.Device.Type;
import org.onosproject.net.DeviceId;
import org.onosproject.net.MastershipRole;
+import org.onosproject.net.OchPort;
+import org.onosproject.net.OduCltPort;
+import org.onosproject.net.OmsPort;
import org.onosproject.net.Port;
import org.onosproject.net.PortNumber;
import org.onosproject.net.device.DeviceClockService;
@@ -52,6 +55,9 @@
import org.onosproject.net.device.DeviceEvent;
import org.onosproject.net.device.DeviceStore;
import org.onosproject.net.device.DeviceStoreDelegate;
+import org.onosproject.net.device.OchPortDescription;
+import org.onosproject.net.device.OduCltPortDescription;
+import org.onosproject.net.device.OmsPortDescription;
import org.onosproject.net.device.PortDescription;
import org.onosproject.net.device.PortStatistics;
import org.onosproject.net.provider.ProviderId;
@@ -211,7 +217,7 @@
// start anti-entropy thread
backgroundExecutor.scheduleAtFixedRate(new SendAdvertisementTask(),
- initialDelaySec, periodSec, TimeUnit.SECONDS);
+ initialDelaySec, periodSec, TimeUnit.SECONDS);
log.info("Started");
}
@@ -1017,10 +1023,27 @@
}
}
- return portDesc == null ?
- new DefaultPort(device, number, false, annotations) :
- new DefaultPort(device, number, isEnabled, portDesc.value().type(),
- portDesc.value().portSpeed(), annotations);
+ if (portDesc == null) {
+ return new DefaultPort(device, number, false, annotations);
+ }
+
+ switch (portDesc.value().type()) {
+ case OMS:
+ OmsPortDescription omsPortDesc = (OmsPortDescription) portDesc.value();
+ return new OmsPort(device, number, isEnabled, omsPortDesc.minFrequency(),
+ omsPortDesc.maxFrequency(), omsPortDesc.grid());
+ case OCH:
+ OchPortDescription ochPortDesc = (OchPortDescription) portDesc.value();
+ return new OchPort(device, number, isEnabled, ochPortDesc.signalType(),
+ ochPortDesc.isTunable(), ochPortDesc.gridType(), ochPortDesc.channelSpacing(),
+ ochPortDesc.spacingMultiplier(), ochPortDesc.slotGranularity(), annotations);
+ case ODUCLT:
+ OduCltPortDescription oduCltPortDesc = (OduCltPortDescription) portDesc.value();
+ return new OduCltPort(device, number, isEnabled, oduCltPortDesc.signalType(), annotations);
+ default:
+ return new DefaultPort(device, number, isEnabled, portDesc.value().type(),
+ portDesc.value().portSpeed(), annotations);
+ }
}
/**