Committed by
Yuta HIGUCHI
ONOS-4415 Remove OmsPort out of core.
Change-Id: Ic796c4e715789ba18f350f28e29db04dd537822f
Showing
21 changed files
with
737 additions
and
48 deletions
... | @@ -26,12 +26,12 @@ import org.onlab.util.Frequency; | ... | @@ -26,12 +26,12 @@ import org.onlab.util.Frequency; |
26 | import org.onosproject.utils.Comparators; | 26 | import org.onosproject.utils.Comparators; |
27 | import org.onosproject.net.Device; | 27 | import org.onosproject.net.Device; |
28 | import org.onosproject.net.OduCltPort; | 28 | import org.onosproject.net.OduCltPort; |
29 | -import org.onosproject.net.OmsPort; | ||
30 | import org.onosproject.net.OtuPort; | 29 | import org.onosproject.net.OtuPort; |
31 | import org.onosproject.net.Port; | 30 | import org.onosproject.net.Port; |
32 | import org.onosproject.net.PortNumber; | 31 | import org.onosproject.net.PortNumber; |
33 | import org.onosproject.net.device.DeviceService; | 32 | import org.onosproject.net.device.DeviceService; |
34 | import org.onosproject.net.optical.OchPort; | 33 | import org.onosproject.net.optical.OchPort; |
34 | +import org.onosproject.net.optical.OmsPort; | ||
35 | import org.onosproject.net.optical.OpticalDevice; | 35 | import org.onosproject.net.optical.OpticalDevice; |
36 | import java.util.ArrayList; | 36 | import java.util.ArrayList; |
37 | import java.util.Collections; | 37 | import java.util.Collections; |
... | @@ -191,11 +191,27 @@ public class DevicePortsListCommand extends DevicesListCommand { | ... | @@ -191,11 +191,27 @@ public class DevicePortsListCommand extends DevicesListCommand { |
191 | ((OduCltPort) port).signalType().toString(), annotations); | 191 | ((OduCltPort) port).signalType().toString(), annotations); |
192 | break; | 192 | break; |
193 | case OMS: | 193 | case OMS: |
194 | - print(FMT_OMS, portName, portIsEnabled, portType, | 194 | + if (port instanceof org.onosproject.net.OmsPort) { |
195 | - ((OmsPort) port).minFrequency().asHz() / Frequency.ofGHz(1).asHz(), | 195 | + org.onosproject.net.OmsPort oms = (org.onosproject.net.OmsPort) port; |
196 | - ((OmsPort) port).maxFrequency().asHz() / Frequency.ofGHz(1).asHz(), | 196 | + print("WARN: OmsPort in old model"); |
197 | - ((OmsPort) port).grid().asHz() / Frequency.ofGHz(1).asHz(), | 197 | + print(FMT_OMS, portName, portIsEnabled, portType, |
198 | - ((OmsPort) port).totalChannels(), annotations); | 198 | + oms.minFrequency().asHz() / Frequency.ofGHz(1).asHz(), |
199 | + oms.maxFrequency().asHz() / Frequency.ofGHz(1).asHz(), | ||
200 | + oms.grid().asHz() / Frequency.ofGHz(1).asHz(), | ||
201 | + oms.totalChannels(), annotations); | ||
202 | + break; | ||
203 | + } | ||
204 | + if (port instanceof OmsPort) { | ||
205 | + OmsPort oms = (OmsPort) port; | ||
206 | + print(FMT_OMS, portName, portIsEnabled, portType, | ||
207 | + oms.minFrequency().asHz() / Frequency.ofGHz(1).asHz(), | ||
208 | + oms.maxFrequency().asHz() / Frequency.ofGHz(1).asHz(), | ||
209 | + oms.grid().asHz() / Frequency.ofGHz(1).asHz(), | ||
210 | + oms.totalChannels(), annotations); | ||
211 | + break; | ||
212 | + } | ||
213 | + print("WARN: OmsPort but not on OpticalDevice or ill-formed"); | ||
214 | + print(FMT, portName, portIsEnabled, portType, port.portSpeed(), annotations); | ||
199 | break; | 215 | break; |
200 | case OTU: | 216 | case OTU: |
201 | print(FMT_ODUCLT_OTU, portName, portIsEnabled, portType, | 217 | print(FMT_ODUCLT_OTU, portName, portIsEnabled, portType, | ... | ... |
... | @@ -28,7 +28,10 @@ import static com.google.common.base.Preconditions.checkNotNull; | ... | @@ -28,7 +28,10 @@ import static com.google.common.base.Preconditions.checkNotNull; |
28 | * See ITU G.709 "Interfaces for the Optical Transport Network (OTN)" | 28 | * See ITU G.709 "Interfaces for the Optical Transport Network (OTN)" |
29 | * | 29 | * |
30 | * Assumes we only support fixed grid for now. | 30 | * Assumes we only support fixed grid for now. |
31 | + * | ||
32 | + * @deprecated in Goldeneye (1.6.0) | ||
31 | */ | 33 | */ |
34 | +@Deprecated | ||
32 | public class OmsPort extends DefaultPort { | 35 | public class OmsPort extends DefaultPort { |
33 | 36 | ||
34 | private final Frequency minFrequency; // Minimum frequency | 37 | private final Frequency minFrequency; // Minimum frequency | ... | ... |
... | @@ -23,7 +23,10 @@ import org.onosproject.net.SparseAnnotations; | ... | @@ -23,7 +23,10 @@ import org.onosproject.net.SparseAnnotations; |
23 | 23 | ||
24 | /** | 24 | /** |
25 | * Default implementation of immutable OMS port description. | 25 | * Default implementation of immutable OMS port description. |
26 | + * | ||
27 | + * @deprecated in Goldeneye (1.6.0) | ||
26 | */ | 28 | */ |
29 | +@Deprecated | ||
27 | public class OmsPortDescription extends DefaultPortDescription { | 30 | public class OmsPortDescription extends DefaultPortDescription { |
28 | 31 | ||
29 | private final Frequency minFrequency; | 32 | private final Frequency minFrequency; |
... | @@ -39,7 +42,10 @@ public class OmsPortDescription extends DefaultPortDescription { | ... | @@ -39,7 +42,10 @@ public class OmsPortDescription extends DefaultPortDescription { |
39 | * @param maxFrequency maximum frequency | 42 | * @param maxFrequency maximum frequency |
40 | * @param grid grid spacing frequency | 43 | * @param grid grid spacing frequency |
41 | * @param annotations optional key/value annotations map | 44 | * @param annotations optional key/value annotations map |
45 | + * | ||
46 | + * @deprecated in Goldeneye (1.6.0) | ||
42 | */ | 47 | */ |
48 | + @Deprecated | ||
43 | public OmsPortDescription(PortNumber number, boolean isEnabled, Frequency minFrequency, Frequency maxFrequency, | 49 | public OmsPortDescription(PortNumber number, boolean isEnabled, Frequency minFrequency, Frequency maxFrequency, |
44 | Frequency grid, SparseAnnotations... annotations) { | 50 | Frequency grid, SparseAnnotations... annotations) { |
45 | super(number, isEnabled, Port.Type.OMS, 0, annotations); | 51 | super(number, isEnabled, Port.Type.OMS, 0, annotations); |
... | @@ -56,7 +62,10 @@ public class OmsPortDescription extends DefaultPortDescription { | ... | @@ -56,7 +62,10 @@ public class OmsPortDescription extends DefaultPortDescription { |
56 | * @param maxFrequency maximum frequency | 62 | * @param maxFrequency maximum frequency |
57 | * @param grid grid spacing frequency | 63 | * @param grid grid spacing frequency |
58 | * @param annotations optional key/value annotations map | 64 | * @param annotations optional key/value annotations map |
65 | + * | ||
66 | + * @deprecated in Goldeneye (1.6.0) | ||
59 | */ | 67 | */ |
68 | + @Deprecated | ||
60 | public OmsPortDescription(PortDescription base, Frequency minFrequency, Frequency maxFrequency, | 69 | public OmsPortDescription(PortDescription base, Frequency minFrequency, Frequency maxFrequency, |
61 | Frequency grid, SparseAnnotations annotations) { | 70 | Frequency grid, SparseAnnotations annotations) { |
62 | super(base, annotations); | 71 | super(base, annotations); | ... | ... |
1 | +/* | ||
2 | + * Copyright 2016-present Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | +package org.onosproject.net.optical; | ||
17 | + | ||
18 | +import org.onlab.util.Frequency; | ||
19 | +import org.onosproject.net.Port; | ||
20 | + | ||
21 | +import com.google.common.annotations.Beta; | ||
22 | + | ||
23 | +/** | ||
24 | + * OMS port (Optical Multiplexing Section). | ||
25 | + * Also referred to as a WDM port or W-port. | ||
26 | + * See ITU G.709 "Interfaces for the Optical Transport Network (OTN)" | ||
27 | + * | ||
28 | + * Assumes we only support fixed grid for now. | ||
29 | + */ | ||
30 | +@Beta | ||
31 | +public interface OmsPort extends Port { | ||
32 | + | ||
33 | + /** | ||
34 | + * Returns the total number of channels on the port. | ||
35 | + * | ||
36 | + * @return total number of channels | ||
37 | + */ | ||
38 | + default short totalChannels() { | ||
39 | + Frequency diff = maxFrequency().subtract(minFrequency()); | ||
40 | + return (short) (diff.asHz() / grid().asHz()); | ||
41 | + } | ||
42 | + | ||
43 | + /** | ||
44 | + * Returns the minimum frequency. | ||
45 | + * | ||
46 | + * @return minimum frequency | ||
47 | + */ | ||
48 | + Frequency minFrequency(); | ||
49 | + | ||
50 | + /** | ||
51 | + * Returns the maximum frequency. | ||
52 | + * | ||
53 | + * @return maximum frequency | ||
54 | + */ | ||
55 | + Frequency maxFrequency(); | ||
56 | + | ||
57 | + /** | ||
58 | + * Returns the grid spacing frequency. | ||
59 | + * | ||
60 | + * @return grid spacing frequency | ||
61 | + */ | ||
62 | + Frequency grid(); | ||
63 | + | ||
64 | +} |
... | @@ -28,8 +28,10 @@ import org.onosproject.net.device.DeviceService; | ... | @@ -28,8 +28,10 @@ import org.onosproject.net.device.DeviceService; |
28 | import org.onosproject.net.driver.AbstractBehaviour; | 28 | import org.onosproject.net.driver.AbstractBehaviour; |
29 | import org.onosproject.net.driver.DriverData; | 29 | import org.onosproject.net.driver.DriverData; |
30 | import org.onosproject.net.optical.OchPort; | 30 | import org.onosproject.net.optical.OchPort; |
31 | +import org.onosproject.net.optical.OmsPort; | ||
31 | import org.onosproject.net.optical.OpticalDevice; | 32 | import org.onosproject.net.optical.OpticalDevice; |
32 | import org.onosproject.net.optical.device.port.OchPortMapper; | 33 | import org.onosproject.net.optical.device.port.OchPortMapper; |
34 | +import org.onosproject.net.optical.device.port.OmsPortMapper; | ||
33 | import org.onosproject.net.optical.device.port.PortMapper; | 35 | import org.onosproject.net.optical.device.port.PortMapper; |
34 | import org.onosproject.net.optical.utils.ForwardingDevice; | 36 | import org.onosproject.net.optical.utils.ForwardingDevice; |
35 | import org.slf4j.Logger; | 37 | import org.slf4j.Logger; |
... | @@ -60,6 +62,7 @@ public class DefaultOpticalDevice | ... | @@ -60,6 +62,7 @@ public class DefaultOpticalDevice |
60 | private static final Map<Class<? extends Port>, PortMapper<? extends Port>> MAPPERS | 62 | private static final Map<Class<? extends Port>, PortMapper<? extends Port>> MAPPERS |
61 | = ImmutableMap.<Class<? extends Port>, PortMapper<? extends Port>>builder() | 63 | = ImmutableMap.<Class<? extends Port>, PortMapper<? extends Port>>builder() |
62 | .put(OchPort.class, new OchPortMapper()) | 64 | .put(OchPort.class, new OchPortMapper()) |
65 | + .put(OmsPort.class, new OmsPortMapper()) | ||
63 | // TODO add other optical port type here | 66 | // TODO add other optical port type here |
64 | .build(); | 67 | .build(); |
65 | 68 | ... | ... |
1 | +/* | ||
2 | + * Copyright 2016-present Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | +package org.onosproject.net.optical.device; | ||
17 | + | ||
18 | +import static org.slf4j.LoggerFactory.getLogger; | ||
19 | + | ||
20 | +import java.util.Optional; | ||
21 | + | ||
22 | +import org.onlab.util.Frequency; | ||
23 | +import org.onosproject.net.Annotations; | ||
24 | +import org.onosproject.net.DefaultAnnotations; | ||
25 | +import org.onosproject.net.Port; | ||
26 | +import org.onosproject.net.PortNumber; | ||
27 | +import org.onosproject.net.SparseAnnotations; | ||
28 | +import org.onosproject.net.DefaultAnnotations.Builder; | ||
29 | +import org.onosproject.net.device.DefaultPortDescription; | ||
30 | +import org.onosproject.net.device.PortDescription; | ||
31 | +import org.onosproject.net.optical.OmsPort; | ||
32 | +import org.onosproject.net.optical.impl.DefaultOmsPort; | ||
33 | +import org.slf4j.Logger; | ||
34 | + | ||
35 | +import com.google.common.annotations.Beta; | ||
36 | + | ||
37 | +/** | ||
38 | + * OMS port related helpers. | ||
39 | + */ | ||
40 | +@Beta | ||
41 | +public final class OmsPortHelper { | ||
42 | + | ||
43 | + private static final Logger log = getLogger(OmsPortHelper.class); | ||
44 | + | ||
45 | + // Annotation keys | ||
46 | + /** | ||
47 | + * minFrequency in Hz. | ||
48 | + */ | ||
49 | + private static final String MIN_FREQ_HZ = "minFrequency"; | ||
50 | + /** | ||
51 | + * maxFrequency in Hz. | ||
52 | + */ | ||
53 | + private static final String MAX_FREQ_HZ = "maxFrequency"; | ||
54 | + /** | ||
55 | + * grid in Hz. | ||
56 | + */ | ||
57 | + private static final String GRID_HZ = "grid"; | ||
58 | + | ||
59 | + /** | ||
60 | + * Creates OMS port description based on the supplied information. | ||
61 | + * | ||
62 | + * @param number port number | ||
63 | + * @param isEnabled port enabled state | ||
64 | + * @param minFrequency minimum frequency | ||
65 | + * @param maxFrequency maximum frequency | ||
66 | + * @param grid grid spacing frequency | ||
67 | + * @param annotations key/value annotations map | ||
68 | + */ | ||
69 | + public static PortDescription omsPortDescription(PortNumber number, | ||
70 | + boolean isEnabled, | ||
71 | + Frequency minFrequency, | ||
72 | + Frequency maxFrequency, | ||
73 | + Frequency grid, | ||
74 | + SparseAnnotations annotations) { | ||
75 | + | ||
76 | + Builder builder = DefaultAnnotations.builder(); | ||
77 | + builder.putAll(annotations); | ||
78 | + | ||
79 | + builder.set(MIN_FREQ_HZ, String.valueOf(minFrequency.asHz())); | ||
80 | + builder.set(MAX_FREQ_HZ, String.valueOf(maxFrequency.asHz())); | ||
81 | + builder.set(GRID_HZ, String.valueOf(grid.asHz())); | ||
82 | + | ||
83 | + long portSpeed = 0; | ||
84 | + return new DefaultPortDescription(number, isEnabled, Port.Type.OMS, portSpeed, builder.build()); | ||
85 | + } | ||
86 | + | ||
87 | + /** | ||
88 | + * Creates OMS port description based on the supplied information. | ||
89 | + * | ||
90 | + * @param number port number | ||
91 | + * @param isEnabled port enabled state | ||
92 | + * @param minFrequency minimum frequency | ||
93 | + * @param maxFrequency maximum frequency | ||
94 | + * @param grid grid spacing frequency | ||
95 | + */ | ||
96 | + public static PortDescription omsPortDescription(PortNumber number, | ||
97 | + boolean isEnabled, | ||
98 | + Frequency minFrequency, | ||
99 | + Frequency maxFrequency, | ||
100 | + Frequency grid) { | ||
101 | + return omsPortDescription(number, isEnabled, minFrequency, maxFrequency, grid, DefaultAnnotations.EMPTY); | ||
102 | + } | ||
103 | + | ||
104 | + /** | ||
105 | + * Creates OMS port description based on the supplied information. | ||
106 | + * | ||
107 | + * @param base PortDescription to get basic information from | ||
108 | + * @param minFrequency minimum frequency | ||
109 | + * @param maxFrequency maximum frequency | ||
110 | + * @param grid grid spacing frequency | ||
111 | + * @param annotations key/value annotations map | ||
112 | + */ | ||
113 | + public static PortDescription omsPortDescription(PortDescription base, | ||
114 | + Frequency minFrequency, | ||
115 | + Frequency maxFrequency, | ||
116 | + Frequency grid, | ||
117 | + SparseAnnotations annotations) { | ||
118 | + | ||
119 | + return omsPortDescription(base.portNumber(), base.isEnabled(), | ||
120 | + minFrequency, maxFrequency, grid, | ||
121 | + annotations); | ||
122 | + } | ||
123 | + | ||
124 | + public static Optional<OmsPort> asOmsPort(Port port) { | ||
125 | + if (port instanceof OmsPort) { | ||
126 | + return Optional.of((OmsPort) port); | ||
127 | + } | ||
128 | + | ||
129 | + try { | ||
130 | + Annotations an = port.annotations(); | ||
131 | + | ||
132 | + Frequency minFrequency = Frequency.ofHz(Long.parseLong(an.value(MIN_FREQ_HZ))); | ||
133 | + Frequency maxFrequency = Frequency.ofHz(Long.parseLong(an.value(MAX_FREQ_HZ))); | ||
134 | + Frequency grid = Frequency.ofHz(Long.parseLong(an.value(GRID_HZ))); | ||
135 | + | ||
136 | + return Optional.of(new DefaultOmsPort(port, minFrequency, maxFrequency, grid)); | ||
137 | + | ||
138 | + } catch (NumberFormatException e) { | ||
139 | + | ||
140 | + log.warn("{} was not well-formed OMS port.", port, e); | ||
141 | + return Optional.empty(); | ||
142 | + } | ||
143 | + } | ||
144 | + | ||
145 | + // not meant to be instantiated | ||
146 | + private OmsPortHelper() {} | ||
147 | +} |
1 | +/* | ||
2 | + * Copyright 2016-present Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | +package org.onosproject.net.optical.device.port; | ||
17 | + | ||
18 | +import java.util.Optional; | ||
19 | + | ||
20 | +import org.onosproject.net.Port; | ||
21 | +import org.onosproject.net.optical.OmsPort; | ||
22 | +import org.onosproject.net.optical.device.OmsPortHelper; | ||
23 | +import org.onosproject.net.optical.impl.DefaultOmsPort; | ||
24 | + | ||
25 | +import com.google.common.annotations.Beta; | ||
26 | + | ||
27 | +/** | ||
28 | + * {@link PortMapper} to handler {@link OmsPort} translation. | ||
29 | + */ | ||
30 | +@Beta | ||
31 | +public class OmsPortMapper extends AbstractPortMapper<OmsPort> { | ||
32 | + | ||
33 | + @Override | ||
34 | + public boolean is(Port port) { | ||
35 | + return port != null && | ||
36 | + port.type() == Port.Type.OMS && | ||
37 | + super.is(port); | ||
38 | + } | ||
39 | + | ||
40 | + @Override | ||
41 | + public Optional<OmsPort> as(Port port) { | ||
42 | + if (port instanceof OmsPort) { | ||
43 | + return Optional.of((OmsPort) port); | ||
44 | + } | ||
45 | + return super.as(port); | ||
46 | + } | ||
47 | + | ||
48 | + @Override | ||
49 | + protected Optional<OmsPort> mapPort(Port port) { | ||
50 | + if (port instanceof OmsPort) { | ||
51 | + return Optional.of((OmsPort) port); | ||
52 | + } else if (port instanceof org.onosproject.net.OmsPort) { | ||
53 | + // TODO remove after deprecation of old OmsPort is complete | ||
54 | + | ||
55 | + // translate to new OmsPort | ||
56 | + org.onosproject.net.OmsPort old = (org.onosproject.net.OmsPort) port; | ||
57 | + return Optional.of(new DefaultOmsPort(old, | ||
58 | + old.minFrequency(), | ||
59 | + old.maxFrequency(), | ||
60 | + old.grid())); | ||
61 | + } | ||
62 | + | ||
63 | + return OmsPortHelper.asOmsPort(port); | ||
64 | + } | ||
65 | + | ||
66 | +} |
1 | +/* | ||
2 | + * Copyright 2016-present Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | +package org.onosproject.net.optical.impl; | ||
17 | + | ||
18 | +import static com.google.common.base.Preconditions.checkNotNull; | ||
19 | + | ||
20 | +import java.util.Objects; | ||
21 | + | ||
22 | +import org.onlab.util.Frequency; | ||
23 | +import org.onosproject.net.Port; | ||
24 | +import org.onosproject.net.optical.OmsPort; | ||
25 | +import org.onosproject.net.optical.utils.ForwardingPort; | ||
26 | + | ||
27 | +import com.google.common.annotations.Beta; | ||
28 | + | ||
29 | +/** | ||
30 | + * Implementation of OMS port (Optical Multiplexing Section). | ||
31 | + * Also referred to as a WDM port or W-port. | ||
32 | + * See ITU G.709 "Interfaces for the Optical Transport Network (OTN)" | ||
33 | + * | ||
34 | + * Assumes we only support fixed grid for now. | ||
35 | + */ | ||
36 | +@Beta | ||
37 | +public class DefaultOmsPort extends ForwardingPort implements OmsPort { | ||
38 | + | ||
39 | + private final Frequency minFrequency; // Minimum frequency | ||
40 | + private final Frequency maxFrequency; // Maximum frequency | ||
41 | + private final Frequency grid; // Grid spacing frequency | ||
42 | + | ||
43 | + /** | ||
44 | + * Creates an OMS port. | ||
45 | + * | ||
46 | + * @param delegate Port | ||
47 | + * @param minFrequency minimum frequency | ||
48 | + * @param maxFrequency maximum frequency | ||
49 | + * @param grid grid spacing frequency | ||
50 | + */ | ||
51 | + public DefaultOmsPort(Port delegate, Frequency minFrequency, Frequency maxFrequency, Frequency grid) { | ||
52 | + super(delegate); | ||
53 | + | ||
54 | + this.minFrequency = checkNotNull(minFrequency); | ||
55 | + this.maxFrequency = checkNotNull(maxFrequency); | ||
56 | + this.grid = checkNotNull(grid); | ||
57 | + } | ||
58 | + | ||
59 | + @Override | ||
60 | + public Type type() { | ||
61 | + return Type.OMS; | ||
62 | + } | ||
63 | + | ||
64 | + @Override | ||
65 | + public long portSpeed() { | ||
66 | + return 0; | ||
67 | + } | ||
68 | + | ||
69 | + @Override | ||
70 | + public Frequency minFrequency() { | ||
71 | + return minFrequency; | ||
72 | + } | ||
73 | + | ||
74 | + @Override | ||
75 | + public Frequency maxFrequency() { | ||
76 | + return maxFrequency; | ||
77 | + } | ||
78 | + | ||
79 | + @Override | ||
80 | + public Frequency grid() { | ||
81 | + return grid; | ||
82 | + } | ||
83 | + | ||
84 | + @Override | ||
85 | + public int hashCode() { | ||
86 | + return Objects.hash(super.hashCode(), | ||
87 | + minFrequency(), | ||
88 | + maxFrequency(), | ||
89 | + grid()); | ||
90 | + } | ||
91 | + | ||
92 | + @Override | ||
93 | + public boolean equals(Object obj) { | ||
94 | + if (this == obj) { | ||
95 | + return true; | ||
96 | + } | ||
97 | + | ||
98 | + if (obj != null && getClass() == obj.getClass()) { | ||
99 | + final DefaultOmsPort that = (DefaultOmsPort) obj; | ||
100 | + return super.toEqualsBuilder(that) | ||
101 | + .append(this.minFrequency(), that.minFrequency()) | ||
102 | + .append(this.maxFrequency(), that.maxFrequency()) | ||
103 | + .append(this.grid(), that.grid()) | ||
104 | + .isEquals(); | ||
105 | + } | ||
106 | + return false; | ||
107 | + } | ||
108 | + | ||
109 | + @Override | ||
110 | + public String toString() { | ||
111 | + return super.toStringHelper() | ||
112 | + .add("minFrequency", minFrequency()) | ||
113 | + .add("maxFrequency", maxFrequency()) | ||
114 | + .add("grid", grid()) | ||
115 | + .toString(); | ||
116 | + } | ||
117 | + | ||
118 | +} |
1 | +/* | ||
2 | + * Copyright 2016-present Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | +package org.onosproject.net.optical.device; | ||
17 | + | ||
18 | +import static org.hamcrest.Matchers.*; | ||
19 | +import static org.junit.Assert.*; | ||
20 | + | ||
21 | +import java.util.Optional; | ||
22 | + | ||
23 | +import org.junit.Test; | ||
24 | +import org.onlab.packet.ChassisId; | ||
25 | +import org.onlab.util.Frequency; | ||
26 | +import org.onosproject.net.Annotations; | ||
27 | +import org.onosproject.net.DefaultAnnotations; | ||
28 | +import org.onosproject.net.DefaultDevice; | ||
29 | +import org.onosproject.net.DefaultPort; | ||
30 | +import org.onosproject.net.Device; | ||
31 | +import org.onosproject.net.DeviceId; | ||
32 | +import org.onosproject.net.Port; | ||
33 | +import org.onosproject.net.PortNumber; | ||
34 | +import org.onosproject.net.SparseAnnotations; | ||
35 | +import org.onosproject.net.device.PortDescription; | ||
36 | +import org.onosproject.net.optical.OmsPort; | ||
37 | +import org.onosproject.net.Device.Type; | ||
38 | +import org.onosproject.net.provider.ProviderId; | ||
39 | + | ||
40 | +/** | ||
41 | + * Tests for {@link OmsPortHelper}. | ||
42 | + */ | ||
43 | +public class OmsPortHelperTest { | ||
44 | + | ||
45 | + private static final ProviderId PID = new ProviderId("test", "id"); | ||
46 | + private static final DeviceId DID = DeviceId.deviceId("test:00123"); | ||
47 | + private static final String MFC = "MFC"; | ||
48 | + private static final String HW = "HW V"; | ||
49 | + private static final String SW = "SW V"; | ||
50 | + private static final String SER = "SER"; | ||
51 | + private static final ChassisId CHS = new ChassisId(42); | ||
52 | + private static final Annotations DEV_ANON = DefaultAnnotations.EMPTY; | ||
53 | + private static final Device DEV = new DefaultDevice(PID, DID, Type.ROADM, MFC, HW, SW, SER, CHS, DEV_ANON); | ||
54 | + | ||
55 | + | ||
56 | + @Test | ||
57 | + public void testOmsPortDescriptionCanBeConvertedToOmsPort() { | ||
58 | + PortNumber pn = PortNumber.portNumber(4900); | ||
59 | + | ||
60 | + boolean isEnabled = true; | ||
61 | + String anKey = "Base"; | ||
62 | + String anValue = "value"; | ||
63 | + SparseAnnotations an = DefaultAnnotations.builder() | ||
64 | + .set(anKey, anValue) | ||
65 | + .build(); | ||
66 | + | ||
67 | + Frequency minF = Frequency.ofGHz(3); | ||
68 | + Frequency maxF = Frequency.ofGHz(33); | ||
69 | + Frequency grid = Frequency.ofGHz(2); | ||
70 | + | ||
71 | + PortDescription portDescription = OmsPortHelper.omsPortDescription(pn, isEnabled, minF, maxF, grid, an); | ||
72 | + Port port = new DefaultPort(DEV, | ||
73 | + portDescription.portNumber(), | ||
74 | + portDescription.isEnabled(), | ||
75 | + portDescription.type(), | ||
76 | + portDescription.portSpeed(), | ||
77 | + portDescription.annotations()); | ||
78 | + | ||
79 | + Optional<OmsPort> maybeOms = OmsPortHelper.asOmsPort(port); | ||
80 | + assertTrue(maybeOms.isPresent()); | ||
81 | + | ||
82 | + OmsPort oms = maybeOms.get(); | ||
83 | + | ||
84 | + assertThat(oms.isEnabled(), is(isEnabled)); | ||
85 | + assertThat(oms.number(), is(pn)); | ||
86 | + assertThat(oms.annotations().value(anKey), is(anValue)); | ||
87 | + | ||
88 | + assertThat("type is always OMS", oms.type(), is(Port.Type.OMS)); | ||
89 | + assertThat("port speed is undefined", oms.portSpeed(), is(equalTo(0L))); | ||
90 | + | ||
91 | + assertThat(oms.maxFrequency(), is(maxF)); | ||
92 | + assertThat(oms.minFrequency(), is(minF)); | ||
93 | + assertThat(oms.grid(), is(grid)); | ||
94 | + assertThat("(33-3)/2 = 15", oms.totalChannels(), is((short) 15)); | ||
95 | + } | ||
96 | + | ||
97 | +} |
1 | +/* | ||
2 | + * Copyright 2016-present Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | +package org.onosproject.net.optical.impl; | ||
17 | + | ||
18 | +import static org.hamcrest.Matchers.*; | ||
19 | +import static org.junit.Assert.*; | ||
20 | +import static org.onosproject.net.PortNumber.portNumber; | ||
21 | + | ||
22 | +import org.junit.Test; | ||
23 | +import org.onlab.packet.ChassisId; | ||
24 | +import org.onlab.util.Frequency; | ||
25 | +import org.onosproject.net.Annotations; | ||
26 | +import org.onosproject.net.DefaultAnnotations; | ||
27 | +import org.onosproject.net.DefaultDevice; | ||
28 | +import org.onosproject.net.DefaultPort; | ||
29 | +import org.onosproject.net.Device; | ||
30 | +import org.onosproject.net.Device.Type; | ||
31 | +import org.onosproject.net.DeviceId; | ||
32 | +import org.onosproject.net.Port; | ||
33 | +import org.onosproject.net.PortNumber; | ||
34 | +import org.onosproject.net.optical.OmsPort; | ||
35 | +import org.onosproject.net.provider.ProviderId; | ||
36 | + | ||
37 | +import com.google.common.testing.EqualsTester; | ||
38 | + | ||
39 | +/** | ||
40 | + * Tests for {@link DefaultOmsPort}. | ||
41 | + */ | ||
42 | +public class DefaultOmsPortTest { | ||
43 | + | ||
44 | + private static final ProviderId PID = new ProviderId("test", "id"); | ||
45 | + private static final DeviceId DID = DeviceId.deviceId("test:00123"); | ||
46 | + private static final String MFC = "MFC"; | ||
47 | + private static final String HW = "HW V"; | ||
48 | + private static final String SW = "SW V"; | ||
49 | + private static final String SER = "SER"; | ||
50 | + private static final ChassisId CHS = new ChassisId(42); | ||
51 | + private static final Annotations DEV_ANON = DefaultAnnotations.EMPTY; | ||
52 | + private static final Device DEV = new DefaultDevice(PID, DID, Type.ROADM, MFC, HW, SW, SER, CHS, DEV_ANON); | ||
53 | + | ||
54 | + @Test | ||
55 | + public void testEquality() { | ||
56 | + PortNumber pn = PortNumber.portNumber(4900); | ||
57 | + Annotations an = DefaultAnnotations.builder() | ||
58 | + .set("Base", "value") | ||
59 | + .build(); | ||
60 | + Annotations an2 = DefaultAnnotations.builder() | ||
61 | + .set("Base", "value2") | ||
62 | + .build(); | ||
63 | + | ||
64 | + Port base = new DefaultPort(DEV, pn, true, Port.Type.VIRTUAL, 2, an); | ||
65 | + Frequency minF = Frequency.ofGHz(3); | ||
66 | + Frequency maxF = Frequency.ofGHz(33); | ||
67 | + Frequency grid = Frequency.ofGHz(2); | ||
68 | + | ||
69 | + // reference OMS port | ||
70 | + OmsPort oms = new DefaultOmsPort(base, minF, maxF, grid); | ||
71 | + | ||
72 | + new EqualsTester() | ||
73 | + .addEqualityGroup(oms, | ||
74 | + // different base port type or portspeed is ignored | ||
75 | + new DefaultOmsPort(new DefaultPort(DEV, pn, true, an), minF, maxF, grid)) | ||
76 | + // different port number | ||
77 | + .addEqualityGroup(new DefaultOmsPort(new DefaultPort(DEV, portNumber(1), true, an), minF, maxF, grid)) | ||
78 | + // different isEnabled | ||
79 | + .addEqualityGroup(new DefaultOmsPort(new DefaultPort(DEV, pn, false, an), minF, maxF, grid)) | ||
80 | + // different annotation | ||
81 | + .addEqualityGroup(new DefaultOmsPort(new DefaultPort(DEV, pn, true, an2), minF, maxF, grid)) | ||
82 | + // different minFreq | ||
83 | + .addEqualityGroup(new DefaultOmsPort(base, Frequency.ofKHz(3), maxF, grid)) | ||
84 | + // different maxFreq | ||
85 | + .addEqualityGroup(new DefaultOmsPort(base, minF, Frequency.ofKHz(33), grid)) | ||
86 | + // different grid | ||
87 | + .addEqualityGroup(new DefaultOmsPort(base, minF, maxF, Frequency.ofKHz(2))) | ||
88 | + .testEquals(); | ||
89 | + | ||
90 | + } | ||
91 | + | ||
92 | + @Test | ||
93 | + public void basicTests() { | ||
94 | + PortNumber pn = PortNumber.portNumber(4900); | ||
95 | + Annotations annotations = DefaultAnnotations.builder() | ||
96 | + .set("Base", "value") | ||
97 | + .build(); | ||
98 | + | ||
99 | + boolean isEnabled = true; | ||
100 | + Port base = new DefaultPort(DEV, pn, isEnabled, Port.Type.VIRTUAL, 2, annotations); | ||
101 | + Frequency minFrequency = Frequency.ofGHz(3); | ||
102 | + Frequency maxFrequency = Frequency.ofGHz(33); | ||
103 | + Frequency grid = Frequency.ofGHz(2); | ||
104 | + OmsPort oms = new DefaultOmsPort(base, minFrequency, maxFrequency, grid); | ||
105 | + | ||
106 | + // basic attributes and annotations are inherited from base | ||
107 | + assertThat(oms.element(), is(DEV)); | ||
108 | + assertThat(oms.isEnabled(), is(isEnabled)); | ||
109 | + assertThat(oms.number(), is(pn)); | ||
110 | + assertThat(oms.annotations(), is(annotations)); | ||
111 | + | ||
112 | + assertThat("type is always OMS", oms.type(), is(Port.Type.OMS)); | ||
113 | + assertThat("port speed is undefined", oms.portSpeed(), is(equalTo(0L))); | ||
114 | + | ||
115 | + assertThat(oms.maxFrequency(), is(maxFrequency)); | ||
116 | + assertThat(oms.minFrequency(), is(minFrequency)); | ||
117 | + assertThat(oms.grid(), is(grid)); | ||
118 | + assertThat("(33-3)/2 = 15", oms.totalChannels(), is((short) 15)); | ||
119 | + } | ||
120 | + | ||
121 | +} |
... | @@ -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.onosproject.net.optical.device.OchPortHelper.ochPortDescription; | 18 | import static org.onosproject.net.optical.device.OchPortHelper.ochPortDescription; |
19 | +import static org.onosproject.net.optical.device.OmsPortHelper.omsPortDescription; | ||
19 | import static org.slf4j.LoggerFactory.getLogger; | 20 | import static org.slf4j.LoggerFactory.getLogger; |
20 | import static com.google.common.base.Preconditions.checkNotNull; | 21 | import static com.google.common.base.Preconditions.checkNotNull; |
21 | 22 | ||
... | @@ -25,7 +26,6 @@ import org.onosproject.net.AnnotationKeys; | ... | @@ -25,7 +26,6 @@ import org.onosproject.net.AnnotationKeys; |
25 | import org.onosproject.net.DefaultAnnotations; | 26 | import org.onosproject.net.DefaultAnnotations; |
26 | import org.onosproject.net.OtuPort; | 27 | import org.onosproject.net.OtuPort; |
27 | import org.onosproject.net.OduCltPort; | 28 | import org.onosproject.net.OduCltPort; |
28 | -import org.onosproject.net.OmsPort; | ||
29 | import org.onosproject.net.Port; | 29 | import org.onosproject.net.Port; |
30 | import org.onosproject.net.PortNumber; | 30 | import org.onosproject.net.PortNumber; |
31 | import org.onosproject.net.SparseAnnotations; | 31 | import org.onosproject.net.SparseAnnotations; |
... | @@ -36,6 +36,7 @@ import org.onosproject.net.device.OmsPortDescription; | ... | @@ -36,6 +36,7 @@ import org.onosproject.net.device.OmsPortDescription; |
36 | import org.onosproject.net.device.OtuPortDescription; | 36 | import org.onosproject.net.device.OtuPortDescription; |
37 | import org.onosproject.net.device.PortDescription; | 37 | import org.onosproject.net.device.PortDescription; |
38 | import org.onosproject.net.optical.OchPort; | 38 | import org.onosproject.net.optical.OchPort; |
39 | +import org.onosproject.net.optical.OmsPort; | ||
39 | import org.onosproject.net.optical.OpticalDevice; | 40 | import org.onosproject.net.optical.OpticalDevice; |
40 | import org.slf4j.Logger; | 41 | import org.slf4j.Logger; |
41 | 42 | ||
... | @@ -103,9 +104,13 @@ public final class OpticalPortOperator implements ConfigOperator { | ... | @@ -103,9 +104,13 @@ public final class OpticalPortOperator implements ConfigOperator { |
103 | PortNumber port, SparseAnnotations sa, PortDescription descr) { | 104 | PortNumber port, SparseAnnotations sa, PortDescription descr) { |
104 | switch (descr.type()) { | 105 | switch (descr.type()) { |
105 | case OMS: | 106 | case OMS: |
106 | - OmsPortDescription oms = (OmsPortDescription) descr; | 107 | + if (descr instanceof OmsPortDescription) { |
107 | - return new OmsPortDescription(port, oms.isEnabled(), oms.minFrequency(), | 108 | + // TODO This block can go away once deprecation is complete. |
108 | - oms.maxFrequency(), oms.grid(), sa); | 109 | + OmsPortDescription oms = (OmsPortDescription) descr; |
110 | + return omsPortDescription(port, oms.isEnabled(), oms.minFrequency(), | ||
111 | + oms.maxFrequency(), oms.grid(), sa); | ||
112 | + } | ||
113 | + return descr; | ||
109 | case OCH: | 114 | case OCH: |
110 | // We might need to update lambda below with STATIC_LAMBDA. | 115 | // We might need to update lambda below with STATIC_LAMBDA. |
111 | if (descr instanceof OchPortDescription) { | 116 | if (descr instanceof OchPortDescription) { |
... | @@ -185,9 +190,21 @@ public final class OpticalPortOperator implements ConfigOperator { | ... | @@ -185,9 +190,21 @@ public final class OpticalPortOperator implements ConfigOperator { |
185 | final SparseAnnotations an = (SparseAnnotations) port.annotations(); | 190 | final SparseAnnotations an = (SparseAnnotations) port.annotations(); |
186 | switch (port.type()) { | 191 | switch (port.type()) { |
187 | case OMS: | 192 | case OMS: |
188 | - OmsPort oms = (OmsPort) port; | 193 | + if (port instanceof org.onosproject.net.OmsPort) { |
189 | - return new OmsPortDescription(ptn, isup, oms.minFrequency(), | 194 | + // remove if-block once deprecation is complete |
190 | - oms.maxFrequency(), oms.grid(), an); | 195 | + org.onosproject.net.OmsPort oms = (org.onosproject.net.OmsPort) port; |
196 | + return omsPortDescription(ptn, isup, oms.minFrequency(), | ||
197 | + oms.maxFrequency(), oms.grid(), an); | ||
198 | + } | ||
199 | + if (port.element().is(OpticalDevice.class)) { | ||
200 | + OpticalDevice optDevice = port.element().as(OpticalDevice.class); | ||
201 | + if (optDevice.portIs(port, OmsPort.class)) { | ||
202 | + OmsPort oms = optDevice.portAs(port, OmsPort.class).get(); | ||
203 | + return omsPortDescription(ptn, isup, oms.minFrequency(), | ||
204 | + oms.maxFrequency(), oms.grid(), an); | ||
205 | + } | ||
206 | + } | ||
207 | + return new DefaultPortDescription(ptn, isup, port.type(), port.portSpeed(), an); | ||
191 | case OCH: | 208 | case OCH: |
192 | if (port instanceof org.onosproject.net.OchPort) { | 209 | if (port instanceof org.onosproject.net.OchPort) { |
193 | // remove if-block once old OchPort deprecation is complete | 210 | // remove if-block once old OchPort deprecation is complete | ... | ... |
... | @@ -18,6 +18,7 @@ package org.onosproject.store.device.impl; | ... | @@ -18,6 +18,7 @@ package org.onosproject.store.device.impl; |
18 | import static com.google.common.base.Preconditions.checkNotNull; | 18 | import static com.google.common.base.Preconditions.checkNotNull; |
19 | import static org.onosproject.net.DefaultAnnotations.union; | 19 | import static org.onosproject.net.DefaultAnnotations.union; |
20 | import static org.onosproject.net.optical.device.OchPortHelper.ochPortDescription; | 20 | import static org.onosproject.net.optical.device.OchPortHelper.ochPortDescription; |
21 | +import static org.onosproject.net.optical.device.OmsPortHelper.omsPortDescription; | ||
21 | 22 | ||
22 | import java.util.Collections; | 23 | import java.util.Collections; |
23 | import java.util.Map; | 24 | import java.util.Map; |
... | @@ -105,11 +106,21 @@ class DeviceDescriptions { | ... | @@ -105,11 +106,21 @@ class DeviceDescriptions { |
105 | newOne = null; | 106 | newOne = null; |
106 | switch (newDesc.value().type()) { | 107 | switch (newDesc.value().type()) { |
107 | case OMS: | 108 | case OMS: |
108 | - OmsPortDescription omsDesc = (OmsPortDescription) (newDesc.value()); | 109 | + if (newDesc.value() instanceof OmsPortDescription) { |
109 | - newOne = new Timestamped<>( | 110 | + // remove if-block after deprecation is complete |
110 | - new OmsPortDescription( | 111 | + OmsPortDescription omsDesc = (OmsPortDescription) (newDesc.value()); |
111 | - omsDesc, omsDesc.minFrequency(), omsDesc.maxFrequency(), omsDesc.grid(), merged), | 112 | + newOne = new Timestamped<>( |
112 | - newDesc.timestamp()); | 113 | + omsPortDescription(omsDesc, |
114 | + omsDesc.minFrequency(), | ||
115 | + omsDesc.maxFrequency(), | ||
116 | + omsDesc.grid(), merged), | ||
117 | + newDesc.timestamp()); | ||
118 | + } else { | ||
119 | + // same as default case | ||
120 | + newOne = new Timestamped<>( | ||
121 | + new DefaultPortDescription(newDesc.value(), merged), | ||
122 | + newDesc.timestamp()); | ||
123 | + } | ||
113 | break; | 124 | break; |
114 | case OCH: | 125 | case OCH: |
115 | if (newDesc.value() instanceof OchPortDescription) { | 126 | if (newDesc.value() instanceof OchPortDescription) { | ... | ... |
... | @@ -530,9 +530,15 @@ public class ECDeviceStore | ... | @@ -530,9 +530,15 @@ public class ECDeviceStore |
530 | // FIXME this switch need to go away once all ports are done. | 530 | // FIXME this switch need to go away once all ports are done. |
531 | switch (description.type()) { | 531 | switch (description.type()) { |
532 | case OMS: | 532 | case OMS: |
533 | - OmsPortDescription omsDesc = (OmsPortDescription) description; | 533 | + if (description instanceof OmsPortDescription) { |
534 | - return new OmsPort(device, number, isEnabled, omsDesc.minFrequency(), | 534 | + // remove if-block once deprecation is complete |
535 | - omsDesc.maxFrequency(), omsDesc.grid(), annotations); | 535 | + OmsPortDescription omsDesc = (OmsPortDescription) description; |
536 | + return new OmsPort(device, number, isEnabled, omsDesc.minFrequency(), | ||
537 | + omsDesc.maxFrequency(), omsDesc.grid(), annotations); | ||
538 | + } | ||
539 | + // same as default | ||
540 | + return new DefaultPort(device, number, isEnabled, description.type(), | ||
541 | + description.portSpeed(), annotations); | ||
536 | case OCH: | 542 | case OCH: |
537 | if (description instanceof OchPortDescription) { | 543 | if (description instanceof OchPortDescription) { |
538 | // remove if-block once Och deprecation is complete | 544 | // remove if-block once Och deprecation is complete | ... | ... |
... | @@ -1088,9 +1088,15 @@ public class GossipDeviceStore | ... | @@ -1088,9 +1088,15 @@ public class GossipDeviceStore |
1088 | // FIXME this switch need to go away once all ports are done. | 1088 | // FIXME this switch need to go away once all ports are done. |
1089 | switch (description.type()) { | 1089 | switch (description.type()) { |
1090 | case OMS: | 1090 | case OMS: |
1091 | - OmsPortDescription omsDesc = (OmsPortDescription) description; | 1091 | + if (description instanceof OmsPortDescription) { |
1092 | - return new OmsPort(device, number, isEnabled, omsDesc.minFrequency(), | 1092 | + // remove if-block once deprecation is complete |
1093 | - omsDesc.maxFrequency(), omsDesc.grid(), annotations); | 1093 | + OmsPortDescription omsDesc = (OmsPortDescription) description; |
1094 | + return new OmsPort(device, number, isEnabled, omsDesc.minFrequency(), | ||
1095 | + omsDesc.maxFrequency(), omsDesc.grid(), annotations); | ||
1096 | + } | ||
1097 | + // same as default | ||
1098 | + return new DefaultPort(device, number, isEnabled, description.type(), | ||
1099 | + description.portSpeed(), annotations); | ||
1094 | case OCH: | 1100 | case OCH: |
1095 | if (description instanceof OchPortDescription) { | 1101 | if (description instanceof OchPortDescription) { |
1096 | // remove if-block once Och deprecation is complete | 1102 | // remove if-block once Och deprecation is complete | ... | ... |
... | @@ -55,13 +55,6 @@ | ... | @@ -55,13 +55,6 @@ |
55 | <extensions>true</extensions> | 55 | <extensions>true</extensions> |
56 | <configuration> | 56 | <configuration> |
57 | <niceManifest>true</niceManifest> | 57 | <niceManifest>true</niceManifest> |
58 | - <instructions> | ||
59 | - <!-- TODO this can be removed once optical package | ||
60 | - has been separated out from the default drivers --> | ||
61 | - <Import-Package> | ||
62 | - *,org.onosproject.net.optical.device | ||
63 | - </Import-Package> | ||
64 | - </instructions> | ||
65 | </configuration> | 58 | </configuration> |
66 | </plugin> | 59 | </plugin> |
67 | </plugins> | 60 | </plugins> | ... | ... |
... | @@ -17,12 +17,14 @@ package org.onosproject.driver.query; | ... | @@ -17,12 +17,14 @@ package org.onosproject.driver.query; |
17 | 17 | ||
18 | import org.onosproject.net.ChannelSpacing; | 18 | import org.onosproject.net.ChannelSpacing; |
19 | import org.onosproject.net.OchSignal; | 19 | import org.onosproject.net.OchSignal; |
20 | -import org.onosproject.net.OmsPort; | ||
21 | import org.onosproject.net.Port; | 20 | import org.onosproject.net.Port; |
22 | import org.onosproject.net.PortNumber; | 21 | import org.onosproject.net.PortNumber; |
23 | import org.onosproject.net.behaviour.LambdaQuery; | 22 | import org.onosproject.net.behaviour.LambdaQuery; |
24 | import org.onosproject.net.device.DeviceService; | 23 | import org.onosproject.net.device.DeviceService; |
25 | import org.onosproject.net.driver.AbstractHandlerBehaviour; | 24 | import org.onosproject.net.driver.AbstractHandlerBehaviour; |
25 | +import org.onosproject.net.optical.OmsPort; | ||
26 | + | ||
27 | +import static org.onosproject.net.optical.device.OpticalDeviceServiceView.opticalView; | ||
26 | 28 | ||
27 | import java.util.Collections; | 29 | import java.util.Collections; |
28 | import java.util.Set; | 30 | import java.util.Set; |
... | @@ -46,7 +48,7 @@ public class OFOpticalSwitch13LambdaQuery extends AbstractHandlerBehaviour imple | ... | @@ -46,7 +48,7 @@ public class OFOpticalSwitch13LambdaQuery extends AbstractHandlerBehaviour imple |
46 | 48 | ||
47 | @Override | 49 | @Override |
48 | public Set<OchSignal> queryLambdas(PortNumber port) { | 50 | public Set<OchSignal> queryLambdas(PortNumber port) { |
49 | - DeviceService deviceService = this.handler().get(DeviceService.class); | 51 | + DeviceService deviceService = opticalView(this.handler().get(DeviceService.class)); |
50 | Port p = deviceService.getPort(this.data().deviceId(), port); | 52 | Port p = deviceService.getPort(this.data().deviceId(), port); |
51 | 53 | ||
52 | // Only OMS ports expose lambda resources | 54 | // Only OMS ports expose lambda resources | ... | ... |
... | @@ -18,6 +18,8 @@ package org.onosproject.drivers.lumentum; | ... | @@ -18,6 +18,8 @@ package org.onosproject.drivers.lumentum; |
18 | 18 | ||
19 | import org.apache.felix.scr.annotations.Component; | 19 | import org.apache.felix.scr.annotations.Component; |
20 | import org.onosproject.net.driver.AbstractDriverLoader; | 20 | import org.onosproject.net.driver.AbstractDriverLoader; |
21 | +import org.onosproject.net.optical.OpticalDevice; | ||
22 | +import org.onosproject.net.optical.device.DefaultOpticalDevice; | ||
21 | 23 | ||
22 | /** | 24 | /** |
23 | * Loader for Lumentum device drivers from specific xml. | 25 | * Loader for Lumentum device drivers from specific xml. |
... | @@ -25,6 +27,12 @@ import org.onosproject.net.driver.AbstractDriverLoader; | ... | @@ -25,6 +27,12 @@ import org.onosproject.net.driver.AbstractDriverLoader; |
25 | @Component(immediate = true) | 27 | @Component(immediate = true) |
26 | public class LumentumDriversLoader extends AbstractDriverLoader { | 28 | public class LumentumDriversLoader extends AbstractDriverLoader { |
27 | 29 | ||
30 | + // OSGI: help bundle plugin discover runtime package dependency. | ||
31 | + @SuppressWarnings("unused") | ||
32 | + private OpticalDevice optical; | ||
33 | + @SuppressWarnings("unused") | ||
34 | + private DefaultOpticalDevice driver; | ||
35 | + | ||
28 | public LumentumDriversLoader() { | 36 | public LumentumDriversLoader() { |
29 | super("/lumentum-drivers.xml"); | 37 | super("/lumentum-drivers.xml"); |
30 | } | 38 | } | ... | ... |
... | @@ -27,7 +27,6 @@ import org.onosproject.net.device.DefaultDeviceDescription; | ... | @@ -27,7 +27,6 @@ import org.onosproject.net.device.DefaultDeviceDescription; |
27 | import org.onosproject.net.device.DeviceDescription; | 27 | import org.onosproject.net.device.DeviceDescription; |
28 | import org.onosproject.net.device.DeviceDescriptionDiscovery; | 28 | import org.onosproject.net.device.DeviceDescriptionDiscovery; |
29 | import org.onosproject.net.device.DeviceService; | 29 | import org.onosproject.net.device.DeviceService; |
30 | -import org.onosproject.net.device.OmsPortDescription; | ||
31 | import org.onosproject.net.device.PortDescription; | 30 | import org.onosproject.net.device.PortDescription; |
32 | import org.onosproject.net.driver.AbstractHandlerBehaviour; | 31 | import org.onosproject.net.driver.AbstractHandlerBehaviour; |
33 | import org.slf4j.Logger; | 32 | import org.slf4j.Logger; |
... | @@ -40,6 +39,7 @@ import java.util.Collections; | ... | @@ -40,6 +39,7 @@ import java.util.Collections; |
40 | import java.util.List; | 39 | import java.util.List; |
41 | 40 | ||
42 | import static com.google.common.base.Preconditions.checkNotNull; | 41 | import static com.google.common.base.Preconditions.checkNotNull; |
42 | +import static org.onosproject.net.optical.device.OmsPortHelper.omsPortDescription; | ||
43 | import static org.slf4j.LoggerFactory.getLogger; | 43 | import static org.slf4j.LoggerFactory.getLogger; |
44 | 44 | ||
45 | /** | 45 | /** |
... | @@ -97,7 +97,7 @@ public class LumentumRoadmDeviceDescription extends AbstractHandlerBehaviour imp | ... | @@ -97,7 +97,7 @@ public class LumentumRoadmDeviceDescription extends AbstractHandlerBehaviour imp |
97 | SparseAnnotations ann = DefaultAnnotations.builder() | 97 | SparseAnnotations ann = DefaultAnnotations.builder() |
98 | .set(AnnotationKeys.PORT_NAME, portDirection + "-" + portNumber) | 98 | .set(AnnotationKeys.PORT_NAME, portDirection + "-" + portNumber) |
99 | .build(); | 99 | .build(); |
100 | - PortDescription p = new OmsPortDescription( | 100 | + PortDescription p = omsPortDescription( |
101 | PortNumber.portNumber(ports.size() + 1), | 101 | PortNumber.portNumber(ports.size() + 1), |
102 | true, | 102 | true, |
103 | LumentumSnmpDevice.START_CENTER_FREQ, | 103 | LumentumSnmpDevice.START_CENTER_FREQ, |
... | @@ -115,7 +115,7 @@ public class LumentumRoadmDeviceDescription extends AbstractHandlerBehaviour imp | ... | @@ -115,7 +115,7 @@ public class LumentumRoadmDeviceDescription extends AbstractHandlerBehaviour imp |
115 | SparseAnnotations annLineIn = DefaultAnnotations.builder() | 115 | SparseAnnotations annLineIn = DefaultAnnotations.builder() |
116 | .set(AnnotationKeys.PORT_NAME, "LINE IN") | 116 | .set(AnnotationKeys.PORT_NAME, "LINE IN") |
117 | .build(); | 117 | .build(); |
118 | - ports.add(new OmsPortDescription( | 118 | + ports.add(omsPortDescription( |
119 | PortNumber.portNumber(ports.size() + 1), | 119 | PortNumber.portNumber(ports.size() + 1), |
120 | true, | 120 | true, |
121 | LumentumSnmpDevice.START_CENTER_FREQ, | 121 | LumentumSnmpDevice.START_CENTER_FREQ, |
... | @@ -127,7 +127,7 @@ public class LumentumRoadmDeviceDescription extends AbstractHandlerBehaviour imp | ... | @@ -127,7 +127,7 @@ public class LumentumRoadmDeviceDescription extends AbstractHandlerBehaviour imp |
127 | SparseAnnotations annLineOut = DefaultAnnotations.builder() | 127 | SparseAnnotations annLineOut = DefaultAnnotations.builder() |
128 | .set(AnnotationKeys.PORT_NAME, "LINE OUT") | 128 | .set(AnnotationKeys.PORT_NAME, "LINE OUT") |
129 | .build(); | 129 | .build(); |
130 | - ports.add(new OmsPortDescription( | 130 | + ports.add(omsPortDescription( |
131 | PortNumber.portNumber(ports.size() + 1), | 131 | PortNumber.portNumber(ports.size() + 1), |
132 | true, | 132 | true, |
133 | LumentumSnmpDevice.START_CENTER_FREQ, | 133 | LumentumSnmpDevice.START_CENTER_FREQ, | ... | ... |
... | @@ -24,6 +24,8 @@ | ... | @@ -24,6 +24,8 @@ |
24 | impl="org.onosproject.drivers.lumentum.LumentumFlowRuleProgrammable"/> | 24 | impl="org.onosproject.drivers.lumentum.LumentumFlowRuleProgrammable"/> |
25 | <behaviour api="org.onosproject.incubator.net.faultmanagement.alarm.AlarmConsumer" | 25 | <behaviour api="org.onosproject.incubator.net.faultmanagement.alarm.AlarmConsumer" |
26 | impl="org.onosproject.drivers.lumentum.LumentumAlarmConsumer"/> | 26 | impl="org.onosproject.drivers.lumentum.LumentumAlarmConsumer"/> |
27 | + <behaviour api="org.onosproject.net.optical.OpticalDevice" | ||
28 | + impl="org.onosproject.net.optical.device.DefaultOpticalDevice"/> | ||
27 | </driver> | 29 | </driver> |
28 | </drivers> | 30 | </drivers> |
29 | 31 | ... | ... |
... | @@ -22,6 +22,7 @@ import static org.onosproject.net.DeviceId.deviceId; | ... | @@ -22,6 +22,7 @@ import static org.onosproject.net.DeviceId.deviceId; |
22 | import static org.onosproject.net.Port.Type.COPPER; | 22 | import static org.onosproject.net.Port.Type.COPPER; |
23 | import static org.onosproject.net.Port.Type.FIBER; | 23 | import static org.onosproject.net.Port.Type.FIBER; |
24 | import static org.onosproject.net.optical.device.OchPortHelper.ochPortDescription; | 24 | import static org.onosproject.net.optical.device.OchPortHelper.ochPortDescription; |
25 | +import static org.onosproject.net.optical.device.OmsPortHelper.omsPortDescription; | ||
25 | import static org.onosproject.openflow.controller.Dpid.dpid; | 26 | import static org.onosproject.openflow.controller.Dpid.dpid; |
26 | import static org.onosproject.openflow.controller.Dpid.uri; | 27 | import static org.onosproject.openflow.controller.Dpid.uri; |
27 | import static org.slf4j.LoggerFactory.getLogger; | 28 | import static org.slf4j.LoggerFactory.getLogger; |
... | @@ -67,7 +68,6 @@ import org.onosproject.net.device.DeviceProvider; | ... | @@ -67,7 +68,6 @@ import org.onosproject.net.device.DeviceProvider; |
67 | import org.onosproject.net.device.DeviceProviderRegistry; | 68 | import org.onosproject.net.device.DeviceProviderRegistry; |
68 | import org.onosproject.net.device.DeviceProviderService; | 69 | import org.onosproject.net.device.DeviceProviderService; |
69 | import org.onosproject.net.device.OduCltPortDescription; | 70 | import org.onosproject.net.device.OduCltPortDescription; |
70 | -import org.onosproject.net.device.OmsPortDescription; | ||
71 | import org.onosproject.net.device.OtuPortDescription; | 71 | import org.onosproject.net.device.OtuPortDescription; |
72 | import org.onosproject.net.device.PortDescription; | 72 | import org.onosproject.net.device.PortDescription; |
73 | import org.onosproject.net.device.PortStatistics; | 73 | import org.onosproject.net.device.PortStatistics; |
... | @@ -582,7 +582,7 @@ public class OpenFlowDeviceProvider extends AbstractProvider implements DevicePr | ... | @@ -582,7 +582,7 @@ public class OpenFlowDeviceProvider extends AbstractProvider implements DevicePr |
582 | PortDescription portDes = null; | 582 | PortDescription portDes = null; |
583 | switch (sigType) { | 583 | switch (sigType) { |
584 | case OMSN: | 584 | case OMSN: |
585 | - portDes = new OmsPortDescription(portNo, enabled, | 585 | + portDes = omsPortDescription(portNo, enabled, |
586 | FREQ191_7, FREQ191_7.add(FREQ4_4), FREQ50, annotations); | 586 | FREQ191_7, FREQ191_7.add(FREQ4_4), FREQ50, annotations); |
587 | break; | 587 | break; |
588 | case OCH: | 588 | case OCH: |
... | @@ -703,7 +703,7 @@ public class OpenFlowDeviceProvider extends AbstractProvider implements DevicePr | ... | @@ -703,7 +703,7 @@ public class OpenFlowDeviceProvider extends AbstractProvider implements DevicePr |
703 | case 2: // OMS port | 703 | case 2: // OMS port |
704 | // Assume complete optical spectrum and 50 GHz grid | 704 | // Assume complete optical spectrum and 50 GHz grid |
705 | // LINC-OE is only supported optical OF device for now | 705 | // LINC-OE is only supported optical OF device for now |
706 | - return new OmsPortDescription(portNo, enabled, | 706 | + return omsPortDescription(portNo, enabled, |
707 | Spectrum.U_BAND_MIN, Spectrum.O_BAND_MAX, Frequency.ofGHz(50), annotations); | 707 | Spectrum.U_BAND_MIN, Spectrum.O_BAND_MAX, Frequency.ofGHz(50), annotations); |
708 | case 5: // OCH port | 708 | case 5: // OCH port |
709 | OchSignal signal = new OchSignal(GridType.DWDM, ChannelSpacing.CHL_50GHZ, 0, 4); | 709 | OchSignal signal = new OchSignal(GridType.DWDM, ChannelSpacing.CHL_50GHZ, 0, 4); |
... | @@ -742,7 +742,7 @@ public class OpenFlowDeviceProvider extends AbstractProvider implements DevicePr | ... | @@ -742,7 +742,7 @@ public class OpenFlowDeviceProvider extends AbstractProvider implements DevicePr |
742 | 742 | ||
743 | // S160 data sheet | 743 | // S160 data sheet |
744 | // Wavelength range: 1260 - 1630 nm, grid is irrelevant for this type of switch | 744 | // Wavelength range: 1260 - 1630 nm, grid is irrelevant for this type of switch |
745 | - return new OmsPortDescription(portNo, enabled, | 745 | + return omsPortDescription(portNo, enabled, |
746 | Spectrum.U_BAND_MIN, Spectrum.O_BAND_MAX, Frequency.ofGHz(100), annotations); | 746 | Spectrum.U_BAND_MIN, Spectrum.O_BAND_MAX, Frequency.ofGHz(100), annotations); |
747 | } | 747 | } |
748 | 748 | ... | ... |
... | @@ -41,7 +41,6 @@ import org.onosproject.net.MastershipRole; | ... | @@ -41,7 +41,6 @@ import org.onosproject.net.MastershipRole; |
41 | import org.onosproject.net.OchSignal; | 41 | import org.onosproject.net.OchSignal; |
42 | import org.onosproject.net.OduCltPort; | 42 | import org.onosproject.net.OduCltPort; |
43 | import org.onosproject.net.OduSignalType; | 43 | import org.onosproject.net.OduSignalType; |
44 | -import org.onosproject.net.OmsPort; | ||
45 | import org.onosproject.net.Port; | 44 | import org.onosproject.net.Port; |
46 | import org.onosproject.net.PortNumber; | 45 | import org.onosproject.net.PortNumber; |
47 | import org.onosproject.net.SparseAnnotations; | 46 | import org.onosproject.net.SparseAnnotations; |
... | @@ -55,7 +54,6 @@ import org.onosproject.net.device.DeviceProviderRegistry; | ... | @@ -55,7 +54,6 @@ import org.onosproject.net.device.DeviceProviderRegistry; |
55 | import org.onosproject.net.device.DeviceProviderService; | 54 | import org.onosproject.net.device.DeviceProviderService; |
56 | import org.onosproject.net.device.DeviceService; | 55 | import org.onosproject.net.device.DeviceService; |
57 | import org.onosproject.net.device.OduCltPortDescription; | 56 | import org.onosproject.net.device.OduCltPortDescription; |
58 | -import org.onosproject.net.device.OmsPortDescription; | ||
59 | import org.onosproject.net.device.PortDescription; | 57 | import org.onosproject.net.device.PortDescription; |
60 | import org.onosproject.net.host.DefaultHostDescription; | 58 | import org.onosproject.net.host.DefaultHostDescription; |
61 | import org.onosproject.net.host.HostProvider; | 59 | import org.onosproject.net.host.HostProvider; |
... | @@ -66,6 +64,7 @@ import org.onosproject.net.link.LinkProvider; | ... | @@ -66,6 +64,7 @@ import org.onosproject.net.link.LinkProvider; |
66 | import org.onosproject.net.link.LinkProviderRegistry; | 64 | import org.onosproject.net.link.LinkProviderRegistry; |
67 | import org.onosproject.net.link.LinkProviderService; | 65 | import org.onosproject.net.link.LinkProviderService; |
68 | import org.onosproject.net.optical.OchPort; | 66 | import org.onosproject.net.optical.OchPort; |
67 | +import org.onosproject.net.optical.OmsPort; | ||
69 | import org.onosproject.net.provider.ProviderId; | 68 | import org.onosproject.net.provider.ProviderId; |
70 | import org.slf4j.Logger; | 69 | import org.slf4j.Logger; |
71 | import org.slf4j.LoggerFactory; | 70 | import org.slf4j.LoggerFactory; |
... | @@ -88,6 +87,7 @@ import static org.onosproject.net.PortNumber.portNumber; | ... | @@ -88,6 +87,7 @@ import static org.onosproject.net.PortNumber.portNumber; |
88 | import static org.onosproject.net.device.DeviceEvent.Type.DEVICE_ADDED; | 87 | import static org.onosproject.net.device.DeviceEvent.Type.DEVICE_ADDED; |
89 | import static org.onosproject.net.device.DeviceEvent.Type.DEVICE_AVAILABILITY_CHANGED; | 88 | import static org.onosproject.net.device.DeviceEvent.Type.DEVICE_AVAILABILITY_CHANGED; |
90 | import static org.onosproject.net.optical.device.OchPortHelper.ochPortDescription; | 89 | import static org.onosproject.net.optical.device.OchPortHelper.ochPortDescription; |
90 | +import static org.onosproject.net.optical.device.OmsPortHelper.omsPortDescription; | ||
91 | import static org.onosproject.net.optical.device.OpticalDeviceServiceView.opticalView; | 91 | import static org.onosproject.net.optical.device.OpticalDeviceServiceView.opticalView; |
92 | 92 | ||
93 | /** | 93 | /** |
... | @@ -259,7 +259,7 @@ class ConfigProvider implements DeviceProvider, LinkProvider, HostProvider { | ... | @@ -259,7 +259,7 @@ class ConfigProvider implements DeviceProvider, LinkProvider, HostProvider { |
259 | case FIBER: | 259 | case FIBER: |
260 | // Currently, assume OMS when FIBER. Provide sane defaults. | 260 | // Currently, assume OMS when FIBER. Provide sane defaults. |
261 | annotations = annotations(node.get("annotations")); | 261 | annotations = annotations(node.get("annotations")); |
262 | - return new OmsPortDescription(port, node.path("enabled").asBoolean(true), | 262 | + return omsPortDescription(port, node.path("enabled").asBoolean(true), |
263 | Spectrum.CENTER_FREQUENCY, Spectrum.CENTER_FREQUENCY.add(TOTAL), | 263 | Spectrum.CENTER_FREQUENCY, Spectrum.CENTER_FREQUENCY.add(TOTAL), |
264 | Frequency.ofGHz(100), annotations); | 264 | Frequency.ofGHz(100), annotations); |
265 | case ODUCLT: | 265 | case ODUCLT: |
... | @@ -276,7 +276,7 @@ class ConfigProvider implements DeviceProvider, LinkProvider, HostProvider { | ... | @@ -276,7 +276,7 @@ class ConfigProvider implements DeviceProvider, LinkProvider, HostProvider { |
276 | case OMS: | 276 | case OMS: |
277 | annotations = annotations(node.get("annotations")); | 277 | annotations = annotations(node.get("annotations")); |
278 | OmsPort omsPort = (OmsPort) deviceService.getPort(deviceId, port); | 278 | OmsPort omsPort = (OmsPort) deviceService.getPort(deviceId, port); |
279 | - return new OmsPortDescription(port, node.path("enabled").asBoolean(true), | 279 | + return omsPortDescription(port, node.path("enabled").asBoolean(true), |
280 | omsPort.minFrequency(), omsPort.maxFrequency(), omsPort.grid(), annotations); | 280 | omsPort.minFrequency(), omsPort.maxFrequency(), omsPort.grid(), annotations); |
281 | default: | 281 | default: |
282 | log.warn("{}: Unsupported Port Type"); | 282 | log.warn("{}: Unsupported Port Type"); |
... | @@ -398,8 +398,8 @@ class ConfigProvider implements DeviceProvider, LinkProvider, HostProvider { | ... | @@ -398,8 +398,8 @@ class ConfigProvider implements DeviceProvider, LinkProvider, HostProvider { |
398 | Frequency min = Spectrum.CENTER_FREQUENCY.add(grid); | 398 | Frequency min = Spectrum.CENTER_FREQUENCY.add(grid); |
399 | Frequency max = Spectrum.CENTER_FREQUENCY.add(grid.multiply(numChls)); | 399 | Frequency max = Spectrum.CENTER_FREQUENCY.add(grid.multiply(numChls)); |
400 | 400 | ||
401 | - PortDescription srcPortDesc = new OmsPortDescription(srcCp.port(), true, min, max, grid); | 401 | + PortDescription srcPortDesc = omsPortDescription(srcCp.port(), true, min, max, grid); |
402 | - PortDescription dstPortDesc = new OmsPortDescription(dstCp.port(), true, min, max, grid); | 402 | + PortDescription dstPortDesc = omsPortDescription(dstCp.port(), true, min, max, grid); |
403 | descriptions.put(srcCp, srcPortDesc); | 403 | descriptions.put(srcCp, srcPortDesc); |
404 | descriptions.put(dstCp, dstPortDesc); | 404 | descriptions.put(dstCp, dstPortDesc); |
405 | deviceProviderService.portStatusChanged(srcCp.deviceId(), srcPortDesc); | 405 | deviceProviderService.portStatusChanged(srcCp.deviceId(), srcPortDesc); |
... | @@ -479,7 +479,7 @@ class ConfigProvider implements DeviceProvider, LinkProvider, HostProvider { | ... | @@ -479,7 +479,7 @@ class ConfigProvider implements DeviceProvider, LinkProvider, HostProvider { |
479 | switch (p.type()) { | 479 | switch (p.type()) { |
480 | case OMS: | 480 | case OMS: |
481 | OmsPort op = (OmsPort) p; | 481 | OmsPort op = (OmsPort) p; |
482 | - return new OmsPortDescription( | 482 | + return omsPortDescription( |
483 | op.number(), op.isEnabled(), op.minFrequency(), op.maxFrequency(), op.grid()); | 483 | op.number(), op.isEnabled(), op.minFrequency(), op.maxFrequency(), op.grid()); |
484 | case OCH: | 484 | case OCH: |
485 | OchPort ochp = (OchPort) p; | 485 | OchPort ochp = (OchPort) p; | ... | ... |
-
Please register or login to post a comment