Committed by
Yuta HIGUCHI
bug fixes and cosmetic changes about OpticalPathProvisioner:
- removeSink() at deactivate - added log messages - wrapped null return value with Optional Change-Id: Ic5361df3cf82f99af315b2551d33bb84aed241ed
Showing
2 changed files
with
24 additions
and
16 deletions
| ... | @@ -31,6 +31,9 @@ import org.onosproject.cluster.ClusterService; | ... | @@ -31,6 +31,9 @@ import org.onosproject.cluster.ClusterService; |
| 31 | import org.onosproject.cluster.NodeId; | 31 | import org.onosproject.cluster.NodeId; |
| 32 | import org.onosproject.core.ApplicationId; | 32 | import org.onosproject.core.ApplicationId; |
| 33 | import org.onosproject.core.CoreService; | 33 | import org.onosproject.core.CoreService; |
| 34 | +import org.onosproject.event.ListenerTracker; | ||
| 35 | +import org.onosproject.net.optical.OchPort; | ||
| 36 | +import org.onosproject.net.optical.OduCltPort; | ||
| 34 | import org.onosproject.newoptical.api.OpticalConnectivityId; | 37 | import org.onosproject.newoptical.api.OpticalConnectivityId; |
| 35 | import org.onosproject.newoptical.api.OpticalPathEvent; | 38 | import org.onosproject.newoptical.api.OpticalPathEvent; |
| 36 | import org.onosproject.newoptical.api.OpticalPathListener; | 39 | import org.onosproject.newoptical.api.OpticalPathListener; |
| ... | @@ -42,8 +45,6 @@ import org.onosproject.net.ConnectPoint; | ... | @@ -42,8 +45,6 @@ import org.onosproject.net.ConnectPoint; |
| 42 | import org.onosproject.net.Device; | 45 | import org.onosproject.net.Device; |
| 43 | import org.onosproject.net.DeviceId; | 46 | import org.onosproject.net.DeviceId; |
| 44 | import org.onosproject.net.Link; | 47 | import org.onosproject.net.Link; |
| 45 | -import org.onosproject.net.OchPort; | ||
| 46 | -import org.onosproject.net.OduCltPort; | ||
| 47 | import org.onosproject.net.OduSignalType; | 48 | import org.onosproject.net.OduSignalType; |
| 48 | import org.onosproject.net.Path; | 49 | import org.onosproject.net.Path; |
| 49 | import org.onosproject.net.Port; | 50 | import org.onosproject.net.Port; |
| ... | @@ -138,8 +139,7 @@ public class OpticalPathProvisioner | ... | @@ -138,8 +139,7 @@ public class OpticalPathProvisioner |
| 138 | 139 | ||
| 139 | private AtomicCounter idCounter; | 140 | private AtomicCounter idCounter; |
| 140 | 141 | ||
| 141 | - private LinkListener linkListener = new InternalLinkListener(); | 142 | + private ListenerTracker listeners; |
| 142 | - private IntentListener intentListener = new InternalIntentListener(); | ||
| 143 | 143 | ||
| 144 | private Map<PacketLinkRealizedByOptical, OpticalConnectivity> linkPathMap = new ConcurrentHashMap<>(); | 144 | private Map<PacketLinkRealizedByOptical, OpticalConnectivity> linkPathMap = new ConcurrentHashMap<>(); |
| 145 | 145 | ||
| ... | @@ -161,16 +161,18 @@ public class OpticalPathProvisioner | ... | @@ -161,16 +161,18 @@ public class OpticalPathProvisioner |
| 161 | .asAtomicCounter(); | 161 | .asAtomicCounter(); |
| 162 | 162 | ||
| 163 | eventDispatcher.addSink(OpticalPathEvent.class, listenerRegistry); | 163 | eventDispatcher.addSink(OpticalPathEvent.class, listenerRegistry); |
| 164 | - linkService.addListener(linkListener); | 164 | + |
| 165 | - intentService.addListener(intentListener); | 165 | + listeners = new ListenerTracker(); |
| 166 | + listeners.addListener(linkService, new InternalLinkListener()) | ||
| 167 | + .addListener(intentService, new InternalIntentListener()); | ||
| 166 | 168 | ||
| 167 | log.info("Started"); | 169 | log.info("Started"); |
| 168 | } | 170 | } |
| 169 | 171 | ||
| 170 | @Deactivate | 172 | @Deactivate |
| 171 | protected void deactivate() { | 173 | protected void deactivate() { |
| 172 | - intentService.removeListener(intentListener); | 174 | + listeners.removeListeners(); |
| 173 | - linkService.removeListener(linkListener); | 175 | + eventDispatcher.removeSink(OpticalPathEvent.class); |
| 174 | 176 | ||
| 175 | log.info("Stopped"); | 177 | log.info("Stopped"); |
| 176 | } | 178 | } |
| ... | @@ -200,6 +202,8 @@ public class OpticalPathProvisioner | ... | @@ -200,6 +202,8 @@ public class OpticalPathProvisioner |
| 200 | } | 202 | } |
| 201 | } | 203 | } |
| 202 | 204 | ||
| 205 | + log.info("setupConnectivity({}, {}, {}, {}) failed.", ingress, egress, bandwidth, latency); | ||
| 206 | + | ||
| 203 | return null; | 207 | return null; |
| 204 | } | 208 | } |
| 205 | 209 | ||
| ... | @@ -212,6 +216,7 @@ public class OpticalPathProvisioner | ... | @@ -212,6 +216,7 @@ public class OpticalPathProvisioner |
| 212 | List<Pair<ConnectPoint, ConnectPoint>> xcPointPairs = getCrossConnectPoints(path); | 216 | List<Pair<ConnectPoint, ConnectPoint>> xcPointPairs = getCrossConnectPoints(path); |
| 213 | if (!checkXcPoints(xcPointPairs)) { | 217 | if (!checkXcPoints(xcPointPairs)) { |
| 214 | // Can't setup path if cross connect points are mismatched | 218 | // Can't setup path if cross connect points are mismatched |
| 219 | + log.error("Failed to setup path because of mismatched cross connect points."); | ||
| 215 | return null; | 220 | return null; |
| 216 | } | 221 | } |
| 217 | 222 | ||
| ... | @@ -261,6 +266,7 @@ public class OpticalPathProvisioner | ... | @@ -261,6 +266,7 @@ public class OpticalPathProvisioner |
| 261 | OpticalConnectivity connectivity = connectivities.remove(id); | 266 | OpticalConnectivity connectivity = connectivities.remove(id); |
| 262 | 267 | ||
| 263 | if (connectivity == null) { | 268 | if (connectivity == null) { |
| 269 | + log.info("OpticalConnectivity with id {} not found.", id); | ||
| 264 | return false; | 270 | return false; |
| 265 | } | 271 | } |
| 266 | 272 | ||
| ... | @@ -274,13 +280,14 @@ public class OpticalPathProvisioner | ... | @@ -274,13 +280,14 @@ public class OpticalPathProvisioner |
| 274 | } | 280 | } |
| 275 | 281 | ||
| 276 | @Override | 282 | @Override |
| 277 | - public List<Link> getPath(OpticalConnectivityId id) { | 283 | + public Optional<List<Link>> getPath(OpticalConnectivityId id) { |
| 278 | OpticalConnectivity connectivity = connectivities.get(id); | 284 | OpticalConnectivity connectivity = connectivities.get(id); |
| 279 | if (connectivity == null) { | 285 | if (connectivity == null) { |
| 280 | - return null; | 286 | + log.info("OpticalConnectivity with id {} not found.", id); |
| 287 | + return Optional.empty(); | ||
| 281 | } | 288 | } |
| 282 | 289 | ||
| 283 | - return ImmutableList.copyOf(connectivity.links()); | 290 | + return Optional.of(ImmutableList.copyOf(connectivity.links())); |
| 284 | } | 291 | } |
| 285 | 292 | ||
| 286 | /** | 293 | /** |
| ... | @@ -337,7 +344,7 @@ public class OpticalPathProvisioner | ... | @@ -337,7 +344,7 @@ public class OpticalPathProvisioner |
| 337 | 344 | ||
| 338 | // Only support connections between identical port types | 345 | // Only support connections between identical port types |
| 339 | if (srcType != dstType) { | 346 | if (srcType != dstType) { |
| 340 | - log.warn("Unsupported mix of cross connect points"); | 347 | + log.warn("Unsupported mix of cross connect points : {}, {}", srcType, dstType); |
| 341 | return false; | 348 | return false; |
| 342 | } | 349 | } |
| 343 | } | 350 | } |
| ... | @@ -516,12 +523,12 @@ public class OpticalPathProvisioner | ... | @@ -516,12 +523,12 @@ public class OpticalPathProvisioner |
| 516 | public double weight(TopologyEdge edge) { | 523 | public double weight(TopologyEdge edge) { |
| 517 | Link l = edge.link(); | 524 | Link l = edge.link(); |
| 518 | 525 | ||
| 519 | - // Ignore inactive links | 526 | + // Avoid inactive links |
| 520 | if (l.state() == Link.State.INACTIVE) { | 527 | if (l.state() == Link.State.INACTIVE) { |
| 521 | return -1.0; | 528 | return -1.0; |
| 522 | } | 529 | } |
| 523 | 530 | ||
| 524 | - // Ignore cross connect links with used ports | 531 | + // Avoid cross connect links with used ports |
| 525 | if (isCrossConnectLink(l) && usedCrossConnectLinks.contains(l)) { | 532 | if (isCrossConnectLink(l) && usedCrossConnectLinks.contains(l)) { |
| 526 | return -1.0; | 533 | return -1.0; |
| 527 | } | 534 | } | ... | ... |
| ... | @@ -24,6 +24,7 @@ import org.onosproject.net.Path; | ... | @@ -24,6 +24,7 @@ import org.onosproject.net.Path; |
| 24 | 24 | ||
| 25 | import java.time.Duration; | 25 | import java.time.Duration; |
| 26 | import java.util.List; | 26 | import java.util.List; |
| 27 | +import java.util.Optional; | ||
| 27 | 28 | ||
| 28 | /** | 29 | /** |
| 29 | * Service to setup optical domain connectivity. | 30 | * Service to setup optical domain connectivity. |
| ... | @@ -64,7 +65,7 @@ public interface OpticalPathService extends ListenerService<OpticalPathEvent, Op | ... | @@ -64,7 +65,7 @@ public interface OpticalPathService extends ListenerService<OpticalPathEvent, Op |
| 64 | /** | 65 | /** |
| 65 | * Returns path assigned to given ID. | 66 | * Returns path assigned to given ID. |
| 66 | * @param id ID of connectivity | 67 | * @param id ID of connectivity |
| 67 | - * @return list of link that compose a path. null if ID is invalid. | 68 | + * @return list of link that compose a path. empty if ID is invalid. |
| 68 | */ | 69 | */ |
| 69 | - List<Link> getPath(OpticalConnectivityId id); | 70 | + Optional<List<Link>> getPath(OpticalConnectivityId id); |
| 70 | } | 71 | } | ... | ... |
-
Please register or login to post a comment