Marc De Leenheer
Committed by Gerrit Code Review

Remove reliance on link annotations in optical path provisioner.

Change-Id: Ia45b1ea8bd9e3be88155820d9198cc5f6fa92826
...@@ -343,6 +343,7 @@ public class OpticalPathProvisioner { ...@@ -343,6 +343,7 @@ public class OpticalPathProvisioner {
343 return getIntents(crossConnectPoints); 343 return getIntents(crossConnectPoints);
344 } 344 }
345 345
346 + log.warn("Unable to find multi-layer path.");
346 return Collections.emptyList(); 347 return Collections.emptyList();
347 } 348 }
348 349
...@@ -392,20 +393,41 @@ public class OpticalPathProvisioner { ...@@ -392,20 +393,41 @@ public class OpticalPathProvisioner {
392 } 393 }
393 394
394 /** 395 /**
395 - * Verifies if given link is cross-connect between packet and optical layer. 396 + * Verifies if given device type is in packet layer, i.e., ROADM, OTN or ROADM_OTN device.
397 + *
398 + * @param type device type
399 + * @return true if in packet layer, false otherwise
400 + */
401 + private boolean isPacketLayer(Device.Type type) {
402 + return type == Device.Type.SWITCH || type == Device.Type.ROUTER;
403 + }
404 +
405 + /**
406 + * Verifies if given device type is in packet layer, i.e., switch or router device.
407 + *
408 + * @param type device type
409 + * @return true if in packet layer, false otherwise
410 + */
411 + private boolean isTransportLayer(Device.Type type) {
412 + return type == Device.Type.ROADM || type == Device.Type.OTN || type == Device.Type.ROADM_OTN;
413 + }
414 +
415 + /**
416 + * Verifies if given link forms a cross-connection between packet and optical layer.
396 * 417 *
397 * @param link the link 418 * @param link the link
398 - * @return true if the link is a cross-connect link 419 + * @return true if the link is a cross-connect link, false otherwise
399 */ 420 */
400 - public static boolean isCrossConnectLink(Link link) { 421 + private boolean isCrossConnectLink(Link link) {
401 if (link.type() != Link.Type.OPTICAL) { 422 if (link.type() != Link.Type.OPTICAL) {
402 return false; 423 return false;
403 } 424 }
404 425
405 - checkNotNull(link.annotations()); 426 + Device.Type src = deviceService.getDevice(link.src().deviceId()).type();
406 - checkNotNull(link.annotations().value("optical.type")); 427 + Device.Type dst = deviceService.getDevice(link.dst().deviceId()).type();
407 428
408 - return link.annotations().value("optical.type").equals("cross-connect"); 429 + return src != dst &&
430 + ((isPacketLayer(src) && isTransportLayer(dst)) || (isPacketLayer(dst) && isTransportLayer(src)));
409 } 431 }
410 432
411 } 433 }
......