Ayaka Koshibe
Committed by Gerrit Code Review

Misc device/optical config features:

o devices and optical ports are updated with network configs
o refactored AllowedEntity checks in DeviceManager
o "basic" -> "optical" for OpticalPort config key
o Device and OpticalPort operators can create descriptions

Change-Id: I59edc368f3a8ff931954b174d4a898f6b4add5d5
...@@ -84,7 +84,7 @@ public class BasicNetworkConfigs { ...@@ -84,7 +84,7 @@ public class BasicNetworkConfigs {
84 }, 84 },
85 new ConfigFactory<ConnectPoint, OpticalPortConfig>(CONNECT_POINT_SUBJECT_FACTORY, 85 new ConfigFactory<ConnectPoint, OpticalPortConfig>(CONNECT_POINT_SUBJECT_FACTORY,
86 OpticalPortConfig.class, 86 OpticalPortConfig.class,
87 - "basic") { 87 + "optical") {
88 @Override 88 @Override
89 public OpticalPortConfig createConfig() { 89 public OpticalPortConfig createConfig() {
90 return new OpticalPortConfig(); 90 return new OpticalPortConfig();
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
16 package org.onosproject.net.device.impl; 16 package org.onosproject.net.device.impl;
17 17
18 import static org.slf4j.LoggerFactory.getLogger; 18 import static org.slf4j.LoggerFactory.getLogger;
19 +import static com.google.common.base.Preconditions.checkNotNull;
19 20
20 import org.onosproject.net.config.ConfigOperator; 21 import org.onosproject.net.config.ConfigOperator;
21 import org.onosproject.net.config.basics.BasicDeviceConfig; 22 import org.onosproject.net.config.basics.BasicDeviceConfig;
...@@ -93,4 +94,12 @@ public final class BasicDeviceOperator implements ConfigOperator { ...@@ -93,4 +94,12 @@ public final class BasicDeviceOperator implements ConfigOperator {
93 DefaultAnnotations newAnnotations = newBuilder.build(); 94 DefaultAnnotations newAnnotations = newBuilder.build();
94 return DefaultAnnotations.union(an, newAnnotations); 95 return DefaultAnnotations.union(an, newAnnotations);
95 } 96 }
97 +
98 + public static DeviceDescription descriptionOf(Device device) {
99 + checkNotNull(device, "Must supply non-null Device");
100 + return new DefaultDeviceDescription(device.id().uri(), device.type(),
101 + device.manufacturer(), device.hwVersion(),
102 + device.swVersion(), device.serialNumber(),
103 + device.chassisId(), (SparseAnnotations) device.annotations());
104 + }
96 } 105 }
......
...@@ -16,11 +16,16 @@ ...@@ -16,11 +16,16 @@
16 package org.onosproject.net.device.impl; 16 package org.onosproject.net.device.impl;
17 17
18 import static org.slf4j.LoggerFactory.getLogger; 18 import static org.slf4j.LoggerFactory.getLogger;
19 +import static com.google.common.base.Preconditions.checkNotNull;
19 20
20 import org.onosproject.net.config.ConfigOperator; 21 import org.onosproject.net.config.ConfigOperator;
21 import org.onosproject.net.config.basics.OpticalPortConfig; 22 import org.onosproject.net.config.basics.OpticalPortConfig;
22 import org.onosproject.net.AnnotationKeys; 23 import org.onosproject.net.AnnotationKeys;
23 import org.onosproject.net.DefaultAnnotations; 24 import org.onosproject.net.DefaultAnnotations;
25 +import org.onosproject.net.OchPort;
26 +import org.onosproject.net.OduCltPort;
27 +import org.onosproject.net.OmsPort;
28 +import org.onosproject.net.Port;
24 import org.onosproject.net.PortNumber; 29 import org.onosproject.net.PortNumber;
25 import org.onosproject.net.SparseAnnotations; 30 import org.onosproject.net.SparseAnnotations;
26 import org.onosproject.net.device.DefaultPortDescription; 31 import org.onosproject.net.device.DefaultPortDescription;
...@@ -137,4 +142,32 @@ public final class OpticalPortOperator implements ConfigOperator { ...@@ -137,4 +142,32 @@ public final class OpticalPortOperator implements ConfigOperator {
137 } 142 }
138 return DefaultAnnotations.union(an, b.build()); 143 return DefaultAnnotations.union(an, b.build());
139 } 144 }
145 +
146 + /**
147 + * Returns a description built from an existing port.
148 + *
149 + * @param port the device port
150 + * @return a PortDescription based on the port
151 + */
152 + public static PortDescription descriptionOf(Port port) {
153 + checkNotNull(port, "Must supply non-null Port");
154 + final PortNumber ptn = port.number();
155 + final boolean isup = port.isEnabled();
156 + final SparseAnnotations an = (SparseAnnotations) port.annotations();
157 + switch (port.type()) {
158 + case OMS:
159 + OmsPort oms = (OmsPort) port;
160 + return new OmsPortDescription(ptn, isup, oms.minFrequency(),
161 + oms.maxFrequency(), oms.grid(), an);
162 + case OCH:
163 + OchPort och = (OchPort) port;
164 + return new OchPortDescription(ptn, isup, och.signalType(),
165 + och.isTunable(), och.lambda(), an);
166 + case ODUCLT:
167 + OduCltPort odu = (OduCltPort) port;
168 + return new OduCltPortDescription(ptn, isup, odu.signalType(), an);
169 + default:
170 + return new DefaultPortDescription(ptn, isup, port.type(), port.portSpeed(), an);
171 + }
172 + }
140 } 173 }
......