Revert "[ONOS-5187] Compute path with Explicit path objects"
This reverts commit a32f6da9cea107b5a2c8d95c2566e1f1af1a7cce.
Change-Id: Ic023d701d18f0ae7af2579bc43777714a0e701dc
diff --git a/apps/pce/app/pom.xml b/apps/pce/app/pom.xml
index 83ab7f2..abd61b6 100644
--- a/apps/pce/app/pom.xml
+++ b/apps/pce/app/pom.xml
@@ -105,10 +105,5 @@
<groupId>org.onosproject</groupId>
<artifactId>onos-app-pcep-api</artifactId>
</dependency>
- <dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymock</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
+ </dependencies>
</project>
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceQueryPathCommand.java b/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceQueryPathCommand.java
index 8994f47..09a396e 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceQueryPathCommand.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceQueryPathCommand.java
@@ -24,13 +24,10 @@
import org.onosproject.incubator.net.tunnel.Tunnel;
import org.onosproject.incubator.net.tunnel.TunnelId;
import org.onosproject.net.AnnotationKeys;
-import org.onosproject.pce.pceservice.ExplicitPathInfo;
import org.onosproject.pce.pceservice.api.PceService;
import org.slf4j.Logger;
-import java.util.List;
-
/**
* Supports quering PCE path.
*/
@@ -75,28 +72,17 @@
* @param tunnel pce tunnel
*/
void display(Tunnel tunnel) {
- List<ExplicitPathInfo> explicitPathInfoList = AbstractShellCommand.get(PceService.class)
- .explicitPathInfoList(tunnel.tunnelName().value());
-
- print("\npath-id : %s \n" +
- "source : %s \n" +
- "destination : %s \n" +
- "path-type : %s \n" +
- "symbolic-path-name : %s \n" +
+ print("\npath-id : %s \n" +
+ "source : %s \n" +
+ "destination : %s \n" +
+ "path-type : %s \n" +
+ "symbolic-path-name : %s \n" +
"constraints: \n" +
- " cost : %s \n" +
- " bandwidth : %s",
+ " cost : %s \n" +
+ " bandwidth : %s",
tunnel.tunnelId().id(), tunnel.path().src().deviceId().toString(),
tunnel.path().dst().deviceId().toString(),
tunnel.type().name(), tunnel.tunnelName(), tunnel.annotations().value(COST_TYPE),
tunnel.annotations().value(AnnotationKeys.BANDWIDTH));
- if (explicitPathInfoList != null) {
- for (ExplicitPathInfo e : explicitPathInfoList) {
- print("explicitPathObjects : \n" +
- " type : %s \n" +
- " value : %s ",
- String.valueOf(e.type().type()), e.value().toString());
- }
- }
}
}
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceSetupPathCommand.java b/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceSetupPathCommand.java
index 149b37a..7bd7970 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceSetupPathCommand.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceSetupPathCommand.java
@@ -15,35 +15,27 @@
*/
package org.onosproject.pce.cli;
-import static org.onosproject.net.Link.State.ACTIVE;
-import static org.onosproject.net.Link.Type.DIRECT;
import static org.slf4j.LoggerFactory.getLogger;
import java.util.Collection;
import java.util.List;
import java.util.LinkedList;
-import com.google.common.collect.Lists;
-
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.shell.commands.Option;
+
import org.onlab.util.DataRateUnit;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.incubator.net.tunnel.Tunnel;
import org.onosproject.incubator.net.tunnel.TunnelService;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.DefaultLink;
import org.onosproject.net.DeviceId;
-import org.onosproject.net.NetworkResource;
-import org.onosproject.net.PortNumber;
import org.onosproject.net.intent.constraint.BandwidthConstraint;
import org.onosproject.net.intent.Constraint;
-import org.onosproject.net.provider.ProviderId;
-import org.onosproject.pce.pceservice.ExplicitPathInfo;
import org.onosproject.pce.pceservice.constraint.CostConstraint;
import org.onosproject.pce.pceservice.LspType;
import org.onosproject.pce.pceservice.api.PceService;
+
import org.slf4j.Logger;
/**
@@ -52,16 +44,6 @@
@Command(scope = "onos", name = "pce-setup-path", description = "Supports creating pce path.")
public class PceSetupPathCommand extends AbstractShellCommand {
private final Logger log = getLogger(getClass());
- public static final byte SUBTYPE_DEVICEID = 0;
- public static final byte SUBTYPE_LINK = 1;
- public static final byte SUBTYPE_INDEX = 1;
- public static final byte TYPE_INDEX = 0;
-
- public static final byte DEVICEID_INDEX = 2;
- public static final byte SOURCE_DEVICEID_INDEX = 2;
- public static final byte SOURCE_PORTNO_INDEX = 3;
- public static final byte DESTINATION_DEVICEID_INDEX = 4;
- public static final byte DESTINATION_PORTNO_INDEX = 5;
@Argument(index = 0, name = "src", description = "source device.", required = true, multiValued = false)
String src = null;
@@ -87,15 +69,6 @@
+ "Data rate unit is in BPS.", required = false, multiValued = false)
double bandwidth = 0.0;
- @Option(name = "-e", aliases = "--explicitPathObjects", description = "List of strict and loose hopes",
- required = false, multiValued = true)
- String[] explicitPathInfoStrings;
-
- //explicitPathInfo format : Type/SubType/Value(DeviceId or Link info)
- //If Value is Device : Type/SubType/deviceId
- //If Value is Link : Type/SubType/SourceDeviceId/SourcePortNo/DestinationDeviceId/DestinationPortNo
- List<ExplicitPathInfo> explicitPathInfo = Lists.newLinkedList();
-
@Override
protected void execute() {
log.info("executing pce-setup-path");
@@ -141,50 +114,7 @@
CostConstraint.Type costType = CostConstraint.Type.values()[cost - 1];
listConstrnt.add(CostConstraint.of(costType));
- if (explicitPathInfoStrings != null) {
- for (String str : explicitPathInfoStrings) {
- String[] splitted = str.split("/");
- DeviceId deviceId;
- NetworkResource res = null;
- PortNumber portNo;
- int explicitPathType = Integer.parseInt(splitted[TYPE_INDEX]);
- if ((explicitPathType < 0) || (explicitPathType > 1)) {
- error("Explicit path validation failed");
- return;
- }
-
- //subtype 0 = deviceId, 1 = link
- //subtype is required to store either as deviceId or Link
- if (splitted[DEVICEID_INDEX] != null && Integer.parseInt(splitted[SUBTYPE_INDEX]) == SUBTYPE_DEVICEID) {
- res = DeviceId.deviceId(splitted[DEVICEID_INDEX]);
- } else if (Integer.parseInt(splitted[SUBTYPE_INDEX]) == SUBTYPE_LINK
- && splitted[SOURCE_DEVICEID_INDEX] != null
- && splitted[SOURCE_PORTNO_INDEX] != null
- && splitted[DESTINATION_DEVICEID_INDEX] != null
- && splitted[DESTINATION_PORTNO_INDEX] != null) {
-
- deviceId = DeviceId.deviceId(splitted[SOURCE_DEVICEID_INDEX]);
- portNo = PortNumber.portNumber(splitted[SOURCE_PORTNO_INDEX]);
- ConnectPoint cpSrc = new ConnectPoint(deviceId, portNo);
- deviceId = DeviceId.deviceId(splitted[DESTINATION_DEVICEID_INDEX]);
- portNo = PortNumber.portNumber(splitted[DESTINATION_PORTNO_INDEX]);
- ConnectPoint cpDst = new ConnectPoint(deviceId, portNo);
- res = DefaultLink.builder()
- .providerId(ProviderId.NONE)
- .src(cpSrc)
- .dst(cpDst)
- .type(DIRECT)
- .state(ACTIVE)
- .build();
- } else {
- error("Explicit path validation failed");
- return;
- }
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.values()[explicitPathType], res);
- explicitPathInfo.add(obj);
- }
- }
- if (!service.setupPath(srcDevice, dstDevice, name, listConstrnt, lspType, explicitPathInfo)) {
+ if (!service.setupPath(srcDevice, dstDevice, name, listConstrnt, lspType)) {
error("Path creation failed.");
}
}
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/DefaultPcePath.java b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/DefaultPcePath.java
index bcc12ec..10acd0a 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/DefaultPcePath.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/DefaultPcePath.java
@@ -18,18 +18,14 @@
import static com.google.common.base.MoreObjects.toStringHelper;
-import java.util.Collection;
-import java.util.List;
import java.util.Objects;
-import org.onlab.rest.BaseResource;
import org.onlab.util.DataRateUnit;
import org.onosproject.incubator.net.tunnel.Tunnel;
import org.onosproject.incubator.net.tunnel.TunnelId;
import org.onosproject.net.intent.constraint.BandwidthConstraint;
import org.onosproject.net.intent.Constraint;
import org.onosproject.pce.pceservice.constraint.CostConstraint;
-import org.onosproject.pce.pcestore.api.PceStore;
/**
* Implementation of an entity which provides functionalities of pce path.
@@ -43,7 +39,6 @@
private String name; // symbolic-path-name
private Constraint costConstraint; // cost constraint
private Constraint bandwidthConstraint; // bandwidth constraint
- private Collection<ExplicitPathInfo> explicitPathInfo; //list of explicit path info
/**
* Initializes PCE path attributes.
@@ -55,11 +50,10 @@
* @param name symbolic-path-name
* @param costConstrnt cost constraint
* @param bandwidthConstrnt bandwidth constraint
- * @param explicitPathInfo list of explicit path info
*/
private DefaultPcePath(TunnelId id, String src, String dst, LspType lspType,
- String name, Constraint costConstrnt, Constraint bandwidthConstrnt,
- Collection<ExplicitPathInfo> explicitPathInfo) {
+ String name, Constraint costConstrnt, Constraint bandwidthConstrnt) {
+
this.id = id;
this.source = src;
this.destination = dst;
@@ -67,7 +61,6 @@
this.name = name;
this.costConstraint = costConstrnt;
this.bandwidthConstraint = bandwidthConstrnt;
- this.explicitPathInfo = explicitPathInfo;
}
@Override
@@ -121,11 +114,6 @@
}
@Override
- public Collection<ExplicitPathInfo> explicitPathInfo() {
- return explicitPathInfo;
- }
-
- @Override
public PcePath copy(PcePath path) {
if (null != path.source()) {
this.source = path.source();
@@ -150,8 +138,7 @@
@Override
public int hashCode() {
- return Objects.hash(id, source, destination, lspType, name, costConstraint, bandwidthConstraint,
- explicitPathInfo);
+ return Objects.hash(id, source, destination, lspType, name, costConstraint, bandwidthConstraint);
}
@Override
@@ -167,8 +154,7 @@
&& Objects.equals(lspType, that.lspType)
&& Objects.equals(name, that.name)
&& Objects.equals(costConstraint, that.costConstraint)
- && Objects.equals(bandwidthConstraint, that.bandwidthConstraint)
- && Objects.equals(explicitPathInfo, that.explicitPathInfo);
+ && Objects.equals(bandwidthConstraint, that.bandwidthConstraint);
}
return false;
}
@@ -184,7 +170,6 @@
.add("name", name)
.add("costConstraint", costConstraint)
.add("bandwidthConstraint", bandwidthConstraint)
- .add("explicitPathInfo", explicitPathInfo)
.toString();
}
@@ -200,7 +185,7 @@
/**
* Builder class for pce path.
*/
- public static final class Builder extends BaseResource implements PcePath.Builder {
+ public static final class Builder implements PcePath.Builder {
private TunnelId id;
private String source;
private String destination;
@@ -208,7 +193,6 @@
private String name;
private Constraint costConstraint;
private Constraint bandwidthConstraint;
- private Collection<ExplicitPathInfo> explicitPathInfo;
@Override
public Builder id(String id) {
@@ -256,12 +240,6 @@
}
@Override
- public Builder explicitPathInfo(Collection<ExplicitPathInfo> explicitPathInfo) {
- this.explicitPathInfo = explicitPathInfo;
- return this;
- }
-
- @Override
public Builder of(Tunnel tunnel) {
this.id = TunnelId.valueOf(tunnel.tunnelId().id());
this.source = tunnel.path().src().deviceId().toString();
@@ -286,20 +264,13 @@
DataRateUnit.valueOf("BPS"));
}
- PceStore pceStore = get(PceStore.class);
- List<ExplicitPathInfo> explicitPathInfoList = pceStore
- .getTunnelNameExplicitPathInfoMap(tunnel.tunnelName().value());
- if (explicitPathInfoList != null) {
- this.explicitPathInfo = explicitPathInfoList;
- }
-
return this;
}
@Override
public PcePath build() {
return new DefaultPcePath(id, source, destination, lspType, name,
- costConstraint, bandwidthConstraint, explicitPathInfo);
+ costConstraint, bandwidthConstraint);
}
}
}
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/ExplicitPathInfo.java b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/ExplicitPathInfo.java
deleted file mode 100644
index 52ef270..0000000
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/ExplicitPathInfo.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pce.pceservice;
-
-import org.onosproject.net.NetworkResource;
-
-import com.google.common.annotations.Beta;
-
-import java.util.Objects;
-
-/**
- * Representation of explicit path info consists of contraints (strict / loose) to compute path.
- */
-@Beta
-public final class ExplicitPathInfo {
-
- private final Type type;
-
- //Can be Link or DeviceId
- private final NetworkResource value;
-
- public enum Type {
- /**
- * Signifies that path includes strict node or link.
- */
- STRICT(0),
-
- /**
- * Signifies that path includes loose node or link.
- */
- LOOSE(1);
-
- int value;
-
- /**
- * Assign val with the value as the type.
- *
- * @param val type
- */
- Type(int val) {
- value = val;
- }
-
- /**
- * Returns value of type.
- *
- * @return type
- */
- public byte type() {
- return (byte) value;
- }
- }
-
- /**
- * Creates instance of explicit path object.
- *
- * @param type specifies whether strict or loose node/link
- * @param value specifies deviceId or link
- */
- public ExplicitPathInfo(Type type, NetworkResource value) {
- this.type = type;
- this.value = value;
- }
-
- /**
- * Returns explicit path type.
- *
- * @return explicit path type as strict/loose
- */
- public Type type() {
- return type;
- }
-
- /**
- * Returns deviceId or link.
- *
- * @return deviceId or link
- */
- public NetworkResource value() {
- return value;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(type, value);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj instanceof ExplicitPathInfo) {
- final ExplicitPathInfo other = (ExplicitPathInfo) obj;
- return Objects.equals(this.type, other.type)
- && Objects.equals(this.value, other.value);
- }
- return false;
- }
-}
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PceManager.java b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PceManager.java
index 9267dc2..a4c2aa6 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PceManager.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PceManager.java
@@ -24,7 +24,6 @@
import java.util.List;
import java.util.Optional;
import java.util.Set;
-
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
@@ -49,11 +48,9 @@
import org.onosproject.net.config.NetworkConfigService;
import org.onosproject.net.DefaultAnnotations;
import org.onosproject.net.DefaultAnnotations.Builder;
-import org.onosproject.net.DefaultPath;
import org.onosproject.net.Device;
import org.onosproject.net.DeviceId;
import org.onosproject.net.Link;
-import org.onosproject.net.NetworkResource;
import org.onosproject.net.Path;
import org.onosproject.net.device.DeviceService;
import org.onosproject.net.intent.Constraint;
@@ -89,7 +86,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Sets;
import static org.onosproject.incubator.net.tunnel.Tunnel.State.INIT;
import static org.onosproject.incubator.net.tunnel.Tunnel.State.UNSTABLE;
@@ -234,177 +230,10 @@
return ImmutableSet.of();
}
- //Computes the partial path from partial computed path to specified dst.
- private List<Path> computePartialPath(List<Path> computedPath, DeviceId src, DeviceId dst,
- List<Constraint> constraints) {
- int size = computedPath.size();
- Path path = null;
- DeviceId deviceId = size == 0 ? src :
- computedPath.get(size - 1).dst().deviceId();
-
- Set<Path> tempComputePath = computePath(deviceId, dst, constraints);
- if (tempComputePath.isEmpty()) {
- return null;
- }
-
- //if path validation fails return null
- //Validate computed path to avoid loop in the path
- for (Path p : tempComputePath) {
- if (pathValidation(computedPath, p)) {
- path = p;
- break;
- }
- }
- if (path == null) {
- return null;
- }
-
- //Store the partial path result in a list
- computedPath.add(path);
- return computedPath;
- }
-
- private List<DeviceId> createListOfDeviceIds(List<? extends NetworkResource> list) {
- List<Link> links = new LinkedList<>();
- if (!list.isEmpty() && list.iterator().next() instanceof Path) {
- for (Path path : (List<Path>) list) {
- links.addAll(path.links());
- }
- } else if (!list.isEmpty() && list.iterator().next() instanceof Link) {
- links.addAll((List<Link>) list);
- }
-
- //List of devices for new path computed
- DeviceId source = null;
- DeviceId destination = null;
- List<DeviceId> devList = new LinkedList<>();
-
- for (Link l : links) {
- if (!devList.contains(l.src().deviceId())) {
- devList.add(l.src().deviceId());
- }
- if (!devList.contains(l.dst().deviceId())) {
- devList.add(l.dst().deviceId());
- }
- }
-
- return devList;
- }
-
- //To dectect loops in the path i.e if the partial paths has intersection node avoid it.
- private boolean pathValidation(List<Path> partialPath, Path path) {
-
- //List of devices in new path computed
- List<DeviceId> newPartialPathDevList;
- newPartialPathDevList = createListOfDeviceIds(path.links());
-
- //List of devices in partial computed path
- List<DeviceId> partialComputedPathDevList;
- partialComputedPathDevList = createListOfDeviceIds(partialPath);
-
- for (DeviceId deviceId : newPartialPathDevList) {
- for (DeviceId devId : partialComputedPathDevList) {
- if (!newPartialPathDevList.get(0).equals(deviceId) &&
- !partialComputedPathDevList.get(partialComputedPathDevList.size() - 1).equals(devId)
- && deviceId.equals(devId)) {
- return false;
- }
- }
- }
-
- return true;
- }
-
- //Returns final computed explicit path (list of partial computed paths).
- private List<Path> computeExplicitPath(List<ExplicitPathInfo> explicitPathInfo, DeviceId src, DeviceId dst,
- List<Constraint> constraints) {
- List<Path> finalComputedPath = new LinkedList<>();
- for (ExplicitPathInfo info : explicitPathInfo) {
- /*
- * If explicit path object is LOOSE,
- * 1) If specified as DeviceId (node) :
- * If it is source , compute from source to destination (partial computation not required),
- * otherwise compute from specified source to specified device
- * 2) If specified as Link :
- * Compute partial path from source to link's source , if path exists compute from link's source to dst
- */
- if (info.type().equals(ExplicitPathInfo.Type.LOOSE)) {
- if (info.value() instanceof DeviceId) {
- // If deviceId is source no need to compute
- if (!(info.value()).equals(src)) {
- finalComputedPath = computePartialPath(finalComputedPath, src, (DeviceId) info.value(),
- constraints);
- }
-
- } else if (info.value() instanceof Link) {
- if ((((Link) info.value()).src().deviceId().equals(src))
- || (!finalComputedPath.isEmpty()
- && finalComputedPath.get(finalComputedPath.size() - 1).dst().equals(
- ((Link) info.value()).src().deviceId()))) {
-
- finalComputedPath = computePartialPath(finalComputedPath, src, ((Link) info.value()).dst()
- .deviceId(), constraints);
- } else {
-
- finalComputedPath = computePartialPath(finalComputedPath, src, ((Link) info.value()).src()
- .deviceId(), constraints) != null ? computePartialPath(finalComputedPath, src,
- ((Link) info.value()).dst().deviceId(), constraints) : null;
- }
- }
- /*
- * If explicit path object is STRICT,
- * 1) If specified as DeviceId (node) :
- * Check whether partial computed path has reachable to strict specified node or
- * strict node is the source, if no set path as null else do nothing
- * 2) If specified as Link :
- * Check whether partial computed path has reachable to strict link's src, if yes compute
- * path from strict link's src to link's dst (to include specified link)
- */
- } else if (info.type().equals(ExplicitPathInfo.Type.STRICT)) {
- if (info.value() instanceof DeviceId) {
- if (!(!finalComputedPath.isEmpty() && finalComputedPath.get(finalComputedPath.size() - 1).dst()
- .deviceId().equals(info.value()))
- && !info.value().equals(src)) {
- finalComputedPath = null;
- }
-
- } else if (info.value() instanceof Link) {
-
- finalComputedPath = ((Link) info.value()).src().deviceId().equals(src)
- || !finalComputedPath.isEmpty()
- && finalComputedPath.get(finalComputedPath.size() - 1).dst().deviceId()
- .equals(((Link) info.value()).src().deviceId()) ? computePartialPath(
- finalComputedPath, src, ((Link) info.value()).dst().deviceId(), constraints) : null;
-
- }
- }
- if (finalComputedPath == null) {
- return null;
- }
- }
- // Destination is not reached in Partial computed path then compute till destination
- if (finalComputedPath.isEmpty() || !finalComputedPath.isEmpty()
- && !finalComputedPath.get(finalComputedPath.size() - 1).dst().deviceId().equals(dst)) {
-
- finalComputedPath = computePartialPath(finalComputedPath, src, dst, constraints);
- if (finalComputedPath == null) {
- return null;
- }
- }
-
- return finalComputedPath;
- }
-
- @Override
- public boolean setupPath(DeviceId src, DeviceId dst, String tunnelName, List<Constraint> constraints,
- LspType lspType) {
- return setupPath(src, dst, tunnelName, constraints, lspType, null);
- }
-
//[TODO:] handle requests in queue
@Override
public boolean setupPath(DeviceId src, DeviceId dst, String tunnelName, List<Constraint> constraints,
- LspType lspType, List<ExplicitPathInfo> explicitPathInfo) {
+ LspType lspType) {
checkNotNull(src);
checkNotNull(dst);
checkNotNull(tunnelName);
@@ -416,7 +245,7 @@
if (srcDevice == null || dstDevice == null) {
// Device is not known.
- pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType, explicitPathInfo));
+ pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType));
return false;
}
@@ -426,7 +255,7 @@
if (srcLsrId == null || dstLsrId == null) {
// LSR id is not known.
- pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType, explicitPathInfo));
+ pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType));
return false;
}
@@ -434,7 +263,7 @@
DeviceCapability cfg = netCfgService.getConfig(DeviceId.deviceId(srcLsrId), DeviceCapability.class);
if (cfg == null) {
log.debug("No session to ingress.");
- pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType, explicitPathInfo));
+ pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType));
return false;
}
@@ -470,30 +299,12 @@
constraints = new LinkedList<>();
constraints.add(CapabilityConstraint.of(CapabilityType.valueOf(lspType.name())));
}
- Set<Path> computedPathSet = Sets.newLinkedHashSet();
- if (explicitPathInfo != null && !explicitPathInfo.isEmpty()) {
- List<Path> finalComputedPath = computeExplicitPath(explicitPathInfo, src, dst, constraints);
- if (finalComputedPath == null) {
- return false;
- }
-
- pceStore.tunnelNameExplicitPathInfoMap(tunnelName, explicitPathInfo);
- List<Link> links = new LinkedList<>();
- double totalCost = 0;
- // Add all partial computed paths
- for (Path path : finalComputedPath) {
- links.addAll(path.links());
- totalCost = totalCost + path.cost();
- }
- computedPathSet.add(new DefaultPath(finalComputedPath.iterator().next().providerId(), links, totalCost));
- } else {
- computedPathSet = computePath(src, dst, constraints);
- }
+ Set<Path> computedPathSet = computePath(src, dst, constraints);
// NO-PATH
if (computedPathSet.isEmpty()) {
- pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType, explicitPathInfo));
+ pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType));
return false;
}
@@ -528,15 +339,14 @@
if (bwConstraintValue != 0) {
consumerId = reserveBandwidth(computedPath, bwConstraintValue, null);
if (consumerId == null) {
- pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints,
- lspType, explicitPathInfo));
+ pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType));
return false;
}
}
TunnelId tunnelId = tunnelService.setupTunnel(appId, src, tunnel, computedPath);
if (tunnelId == null) {
- pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType, explicitPathInfo));
+ pceStore.addFailedPathInfo(new PcePathInfo(src, dst, tunnelName, constraints, lspType));
if (consumerId != null) {
resourceService.release(consumerId);
}
@@ -553,7 +363,7 @@
@Override
public boolean updatePath(TunnelId tunnelId, List<Constraint> constraints) {
checkNotNull(tunnelId);
- Set<Path> computedPathSet = Sets.newLinkedHashSet();
+ Set<Path> computedPathSet = null;
Tunnel tunnel = tunnelService.queryTunnel(tunnelId);
if (tunnel == null) {
@@ -631,30 +441,8 @@
constraints.add(costConstraint);
}
- List<ExplicitPathInfo> explicitPathInfo = pceStore
- .getTunnelNameExplicitPathInfoMap(tunnel.tunnelName().value());
- if (explicitPathInfo != null) {
- List<Path> finalComputedPath = computeExplicitPath(explicitPathInfo,
- tunnel.path().src().deviceId(), tunnel.path().dst().deviceId(),
- constraints);
-
- if (finalComputedPath == null) {
- return false;
- }
-
- List<Link> totalLinks = new LinkedList<>();
- double totalCost = 0;
- //Add all partial computed paths
- for (Path path : finalComputedPath) {
- totalLinks.addAll(path.links());
- totalCost = totalCost + path.cost();
- }
- computedPathSet.add(new DefaultPath(finalComputedPath.iterator().next().providerId(),
- totalLinks, totalCost));
- } else {
- computedPathSet = computePath(tunnel.path().src().deviceId(), tunnel.path().dst().deviceId(),
- constraints);
- }
+ computedPathSet = computePath(links.get(0).src().deviceId(), links.get(links.size() - 1).dst().deviceId(),
+ constraints);
// NO-PATH
if (computedPathSet.isEmpty()) {
@@ -848,8 +636,7 @@
// then PCInitiate (Remove)
pceStore.addFailedPathInfo(new PcePathInfo(tunnel.path().src().deviceId(), tunnel
.path().dst().deviceId(), tunnel.tunnelName().value(), constraintList,
- LspType.valueOf(tunnel.annotations().value(LSP_SIG_TYPE)),
- pceStore.getTunnelNameExplicitPathInfoMap(tunnel.tunnelName().value())));
+ LspType.valueOf(tunnel.annotations().value(LSP_SIG_TYPE))));
//Release that tunnel calling PCInitiate
releasePath(tunnel.tunnelId());
}
@@ -1045,9 +832,7 @@
List<Link> links = tunnel.path().links();
pceStore.addFailedPathInfo(new PcePathInfo(links.get(0).src().deviceId(),
links.get(links.size() - 1).dst().deviceId(),
- tunnel.tunnelName().value(), constraints, lspType,
- pceStore.getTunnelNameExplicitPathInfoMap(tunnel
- .tunnelName().value())));
+ tunnel.tunnelName().value(), constraints, lspType));
}
break;
@@ -1076,11 +861,6 @@
}
}
- @Override
- public List<ExplicitPathInfo> explicitPathInfoList(String tunnelName) {
- return pceStore.getTunnelNameExplicitPathInfoMap(tunnelName);
- }
-
//Computes path from tunnel store and also path failed to setup.
private void callForOptimization() {
//Recompute the LSPs which it was delegated [LSPs stored in PCE store (failed paths)]
@@ -1100,7 +880,7 @@
*/
if (mastershipService.isLocalMaster(failedPathInfo.src())) {
if (setupPath(failedPathInfo.src(), failedPathInfo.dst(), failedPathInfo.name(),
- failedPathInfo.constraints(), failedPathInfo.lspType(), failedPathInfo.explicitPathInfo())) {
+ failedPathInfo.constraints(), failedPathInfo.lspType())) {
// If computation is success remove that path
pceStore.removeFailedPathInfo(failedPathInfo);
return true;
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PcePath.java b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PcePath.java
index 19e9ce2..807b233 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PcePath.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PcePath.java
@@ -19,8 +19,7 @@
import org.onosproject.incubator.net.tunnel.Tunnel;
import org.onosproject.incubator.net.tunnel.TunnelId;
import org.onosproject.net.intent.Constraint;
-
-import java.util.Collection;
+import org.onosproject.pce.pceservice.DefaultPcePath.Builder;
/**
* Abstraction of an entity which provides functionalities of pce path.
@@ -98,13 +97,6 @@
Constraint bandwidthConstraint();
/**
- * Returns the list of explicit path objects.
- *
- * @return list of explicit path objects
- */
- Collection<ExplicitPathInfo> explicitPathInfo();
-
- /**
* Copies only non-null or non-zero member variables.
*
* @param id path-id
@@ -182,14 +174,6 @@
Builder of(Tunnel tunnel);
/**
- * Returns the builder object of ExplicitPathInfo.
- *
- * @param explicitPathInfo list of explicit path obj
- * @return builder object of ExplicitPathInfo
- */
- Builder explicitPathInfo(Collection<ExplicitPathInfo> explicitPathInfo);
-
- /**
* Builds object of pce path.
*
* @return object of pce path.
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/api/PceService.java b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/api/PceService.java
index fdfdb73..f2d3622 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/api/PceService.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/api/PceService.java
@@ -19,7 +19,6 @@
import org.onosproject.net.DeviceId;
import org.onosproject.net.intent.Constraint;
-import org.onosproject.pce.pceservice.ExplicitPathInfo;
import org.onosproject.pce.pceservice.LspType;
import org.onosproject.incubator.net.tunnel.Tunnel;
import org.onosproject.incubator.net.tunnel.TunnelId;
@@ -43,20 +42,6 @@
boolean setupPath(DeviceId src, DeviceId dst, String tunnelName, List<Constraint> constraints, LspType lspType);
/**
- * Creates new path based on constraints and LSP type.
- *
- * @param src source device
- * @param dst destination device
- * @param tunnelName name of the tunnel
- * @param constraints list of constraints to be applied on path
- * @param lspType type of path to be setup
- * @param explicitPathInfo list of explicit path info
- * @return false on failure and true on successful path creation
- */
- boolean setupPath(DeviceId src, DeviceId dst, String tunnelName, List<Constraint> constraints, LspType lspType,
- List<ExplicitPathInfo> explicitPathInfo);
-
- /**
* Updates an existing path.
*
* @param tunnelId tunnel identifier
@@ -87,12 +72,4 @@
* @return tunnel if path exists, otherwise null
*/
Tunnel queryPath(TunnelId tunnelId);
-
- /**
- * Returns list of explicit path info.
- *
- * @param tunnelName tunnel name
- * @return list of explicit path info
- */
- List<ExplicitPathInfo> explicitPathInfoList(String tunnelName);
}
\ No newline at end of file
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/DistributedPceStore.java b/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/DistributedPceStore.java
index 78e46f6..9b2941f 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/DistributedPceStore.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/DistributedPceStore.java
@@ -19,7 +19,6 @@
import com.google.common.collect.ImmutableSet;
-import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -34,7 +33,6 @@
import org.onosproject.incubator.net.tunnel.TunnelId;
import org.onosproject.net.intent.constraint.BandwidthConstraint;
import org.onosproject.net.resource.ResourceConsumer;
-import org.onosproject.pce.pceservice.ExplicitPathInfo;
import org.onosproject.pce.pceservice.constraint.CapabilityConstraint;
import org.onosproject.pce.pceservice.constraint.CostConstraint;
import org.onosproject.pce.pceservice.TunnelConsumerId;
@@ -71,9 +69,6 @@
// List of Failed path info
private DistributedSet<PcePathInfo> failedPathSet;
- // Maintains tunnel name mapped to explicit path info
- private ConsistentMap<String, List<ExplicitPathInfo>> tunnelNameExplicitPathInfoMap;
-
private static final Serializer SERIALIZER = Serializer
.using(new KryoNamespace.Builder().register(KryoNamespaces.API)
.register(PcePathInfo.class)
@@ -104,16 +99,6 @@
.build()
.asDistributedSet();
- tunnelNameExplicitPathInfoMap = storageService.<String, List<ExplicitPathInfo>>consistentMapBuilder()
- .withName("onos-pce-explicitpathinfo")
- .withSerializer(Serializer.using(
- new KryoNamespace.Builder()
- .register(KryoNamespaces.API)
- .register(ExplicitPathInfo.class)
- .register(ExplicitPathInfo.Type.class)
- .build()))
- .build();
-
log.info("Started");
}
@@ -196,18 +181,4 @@
}
return true;
}
-
- @Override
- public boolean tunnelNameExplicitPathInfoMap(String tunnelName, List<ExplicitPathInfo> explicitPathInfo) {
- checkNotNull(tunnelName);
- checkNotNull(explicitPathInfo);
- return tunnelNameExplicitPathInfoMap.put(tunnelName, explicitPathInfo) != null ? true : false;
- }
-
- @Override
- public List<ExplicitPathInfo> getTunnelNameExplicitPathInfoMap(String tunnelName) {
- checkNotNull(tunnelName);
- return tunnelNameExplicitPathInfoMap.get(tunnelName).value();
- }
-
}
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/PcePathInfo.java b/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/PcePathInfo.java
index 6497e36..3b7b47e 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/PcePathInfo.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/PcePathInfo.java
@@ -22,7 +22,6 @@
import org.onosproject.net.DeviceId;
import org.onosproject.net.intent.Constraint;
-import org.onosproject.pce.pceservice.ExplicitPathInfo;
import org.onosproject.pce.pceservice.LspType;
/**
@@ -41,8 +40,6 @@
private LspType lspType; // lsp type
- private List<ExplicitPathInfo> explicitPathInfo; //Explicit path info to compute explicit path
-
/**
* Initialization of member variables.
*
@@ -51,20 +48,17 @@
* @param name tunnel name
* @param constraints list of constraints
* @param lspType lsp type
- * @param explicitPathInfo explicit path info
*/
public PcePathInfo(DeviceId src,
DeviceId dst,
String name,
List<Constraint> constraints,
- LspType lspType,
- List<ExplicitPathInfo> explicitPathInfo) {
+ LspType lspType) {
this.src = src;
this.dst = dst;
this.name = name;
this.constraints = constraints;
this.lspType = lspType;
- this.explicitPathInfo = explicitPathInfo;
}
/**
@@ -76,7 +70,6 @@
this.name = null;
this.constraints = null;
this.lspType = null;
- this.explicitPathInfo = null;
}
/**
@@ -169,27 +162,9 @@
this.lspType = lspType;
}
- /**
- * Returns list of explicit path info.
- *
- * @return list of explicit path info
- */
- public List<ExplicitPathInfo> explicitPathInfo() {
- return explicitPathInfo;
- }
-
- /**
- * Sets list of explicit path info.
- *
- * @param explicitPathInfo list of explicit path info
- */
- public void explicitPathInfo(List<ExplicitPathInfo> explicitPathInfo) {
- this.explicitPathInfo = explicitPathInfo;
- }
-
@Override
public int hashCode() {
- return Objects.hash(src, dst, name, constraints, lspType, explicitPathInfo);
+ return Objects.hash(src, dst, name, constraints, lspType);
}
@Override
@@ -203,8 +178,7 @@
Objects.equals(this.dst, other.dst) &&
Objects.equals(this.name, other.name) &&
Objects.equals(this.constraints, other.constraints) &&
- Objects.equals(this.lspType, other.lspType) &&
- Objects.equals(this.explicitPathInfo, other.explicitPathInfo);
+ Objects.equals(this.lspType, other.lspType);
}
return false;
}
@@ -213,12 +187,11 @@
public String toString() {
return MoreObjects.toStringHelper(getClass())
.omitNullValues()
- .add("Source", src)
- .add("Destination", dst)
- .add("Name", name)
- .add("Constraints", constraints)
- .add("explicitPathInfo", explicitPathInfo)
- .add("LspType", lspType)
+ .add("Source", src.toString())
+ .add("Destination", dst.toString())
+ .add("Name", name.toString())
+ .add("Constraints", constraints.toString())
+ .add("LspType", lspType.toString())
.toString();
}
}
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/api/PceStore.java b/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/api/PceStore.java
index 0a7fa94..3fdef15 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/api/PceStore.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/api/PceStore.java
@@ -15,11 +15,8 @@
*/
package org.onosproject.pce.pcestore.api;
-import java.util.List;
-
import org.onosproject.incubator.net.tunnel.TunnelId;
import org.onosproject.net.resource.ResourceConsumer;
-import org.onosproject.pce.pceservice.ExplicitPathInfo;
import org.onosproject.pce.pcestore.PcePathInfo;
import java.util.Map;
@@ -110,21 +107,4 @@
* @return success or failure
*/
boolean removeFailedPathInfo(PcePathInfo failedPathInfo);
-
- /**
- * Adds explicit path info to the map with corresponding tunnel name.
- *
- * @param tunnelName tunnel name as key
- * @param explicitPathInfo list of explicit path objects
- * @return whether it is added to map
- */
- boolean tunnelNameExplicitPathInfoMap(String tunnelName, List<ExplicitPathInfo> explicitPathInfo);
-
- /**
- * Gets explicit path info based on tunnel name.
- *
- * @param tunnelName tunnel name as key
- * @return list of explicit path info
- */
- List<ExplicitPathInfo> getTunnelNameExplicitPathInfoMap(String tunnelName);
}
diff --git a/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/DefaultPcePathTest.java b/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/DefaultPcePathTest.java
index 9040485..455e36a 100644
--- a/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/DefaultPcePathTest.java
+++ b/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/DefaultPcePathTest.java
@@ -16,47 +16,21 @@
package org.onosproject.pce.pceservice;
-import com.google.common.collect.Lists;
-
-import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
-import static org.onosproject.pce.pceservice.PathComputationTest.D2;
-import static org.easymock.EasyMock.createMock;
import com.google.common.testing.EqualsTester;
-
-import org.onlab.osgi.ServiceDirectory;
-import org.onlab.osgi.TestServiceDirectory;
-import org.onlab.rest.BaseResource;
import org.onosproject.incubator.net.tunnel.TunnelId;
import org.onosproject.pce.pceservice.constraint.CostConstraint;
-import org.onosproject.pce.pcestore.api.PceStore;
import org.onosproject.net.intent.constraint.BandwidthConstraint;
-import java.util.List;
-
/**
* Unit tests for DefaultPcePath class.
*/
public class DefaultPcePathTest {
- private PceStore pceStore = createMock(PceStore.class);
-
- @Before
- public void setup() {
-
- ServiceDirectory testDirectory = new TestServiceDirectory()
- .add(PceStore.class, pceStore);
- BaseResource.setServiceDirectory(testDirectory);
- }
-
- @After
- public void tearDownTest() {
- }
/**
* Checks the operation of equals() methods.
*/
@@ -69,9 +43,7 @@
final String dst1 = "bee";
final String type1 = "1";
final String name1 = "pcc";
- final List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, D2.deviceId());
- explicitPathInfoList.add(obj);
+
PcePath path1 = DefaultPcePath.builder()
.source(src1)
.destination(dst1)
@@ -79,7 +51,6 @@
.name(name1)
.costConstraint(cost1)
.bandwidthConstraint(bandwidth1)
- .explicitPathInfo(explicitPathInfoList)
.build();
path1.id(TunnelId.valueOf("1"));
@@ -91,7 +62,6 @@
.name(name1)
.costConstraint(cost1)
.bandwidthConstraint(bandwidth1)
- .explicitPathInfo(explicitPathInfoList)
.build();
samePath1.id(TunnelId.valueOf("1"));
@@ -110,7 +80,6 @@
.name(name2)
.costConstraint(cost2)
.bandwidthConstraint(bandwidth2)
- .explicitPathInfo(explicitPathInfoList)
.build();
path2.id(TunnelId.valueOf("2"));
@@ -128,9 +97,7 @@
final String dst = "deccan";
final String type = "2";
final String name = "pcc4";
- final List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, D2.deviceId());
- explicitPathInfoList.add(obj);
+
PcePath path = DefaultPcePath.builder()
.source(src)
.destination(dst)
@@ -138,7 +105,6 @@
.name(name)
.costConstraint(cost)
.bandwidthConstraint(bandwidth)
- .explicitPathInfo(explicitPathInfoList)
.build();
assertThat(path.source(), is(src));
diff --git a/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/PceManagerTest.java b/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/PceManagerTest.java
index d71c2c5..fa52fa0 100644
--- a/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/PceManagerTest.java
+++ b/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/PceManagerTest.java
@@ -14,12 +14,10 @@
import static org.onosproject.pce.pceservice.PathComputationTest.D2;
import static org.onosproject.pce.pceservice.PathComputationTest.D3;
import static org.onosproject.pce.pceservice.PathComputationTest.D4;
-import static org.onosproject.pce.pceservice.PathComputationTest.D5;
import static org.onosproject.pce.pceservice.PathComputationTest.DEVICE1;
import static org.onosproject.pce.pceservice.PathComputationTest.DEVICE2;
import static org.onosproject.pce.pceservice.PathComputationTest.DEVICE3;
import static org.onosproject.pce.pceservice.PathComputationTest.DEVICE4;
-import static org.onosproject.pce.pceservice.PathComputationTest.DEVICE5;
import static org.onosproject.pce.pceservice.PcepAnnotationKeys.LOCAL_LSP_ID;
import static org.onosproject.pce.pceservice.PcepAnnotationKeys.PLSP_ID;
import static org.onosproject.pce.pceservice.constraint.CostConstraint.Type.COST;
@@ -34,8 +32,6 @@
import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;
-import com.google.common.collect.Lists;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -124,9 +120,9 @@
private static final String LABEL_STACK_CAPABILITY = "labelStackCapability";
private TopologyGraph graph = null;
- private Device deviceD1, deviceD2, deviceD3, deviceD4, deviceD5;
+ private Device deviceD1, deviceD2, deviceD3, deviceD4;
private Device pcepDeviceD1, pcepDeviceD2, pcepDeviceD3, pcepDeviceD4;
- private Link link1, link2, link3, link4, link5, link6;
+ private Link link1, link2, link3, link4;
protected static int flowsDownloaded;
private TunnelListener tunnelListener;
private TopologyListener listener;
@@ -168,15 +164,12 @@
link2 = PathComputationTest.addLink(DEVICE2, 30, DEVICE4, 40, setCost, 20);
link3 = PathComputationTest.addLink(DEVICE1, 80, DEVICE3, 70, setCost, 100);
link4 = PathComputationTest.addLink(DEVICE3, 60, DEVICE4, 50, setCost, 80);
- link5 = PathComputationTest.addLink(DEVICE2, 60, DEVICE5, 50, setCost, 80);
- link6 = PathComputationTest.addLink(DEVICE4, 60, DEVICE5, 50, setCost, 80);
Set<TopologyVertex> vertexes = new HashSet<TopologyVertex>();
vertexes.add(D1);
vertexes.add(D2);
vertexes.add(D3);
vertexes.add(D4);
- vertexes.add(D5);
this.vertexes = vertexes;
@@ -193,12 +186,6 @@
TopologyEdge edge4 = new DefaultTopologyEdge(D3, D4, link4);
edges.add(edge4);
- TopologyEdge edge5 = new DefaultTopologyEdge(D2, D5, link5);
- edges.add(edge5);
-
- TopologyEdge edge6 = new DefaultTopologyEdge(D4, D5, link6);
- edges.add(edge6);
-
this.edges = edges;
graph = new DefaultTopologyGraph(vertexes, edges);
@@ -207,7 +194,6 @@
DefaultAnnotations.Builder builderDev2 = DefaultAnnotations.builder();
DefaultAnnotations.Builder builderDev3 = DefaultAnnotations.builder();
DefaultAnnotations.Builder builderDev4 = DefaultAnnotations.builder();
- DefaultAnnotations.Builder builderDev5 = DefaultAnnotations.builder();
// Making L3 devices
builderDev1.set(AnnotationKeys.TYPE, L3);
@@ -222,20 +208,15 @@
builderDev4.set(AnnotationKeys.TYPE, L3);
builderDev4.set(LSRID, "4.4.4.4");
- builderDev5.set(AnnotationKeys.TYPE, L3);
- builderDev5.set(LSRID, "5.5.5.5");
-
deviceD1 = new MockDevice(D1.deviceId(), builderDev1.build());
deviceD2 = new MockDevice(D2.deviceId(), builderDev2.build());
deviceD3 = new MockDevice(D3.deviceId(), builderDev3.build());
deviceD4 = new MockDevice(D4.deviceId(), builderDev4.build());
- deviceD5 = new MockDevice(D5.deviceId(), builderDev5.build());
deviceService.addDevice(deviceD1);
deviceService.addDevice(deviceD2);
deviceService.addDevice(deviceD3);
deviceService.addDevice(deviceD4);
- deviceService.addDevice(deviceD5);
DeviceCapability device1Cap = netConfigRegistry.addConfig(DeviceId.deviceId("1.1.1.1"), DeviceCapability.class);
device1Cap.setLabelStackCap(setLabelStackCap)
@@ -261,25 +242,17 @@
.setSrCap(setSrCap)
.apply();
- DeviceCapability device5Cap = netConfigRegistry.addConfig(DeviceId.deviceId("5.5.5.5"), DeviceCapability.class);
- device4Cap.setLabelStackCap(setLabelStackCap)
- .setLocalLabelCap(setPceccCap)
- .setSrCap(setSrCap)
- .apply();
-
if (bandwidth != 0) {
List<Resource> resources = new LinkedList<>();
resources.add(continuous(link1.src().deviceId(), link1.src().port(), Bandwidth.class).resource(bandwidth));
resources.add(continuous(link2.src().deviceId(), link2.src().port(), Bandwidth.class).resource(bandwidth));
resources.add(continuous(link3.src().deviceId(), link3.src().port(), Bandwidth.class).resource(bandwidth));
resources.add(continuous(link4.src().deviceId(), link4.src().port(), Bandwidth.class).resource(bandwidth));
- resources.add(continuous(link5.src().deviceId(), link5.src().port(), Bandwidth.class).resource(bandwidth));
resources.add(continuous(link1.dst().deviceId(), link1.dst().port(), Bandwidth.class).resource(bandwidth));
resources.add(continuous(link2.dst().deviceId(), link2.dst().port(), Bandwidth.class).resource(bandwidth));
resources.add(continuous(link3.dst().deviceId(), link3.dst().port(), Bandwidth.class).resource(bandwidth));
resources.add(continuous(link4.dst().deviceId(), link4.dst().port(), Bandwidth.class).resource(bandwidth));
- resources.add(continuous(link5.dst().deviceId(), link5.dst().port(), Bandwidth.class).resource(bandwidth));
resourceService.allocate(IntentId.valueOf(bandwidth), resources);
}
@@ -295,7 +268,7 @@
CostConstraint costConstraint = new CostConstraint(COST);
constraints.add(costConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
}
@@ -309,7 +282,7 @@
CostConstraint costConstraint = new CostConstraint(COST);
constraints.add(costConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(false));
}
@@ -324,7 +297,7 @@
CostConstraint costConstraint = new CostConstraint(TE_COST);
constraints.add(costConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
}
@@ -339,7 +312,7 @@
CostConstraint costConstraint = new CostConstraint(TE_COST);
constraints.add(costConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(false));
}
@@ -355,7 +328,7 @@
constraints.add(costConstraint);
boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints,
- WITHOUT_SIGNALLING_AND_WITHOUT_SR, null);
+ WITHOUT_SIGNALLING_AND_WITHOUT_SR);
assertThat(result, is(true));
}
@@ -371,7 +344,7 @@
constraints.add(costConstraint);
boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints,
- WITHOUT_SIGNALLING_AND_WITHOUT_SR, null);
+ WITHOUT_SIGNALLING_AND_WITHOUT_SR);
assertThat(result, is(true));
}
@@ -387,7 +360,7 @@
constraints.add(costConstraint);
boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints,
- WITHOUT_SIGNALLING_AND_WITHOUT_SR, null);
+ WITHOUT_SIGNALLING_AND_WITHOUT_SR);
assertThat(result, is(false));
}
@@ -404,8 +377,7 @@
constraints.add(costConstraint);
constraints.add(bwConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints,
- WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(false));
}
@@ -422,8 +394,7 @@
constraints.add(costConstraint);
constraints.add(bwConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(false));
}
@@ -437,8 +408,7 @@
CostConstraint costConstraint = new CostConstraint(TE_COST);
constraints.add(costConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints,
- SR_WITHOUT_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, SR_WITHOUT_SIGNALLING);
assertThat(result, is(false));
}
@@ -455,8 +425,7 @@
constraints.add(costConstraint);
constraints.add(bwConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123",
- constraints, SR_WITHOUT_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, SR_WITHOUT_SIGNALLING);
assertThat(result, is(true));
}
@@ -467,144 +436,11 @@
public void setupPathTest13() {
build4RouterTopo(false, false, false, false, 0);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", null, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", null, WITH_SIGNALLING);
assertThat(result, is(true));
}
/**
- * Tests path setup with explicit path with loose node D2.
- */
- @Test
- public void setupPathTest14() {
- build4RouterTopo(false, false, false, false, 0);
-
- List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, D2.deviceId());
- explicitPathInfoList.add(obj);
-
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", null, WITH_SIGNALLING,
- explicitPathInfoList);
-
- Tunnel tunnel = pceManager.queryAllPath().iterator().next();
- List<Link> links = new LinkedList<>();
- links.add(link1);
- links.add(link2);
-
- assertThat(result, is(true));
- assertThat(tunnel.path().links().equals(links), is(true));
- }
-
- /**
- * Tests path setup with explicit path with loose node D3.
- */
- @Test
- public void setupPathTest15() {
- build4RouterTopo(false, false, false, false, 0);
-
- List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, D3.deviceId());
- explicitPathInfoList.add(obj);
-
- boolean result = pceManager.setupPath(D1.deviceId(), D5.deviceId(), "T123", null, WITH_SIGNALLING,
- explicitPathInfoList);
-
- Tunnel tunnel = pceManager.queryAllPath().iterator().next();
- List<Link> links = new LinkedList<>();
- links.add(link3);
- links.add(link4);
- links.add(link6);
-
- assertThat(result, is(true));
- assertThat(tunnel.path().links().equals(links), is(true));
- }
-
- /**
- * Tests path setup with explicit path with loose node D4 , D3 - path fails.
- */
- @Test
- public void setupPathTest16() {
- build4RouterTopo(false, false, false, false, 0);
-
- List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, D4.deviceId());
- explicitPathInfoList.add(obj);
- obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, D3.deviceId());
- explicitPathInfoList.add(obj);
-
- boolean result = pceManager.setupPath(D1.deviceId(), D5.deviceId(), "T123", null, WITH_SIGNALLING,
- explicitPathInfoList);
-
- assertThat(result, is(false));
- }
-
- /**
- * Tests path setup with explicit path with strict node D2 - without reacble to src - path fails.
- */
- @Test
- public void setupPathTest17() {
- build4RouterTopo(false, false, false, false, 0);
-
- List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.STRICT, D2.deviceId());
- explicitPathInfoList.add(obj);
-
- boolean result = pceManager.setupPath(D1.deviceId(), D5.deviceId(), "T123", null, WITH_SIGNALLING,
- explicitPathInfoList);
-
- assertThat(result, is(false));
- }
-
- /**
- * Tests path setup with explicit path with loose node D2, strict D2.
- */
- @Test
- public void setupPathTest18() {
- build4RouterTopo(false, false, false, false, 0);
-
- List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, D2.deviceId());
- explicitPathInfoList.add(obj);
- obj = new ExplicitPathInfo(ExplicitPathInfo.Type.STRICT, D2.deviceId());
- explicitPathInfoList.add(obj);
-
- boolean result = pceManager.setupPath(D1.deviceId(), D5.deviceId(), "T123", null, WITH_SIGNALLING,
- explicitPathInfoList);
-
- Tunnel tunnel = pceManager.queryAllPath().iterator().next();
- List<Link> links = new LinkedList<>();
- links.add(link1);
- links.add(link5);
-
- assertThat(result, is(true));
- assertThat(tunnel.path().links().equals(links), is(true));
- }
-
- /**
- * Tests path setup with explicit path with loose D1-D2, strict D2.
- */
- @Test
- public void setupPathTest19() {
- build4RouterTopo(false, false, false, false, 0);
-
- List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, link1);
- explicitPathInfoList.add(obj);
- obj = new ExplicitPathInfo(ExplicitPathInfo.Type.STRICT, D2.deviceId());
- explicitPathInfoList.add(obj);
-
- boolean result = pceManager.setupPath(D1.deviceId(), D5.deviceId(), "T123", null, WITH_SIGNALLING,
- explicitPathInfoList);
-
- Tunnel tunnel = pceManager.queryAllPath().iterator().next();
- List<Link> links = new LinkedList<>();
- links.add(link1);
- links.add(link5);
-
- assertThat(result, is(true));
- assertThat(tunnel.path().links().equals(links), is(true));
- }
-
- /**
* Tests path update with increase in bandwidth.
*/
@Test
@@ -618,8 +454,7 @@
CostConstraint costConstraint = new CostConstraint(TE_COST);
constraints.add(costConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
// Change constraint and update it.
@@ -657,8 +492,7 @@
CostConstraint costConstraint = new CostConstraint(TE_COST);
constraints.add(costConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123",
- constraints, SR_WITHOUT_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, SR_WITHOUT_SIGNALLING);
assertThat(result, is(true));
// Change constraint and update it.
@@ -689,8 +523,7 @@
List<Constraint> constraints = new LinkedList<Constraint>();
CostConstraint costConstraint = new CostConstraint(TE_COST);
constraints.add(costConstraint);
- boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
Collection<Tunnel> tunnels = (Collection<Tunnel>) pceManager.queryAllPath();
@@ -706,51 +539,6 @@
}
/**
- * Tests path update without cost/bandwidth constraints and with explicit path object.
- */
- @Test
- public void updatePathTest4() {
- build4RouterTopo(false, true, true, true, 100);
-
- // Setup tunnel.
- List<Constraint> constraints = new LinkedList<>();
- BandwidthConstraint bwConstraint = new BandwidthConstraint(Bandwidth.bps(60.0));
- constraints.add(bwConstraint);
- CostConstraint costConstraint = new CostConstraint(TE_COST);
- constraints.add(costConstraint);
-
- List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, link1);
- explicitPathInfoList.add(obj);
- obj = new ExplicitPathInfo(ExplicitPathInfo.Type.STRICT, D2.deviceId());
- explicitPathInfoList.add(obj);
-
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, explicitPathInfoList);
- assertThat(result, is(true));
-
- // Change constraint and update it.
- constraints = new LinkedList<>();
- bwConstraint = new BandwidthConstraint(Bandwidth.bps(50.0));
- constraints.add(bwConstraint);
- constraints.add(costConstraint);
-
- Collection<Tunnel> tunnels = (Collection<Tunnel>) pceManager.queryAllPath();
- assertThat(tunnels.size(), is(1));
-
- Tunnel tunnel = tunnels.iterator().next();
-
- // Stimulate the effect of LSP ids from protocol msg.
- tunnelService.updateTunnelWithLspIds(tunnel, "123", "1", State.ACTIVE);
-
- result = pceManager.updatePath(tunnel.tunnelId(), constraints);
- assertThat(result, is(true));
-
- tunnels = (Collection<Tunnel>) pceManager.queryAllPath();
- assertThat(tunnels.size(), is(2));
- }
-
- /**
* Tests path release.
*/
@Test
@@ -762,13 +550,7 @@
constraints.add(bwConst);
constraints.add(costConstraint);
- List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, link1);
- explicitPathInfoList.add(obj);
- obj = new ExplicitPathInfo(ExplicitPathInfo.Type.STRICT, D2.deviceId());
- explicitPathInfoList.add(obj);
-
- pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING, explicitPathInfoList);
+ pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING);
Collection<Tunnel> tunnels = (Collection<Tunnel>) pceManager.queryAllPath();
assertThat(tunnels.size(), is(1));
@@ -791,7 +573,7 @@
CostConstraint costConstraint = new CostConstraint(TE_COST);
constraints.add(costConstraint);
- pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING, null);
+ pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING);
Collection<Tunnel> tunnels = (Collection<Tunnel>) pceManager.queryAllPath();
assertThat(tunnels.size(), is(1));
@@ -805,31 +587,6 @@
}
/**
- * Tests path release failure.
- */
- @Test
- public void releasePathTest3() {
- build4RouterTopo(false, false, false, false, 5);
- List<Constraint> constraints = new LinkedList<Constraint>();
- CostConstraint costConstraint = new CostConstraint(TE_COST);
- BandwidthConstraint bwConst = new BandwidthConstraint(Bandwidth.bps(3));
- constraints.add(bwConst);
- constraints.add(costConstraint);
-
- pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T123", constraints, WITH_SIGNALLING, null);
-
- Collection<Tunnel> tunnels = (Collection<Tunnel>) pceManager.queryAllPath();
- assertThat(tunnels.size(), is(1));
- boolean result;
- for (Tunnel tunnel : tunnels) {
- result = pceManager.releasePath(tunnel.tunnelId());
- assertThat(result, is(true));
- }
- tunnels = (Collection<Tunnel>) pceManager.queryAllPath();
- assertThat(tunnels.size(), is(0));
- }
-
- /**
* Tests tunnel events added and removed.
*/
@Test
@@ -842,7 +599,7 @@
constraints.add(costConstraint);
constraints.add(bwConstraint);
- pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T1", constraints, SR_WITHOUT_SIGNALLING, null);
+ pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T1", constraints, SR_WITHOUT_SIGNALLING);
assertThat(pceStore.getTunnelInfoCount(), is(1));
Collection<Tunnel> tunnels = (Collection<Tunnel>) pceManager.queryAllPath();
@@ -873,8 +630,7 @@
constraints.add(costConstraint);
constraints.add(bwConstraint);
- pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T2", constraints,
- WITHOUT_SIGNALLING_AND_WITHOUT_SR, null);
+ pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T2", constraints, WITHOUT_SIGNALLING_AND_WITHOUT_SR);
assertThat(pceStore.getTunnelInfoCount(), is(1));
TunnelEvent event;
@@ -914,8 +670,7 @@
constraints.add(costConstraint);
constraints.add(bwConstraint);
- pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T2", constraints,
- WITHOUT_SIGNALLING_AND_WITHOUT_SR, null);
+ pceManager.setupPath(D1.deviceId(), D2.deviceId(), "T2", constraints, WITHOUT_SIGNALLING_AND_WITHOUT_SR);
assertThat(pceStore.getTunnelInfoCount(), is(1));
assertThat(pceStore.getFailedPathInfoCount(), is(0));
@@ -953,8 +708,7 @@
constraints.add(localBwConst);
//Setup the path , tunnel created
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
assertThat(pceStore.getTunnelInfoCount(), is(1));
assertThat(pceStore.getFailedPathInfoCount(), is(0));
@@ -996,8 +750,7 @@
constraints.add(localBwConst);
//Setup the path , tunnel created
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
List<Event> reasons = new LinkedList<>();
@@ -1035,8 +788,7 @@
constraints.add(localBwConst);
//Setup the path , tunnel created
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
List<Event> reasons = new LinkedList<>();
@@ -1079,8 +831,7 @@
constraints.add(localBwConst);
//Setup the path , tunnel created
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
List<Event> reasons = new LinkedList<>();
@@ -1118,8 +869,7 @@
constraints.add(localBwConst);
//Setup the path , tunnel created
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
List<Event> reasons = new LinkedList<>();
@@ -1167,8 +917,7 @@
constraints.add(localBwConst);
//Setup the path , tunnel created
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
List<Event> reasons = new LinkedList<>();
@@ -1209,8 +958,7 @@
constraints.add(localBwConst);
//Setup the path , tunnel created
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
List<Event> reasons = new LinkedList<>();
@@ -1251,8 +999,7 @@
constraints.add(localBwConst);
//Setup the path , tunnel created
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
List<Event> reasons = new LinkedList<>();
@@ -1298,8 +1045,7 @@
constraints.add(localBwConst);
//Setup the path , tunnel created
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, null);
+ boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123", constraints, WITH_SIGNALLING);
assertThat(result, is(true));
List<Event> reasons = new LinkedList<>();
@@ -1331,54 +1077,6 @@
assertThat(pathService.paths().iterator().next().cost(), is((double) 180));
}
- /**
- * Tests resilency when link2 availability is changed.
- */
- @Test
- public void resilencyTest12() {
- build4RouterTopo(true, false, false, false, 10);
-
- List<Constraint> constraints = new LinkedList<Constraint>();
- CostConstraint costConstraint = new CostConstraint(COST);
- constraints.add(costConstraint);
- BandwidthConstraint localBwConst = new BandwidthConstraint(Bandwidth.bps(10));
- constraints.add(localBwConst);
-
- List<ExplicitPathInfo> explicitPathInfoList = Lists.newLinkedList();
- ExplicitPathInfo obj = new ExplicitPathInfo(ExplicitPathInfo.Type.LOOSE, link1);
- explicitPathInfoList.add(obj);
- obj = new ExplicitPathInfo(ExplicitPathInfo.Type.STRICT, D2.deviceId());
- explicitPathInfoList.add(obj);
-
- //Setup the path , tunnel created
- boolean result = pceManager.setupPath(D1.deviceId(), D4.deviceId(), "T123",
- constraints, WITH_SIGNALLING, explicitPathInfoList);
- assertThat(result, is(true));
- assertThat(pceStore.getTunnelInfoCount(), is(1));
- assertThat(pceStore.getFailedPathInfoCount(), is(0));
-
- List<Event> reasons = new LinkedList<>();
- final LinkEvent linkEvent = new LinkEvent(LinkEvent.Type.LINK_REMOVED, link2);
- reasons.add(linkEvent);
- final TopologyEvent event = new TopologyEvent(
- TopologyEvent.Type.TOPOLOGY_CHANGED,
- topology,
- reasons);
-
- //Change Topology : remove link2
- Set<TopologyEdge> tempEdges = new HashSet<>();
- tempEdges.add(new DefaultTopologyEdge(D2, D4, link2));
- topologyService.changeInTopology(getGraph(null, tempEdges));
- listener.event(event);
-
- List<Link> links = new LinkedList<>();
- links.add(link3);
- links.add(link4);
-
- //Path fails - no alternate path
- assertThat(pathService.paths().iterator().hasNext(), is(false));
- }
-
@After
public void tearDown() {
pceManager.deactivate();
diff --git a/apps/pce/app/src/test/java/org/onosproject/pce/pcestore/DistributedPceStoreTest.java b/apps/pce/app/src/test/java/org/onosproject/pce/pcestore/DistributedPceStoreTest.java
index c7e6ac9..e0916a8 100644
--- a/apps/pce/app/src/test/java/org/onosproject/pce/pcestore/DistributedPceStoreTest.java
+++ b/apps/pce/app/src/test/java/org/onosproject/pce/pcestore/DistributedPceStoreTest.java
@@ -120,7 +120,7 @@
Constraint bandwidth1 = BandwidthConstraint.of(200, DataRateUnit.BPS);
constraints1.add(bandwidth1);
- failedPathInfo1 = new PcePathInfo(src1, dst1, name1, constraints1, lspType1, null);
+ failedPathInfo1 = new PcePathInfo(src1, dst1, name1, constraints1, lspType1);
// Creates failedPathInfo2
DeviceId src2 = DeviceId.deviceId("foo2");
@@ -131,7 +131,7 @@
Constraint bandwidth2 = BandwidthConstraint.of(400, DataRateUnit.BPS);
constraints2.add(bandwidth2);
- failedPathInfo2 = new PcePathInfo(src2, dst2, name2, constraints2, lspType2, null);
+ failedPathInfo2 = new PcePathInfo(src2, dst2, name2, constraints2, lspType2);
// Creates failedPathInfo3
DeviceId src3 = DeviceId.deviceId("foo3");
@@ -142,7 +142,7 @@
Constraint bandwidth3 = BandwidthConstraint.of(500, DataRateUnit.BPS);
constraints3.add(bandwidth3);
- failedPathInfo3 = new PcePathInfo(src3, dst3, name3, constraints3, lspType3, null);
+ failedPathInfo3 = new PcePathInfo(src3, dst3, name3, constraints3, lspType3);
// Creates failedPathInfo4
DeviceId src4 = DeviceId.deviceId("foo4");
@@ -153,7 +153,7 @@
Constraint bandwidth4 = BandwidthConstraint.of(600, DataRateUnit.BPS);
constraints4.add(bandwidth4);
- failedPathInfo4 = new PcePathInfo(src4, dst4, name4, constraints4, lspType4, null);
+ failedPathInfo4 = new PcePathInfo(src4, dst4, name4, constraints4, lspType4);
}
@After
diff --git a/apps/pce/app/src/test/java/org/onosproject/pce/pcestore/PcePathInfoTest.java b/apps/pce/app/src/test/java/org/onosproject/pce/pcestore/PcePathInfoTest.java
index a13c634..09b60ab 100644
--- a/apps/pce/app/src/test/java/org/onosproject/pce/pcestore/PcePathInfoTest.java
+++ b/apps/pce/app/src/test/java/org/onosproject/pce/pcestore/PcePathInfoTest.java
@@ -53,10 +53,10 @@
Constraint bandwidth13 = BandwidthConstraint.of(300, DataRateUnit.BPS);
constraints1.add(bandwidth13);
- PcePathInfo pathInfo1 = new PcePathInfo(src1, dst1, name1, constraints1, lspType1, null);
+ PcePathInfo pathInfo1 = new PcePathInfo(src1, dst1, name1, constraints1, lspType1);
// create same object as above object
- PcePathInfo samePathInfo1 = new PcePathInfo(src1, dst1, name1, constraints1, lspType1, null);
+ PcePathInfo samePathInfo1 = new PcePathInfo(src1, dst1, name1, constraints1, lspType1);
// Create different object.
DeviceId src2 = DeviceId.deviceId("foo2");
@@ -69,7 +69,7 @@
Constraint bandwidth22 = BandwidthConstraint.of(800, DataRateUnit.BPS);
constraints2.add(bandwidth22);
- PcePathInfo pathInfo2 = new PcePathInfo(src2, dst2, name2, constraints2, lspType2, null);
+ PcePathInfo pathInfo2 = new PcePathInfo(src2, dst2, name2, constraints2, lspType2);
new EqualsTester().addEqualityGroup(pathInfo1, samePathInfo1)
.addEqualityGroup(pathInfo2)
@@ -93,7 +93,7 @@
Constraint bandwidth3 = BandwidthConstraint.of(300, DataRateUnit.BPS);
constraints.add(bandwidth3);
- PcePathInfo pathInfo = new PcePathInfo(src, dst, name, constraints, lspType, null);
+ PcePathInfo pathInfo = new PcePathInfo(src, dst, name, constraints, lspType);
assertThat(src, is(pathInfo.src()));
assertThat(dst, is(pathInfo.dst()));
diff --git a/apps/pce/app/src/test/java/org/onosproject/pce/util/PceStoreAdapter.java b/apps/pce/app/src/test/java/org/onosproject/pce/util/PceStoreAdapter.java
index cba8801..80f62a5 100644
--- a/apps/pce/app/src/test/java/org/onosproject/pce/util/PceStoreAdapter.java
+++ b/apps/pce/app/src/test/java/org/onosproject/pce/util/PceStoreAdapter.java
@@ -22,14 +22,13 @@
import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.onosproject.incubator.net.tunnel.TunnelId;
+import org.onosproject.net.DeviceId;
import org.onosproject.net.resource.ResourceConsumer;
-import org.onosproject.pce.pceservice.ExplicitPathInfo;
import org.onosproject.pce.pcestore.PcePathInfo;
import org.onosproject.pce.pcestore.api.PceStore;
@@ -44,8 +43,8 @@
// Set of Path info
private Set<PcePathInfo> failedPathInfoSet = new HashSet<>();
- // Locally maintain with tunnel name as key and corresponding list of explicit path object
- private Map<String, List<ExplicitPathInfo>> tunnelNameExplicitPathInfoMap = new HashMap<>();
+ // Locally maintain LSRID to device id mapping for better performance.
+ private Map<String, DeviceId> lsrIdDeviceIdMap = new HashMap<>();
@Override
public boolean existsTunnelInfo(TunnelId tunnelId) {
@@ -109,15 +108,4 @@
}
return true;
}
-
- @Override
- public boolean tunnelNameExplicitPathInfoMap(String tunnelName, List<ExplicitPathInfo> explicitPathInfo) {
- tunnelNameExplicitPathInfoMap.put(tunnelName, explicitPathInfo);
- return false;
- }
-
- @Override
- public List<ExplicitPathInfo> getTunnelNameExplicitPathInfoMap(String tunnelName) {
- return tunnelNameExplicitPathInfoMap.get(tunnelName);
- }
}
diff --git a/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathCodec.java b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathCodec.java
index 92b9e5e..7692c7d 100644
--- a/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathCodec.java
+++ b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathCodec.java
@@ -16,22 +16,9 @@
package org.onosproject.pcerest;
import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.net.Link.State.ACTIVE;
-import static org.onosproject.net.Link.Type.DIRECT;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
import org.onosproject.codec.CodecContext;
import org.onosproject.codec.JsonCodec;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.DefaultLink;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.NetworkResource;
-import org.onosproject.net.PortNumber;
-import org.onosproject.net.provider.ProviderId;
-import org.onosproject.pce.pceservice.ExplicitPathInfo;
import org.onosproject.pce.pceservice.PcePath;
import org.onosproject.pce.pceservice.DefaultPcePath;
import org.onosproject.net.intent.constraint.BandwidthConstraint;
@@ -42,11 +29,6 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.JsonNode;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-
/**
* PCE path json codec.
*/
@@ -60,13 +42,7 @@
private static final String COST = "cost";
private static final String BANDWIDTH = "bandwidth";
private static final String PATH_ID = "pathId";
- private static final String EXPLICIT_PATH_INFO = "explicitPathInfo";
private static final String MISSING_MEMBER_MESSAGE = " member is required in pce-path";
- public static final String JSON_NOT_NULL = "JsonNode can not be null";
- public static final byte SOURCE_DEVICEID_INDEX = 0;
- public static final byte SOURCE_PORTNO_INDEX = 1;
- public static final byte DESTINATION_DEVICEID_INDEX = 2;
- public static final byte DESTINATION_PORTNO_INDEX = 3;
@Override
public PcePath decode(ObjectNode json, CodecContext context) {
@@ -138,87 +114,9 @@
}
}
- // Retrieve explicit path info
- JsonNode explicitPathInfo = json.get(EXPLICIT_PATH_INFO);
- if (explicitPathInfo != null) {
- List<ExplicitPathInfo> explicitPathInfoList =
- ImmutableList.copyOf(jsonNodeToExplicitPathInfo(explicitPathInfo));
- if (explicitPathInfoList != null) {
- resultBuilder.explicitPathInfo(explicitPathInfoList);
- }
- }
-
return resultBuilder.build();
}
- private ExplicitPathInfo createListOfExplicitPathObj(JsonNode node) {
- int explicitPathType = Integer.parseInt(node.get("type").asText());
- DeviceId deviceId;
- PortNumber portNo;
- NetworkResource res;
- LinkedList<ExplicitPathInfo> list = Lists.newLinkedList();
- if ((explicitPathType < 0) || (explicitPathType > 1)) {
- return null;
- }
- ExplicitPathInfo.Type type = ExplicitPathInfo.Type.values()[explicitPathType];
- String subType = node.get("subtype").asText();
- if (Integer.parseInt(subType) == 0) {
- res = DeviceId.deviceId(node.get("value").asText());
- } else if (Integer.parseInt(subType) == 1) {
-
- String[] splitted = node.get("value").asText().split("/");
-
- if (splitted[SOURCE_DEVICEID_INDEX] != null
- && splitted[SOURCE_PORTNO_INDEX] != null
- && splitted[DESTINATION_DEVICEID_INDEX] != null
- && splitted[DESTINATION_PORTNO_INDEX] != null) {
- return null;
- }
- deviceId = DeviceId.deviceId(splitted[SOURCE_DEVICEID_INDEX]);
- portNo = PortNumber.portNumber(splitted[SOURCE_PORTNO_INDEX]);
- ConnectPoint cpSrc = new ConnectPoint(deviceId, portNo);
- deviceId = DeviceId.deviceId(splitted[DESTINATION_DEVICEID_INDEX]);
- portNo = PortNumber.portNumber(splitted[DESTINATION_PORTNO_INDEX]);
- ConnectPoint cpDst = new ConnectPoint(deviceId, portNo);
- res = DefaultLink.builder()
- .providerId(ProviderId.NONE)
- .src(cpSrc)
- .dst(cpDst)
- .type(DIRECT)
- .state(ACTIVE)
- .build();
- } else {
- return null;
- }
-
- return new ExplicitPathInfo(type, res);
- }
-
- private Collection<ExplicitPathInfo> jsonNodeToExplicitPathInfo(JsonNode explicitPathInfo) {
- checkNotNull(explicitPathInfo, JSON_NOT_NULL);
-
- Integer i = 0;
- NetworkResource res;
- LinkedList<ExplicitPathInfo> list = Lists.newLinkedList();
- if (explicitPathInfo.isArray()) {
- for (JsonNode node : explicitPathInfo) {
- ExplicitPathInfo obj = createListOfExplicitPathObj(node);
- if (obj == null) {
- return null;
- }
- list.add(obj);
- }
- } else {
- ExplicitPathInfo obj = createListOfExplicitPathObj(explicitPathInfo);
- if (obj == null) {
- return null;
- }
- list.add(obj);
- }
-
- return Collections.unmodifiableCollection(list);
- }
-
@Override
public ObjectNode encode(PcePath path, CodecContext context) {
checkNotNull(path, "path output cannot be null");
@@ -235,18 +133,6 @@
.put(COST, ((CostConstraint) path.costConstraint()).type().type())
.put(BANDWIDTH, ((BandwidthConstraint) path.bandwidthConstraint()).bandwidth().bps());
- if (path.explicitPathInfo() != null && !path.explicitPathInfo().isEmpty()) {
- ArrayNode arrayNode = context.mapper().createArrayNode();
- for (ExplicitPathInfo e : path.explicitPathInfo()) {
- ObjectNode node = context.mapper()
- .createObjectNode()
- .put("type", e.type().toString())
- .put("value", e.value().toString());
- arrayNode.add(node);
- }
- result.set(EXPLICIT_PATH_INFO, arrayNode);
- }
-
result.set(CONSTRAINT, constraintNode);
return result;
}
diff --git a/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathWebResource.java b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathWebResource.java
index 1202695..a3cd11e 100644
--- a/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathWebResource.java
+++ b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathWebResource.java
@@ -35,13 +35,11 @@
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import com.google.common.collect.ImmutableList;
import org.onosproject.incubator.net.tunnel.Tunnel;
import org.onosproject.incubator.net.tunnel.TunnelId;
import org.onosproject.incubator.net.tunnel.TunnelService;
import org.onosproject.net.DeviceId;
import org.onosproject.net.intent.Constraint;
-import org.onosproject.pce.pceservice.ExplicitPathInfo;
import org.onosproject.pce.pceservice.api.PceService;
import org.onosproject.pce.pceservice.PcePath;
import org.onosproject.pce.pceservice.DefaultPcePath;
@@ -152,14 +150,8 @@
// Add cost
listConstrnt.add(path.costConstraint());
- List<ExplicitPathInfo> explicitPathInfoList = null;
- if (explicitPathInfoList != null) {
- explicitPathInfoList = ImmutableList.copyOf(path.explicitPathInfo());
- }
-
Boolean issuccess = nullIsNotFound(get(PceService.class)
- .setupPath(srcDevice, dstDevice, path.name(), listConstrnt,
- lspType, explicitPathInfoList),
+ .setupPath(srcDevice, dstDevice, path.name(), listConstrnt, lspType),
PCE_SETUP_PATH_FAILED);
return Response.status(OK).entity(issuccess.toString()).build();
} catch (IOException e) {
diff --git a/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PcePathResourceTest.java b/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PcePathResourceTest.java
index 6c1acaa..862fb14 100644
--- a/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PcePathResourceTest.java
+++ b/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PcePathResourceTest.java
@@ -64,7 +64,6 @@
import org.onosproject.net.Link;
import org.onosproject.pce.pceservice.api.PceService;
import org.onosproject.pce.pceservice.PcepAnnotationKeys;
-import org.onosproject.pce.pcestore.api.PceStore;
import org.onosproject.net.Path;
import org.onosproject.net.PortNumber;
import org.onosproject.net.provider.ProviderId;
@@ -74,7 +73,6 @@
*/
public class PcePathResourceTest extends PceResourceTest {
private final PceService pceService = createMock(PceService.class);
- private final PceStore pceStore = createMock(PceStore.class);
private final TunnelService tunnelService = createMock(TunnelService.class);
private final TunnelEndPoint src = IpTunnelEndPoint.ipTunnelPoint(IpAddress.valueOf(23423));
private final TunnelEndPoint dst = IpTunnelEndPoint.ipTunnelPoint(IpAddress.valueOf(32421));
@@ -104,7 +102,6 @@
MockPceCodecContext context = new MockPceCodecContext();
ServiceDirectory testDirectory = new TestServiceDirectory().add(PceService.class, pceService)
.add(TunnelService.class, tunnelService)
- .add(PceStore.class, pceStore)
.add(CodecService.class, context.codecManager());
BaseResource.setServiceDirectory(testDirectory);
@@ -236,7 +233,7 @@
*/
@Test
public void testPost() {
- expect(pceService.setupPath(anyObject(), anyObject(), anyObject(), anyObject(), anyObject(), anyObject()))
+ expect(pceService.setupPath(anyObject(), anyObject(), anyObject(), anyObject(), anyObject()))
.andReturn(true)
.anyTimes();
replay(pceService);
diff --git a/apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/pcePath.json b/apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/pcePath.json
index a68c4d7..4e6084e 100644
--- a/apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/pcePath.json
+++ b/apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/pcePath.json
@@ -7,10 +7,5 @@
"constraint":
{ "cost":2,
"bandwidth":200.0
- },
- "explicitPathInfo" :
- {"type":1,
- "subtype":0,
- "value":"11.0.0.2"
- }
+ }
}
diff --git a/apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/post-PcePath.json b/apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/post-PcePath.json
index 479e4f1..fcd99e2 100644
--- a/apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/post-PcePath.json
+++ b/apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/post-PcePath.json
@@ -1,15 +1,11 @@
{"path": {"source":"11.0.0.1",
"destination":"11.0.0.2",
- "pathType":"0",
- "name":"rsvp11",
+ "pathType":"2",
+ "name":"pcc2",
+ "description":"path-create",
"constraint":
- {"cost":1,
- "bandwidth":300
- },
- "explicitPathInfo" :
- {"type":1,
- "subtype":0,
- "value":"11.0.0.2"
+ {"cost":2,
+ "bandwidth":200.0
}
}
}
diff --git a/apps/pce/pceweb/src/main/java/org/onosproject/pceweb/PceWebTopovMessageHandler.java b/apps/pce/pceweb/src/main/java/org/onosproject/pceweb/PceWebTopovMessageHandler.java
index 8282d8c..4b848a6 100644
--- a/apps/pce/pceweb/src/main/java/org/onosproject/pceweb/PceWebTopovMessageHandler.java
+++ b/apps/pce/pceweb/src/main/java/org/onosproject/pceweb/PceWebTopovMessageHandler.java
@@ -507,9 +507,7 @@
break;
}
- //TODO: need to get explicit paths [temporarily using null as the value]
- path = pceService.setupPath((DeviceId) src, (DeviceId) dst, tunnelName, listConstrnt, lspTypeVal,
- null);
+ path = pceService.setupPath((DeviceId) src, (DeviceId) dst, tunnelName, listConstrnt, lspTypeVal);
if (!path) {
log.error("setup path is failed");
return;