[ONOS-4164] todo removal
Change-Id: Iaed7a5d2960529ecd548897b546a8804bbc9da27
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 497905f..a14e6e1 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
@@ -24,9 +24,12 @@
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.net.DeviceId;
+import org.onosproject.net.intent.constraint.BandwidthConstraint;
import org.onosproject.net.intent.Constraint;
+import org.onosproject.pce.pceservice.constraint.CostConstraint;
import org.onosproject.pce.pceservice.LspType;
import org.onosproject.pce.pceservice.api.PceService;
@@ -71,21 +74,33 @@
DeviceId srcDevice = DeviceId.deviceId(src);
DeviceId dstDevice = DeviceId.deviceId(dst);
- LspType lspType = LspType.values()[type];
List<Constraint> listConstrnt = new LinkedList<>();
- // add cost
- //TODO: need to uncomment below lines once CostConstraint is ready
- //CostConstraint.Type costType = CostConstraint.Type.values()[cost];
- //listConstrnt.add(CostConstraint.of(costType));
+ // LSP type validation
+ if ((type < 0) || (type > 2)) {
+ error("The LSP type value can be PCE tunnel with signalling in network (0), " +
+ "PCE tunnel without signalling in network with segment routing (1), " +
+ "PCE tunnel without signalling in network (2).");
+ return;
+ }
+ LspType lspType = LspType.values()[type];
- // add bandwidth
+ // Add bandwidth
// bandwidth default data rate unit is in BPS
if (bandwidth != 0.0) {
- //TODO: need to uncomment below line once BandwidthConstraint is ready
- //listConstrnt.add(LocalBandwidthConstraint.of(bandwidth, DataRateUnit.valueOf("BPS")));
+ listConstrnt.add(BandwidthConstraint.of(bandwidth, DataRateUnit.valueOf("BPS")));
}
+ // Add cost
+ // Cost validation
+ if ((cost < 1) || (cost > 2)) {
+ error("The cost attribute value either IGP cost(1) or TE cost(2).");
+ return;
+ }
+ // Here 'cost - 1' indicates the index of enum
+ CostConstraint.Type costType = CostConstraint.Type.values()[cost - 1];
+ listConstrnt.add(CostConstraint.of(costType));
+
if (!service.setupPath(srcDevice, dstDevice, name, listConstrnt, lspType)) {
error("Path creation failed.");
}
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceUpdatePathCommand.java b/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceUpdatePathCommand.java
index 5ea8686..6ef5fc1 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceUpdatePathCommand.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceUpdatePathCommand.java
@@ -24,8 +24,12 @@
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.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.pceservice.api.PceService;
import org.slf4j.Logger;
@@ -56,23 +60,25 @@
PceService service = get(PceService.class);
List<Constraint> constrntList = new LinkedList<>();
- // Assign cost
- if (cost != 0) {
- //TODO: need to uncomment below lines once CostConstraint is ready
- //CostConstraint.Type costType = CostConstraint.Type.values()[Integer.valueOf(cost)];
- //constrntList.add(CostConstraint.of(costType));
- }
-
// Assign bandwidth. Data rate unit is in Bps.
if (bandwidth != 0.0) {
- //TODO: need to uncomment below line once BandwidthConstraint is ready
- //constrntList.add(LocalBandwidthConstraint.of(Double.valueOf(bandwidth), DataRateUnit.valueOf("BPS")));
+ constrntList.add(BandwidthConstraint.of(Double.valueOf(bandwidth), DataRateUnit.valueOf("BPS")));
}
- //TODO: need to uncomment below lines once updatePath method is added to PceService
- //if (null == service.updatePath(PcePathId.of(id), constrntList)) {
- // error("Path updation failed.");
- // return;
- //}
+ // Assign cost
+ if (cost != 0) {
+ // Cost validation
+ if ((cost < 1) || (cost > 2)) {
+ error("The cost attribute value is either IGP cost(1) or TE cost(2).");
+ return;
+ }
+ CostConstraint.Type costType = CostConstraint.Type.values()[cost - 1];
+ constrntList.add(CostConstraint.of(costType));
+ }
+
+ if (!service.updatePath(TunnelId.valueOf(id), constrntList)) {
+ error("Path updation failed.");
+ return;
+ }
}
}
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 e9d3fec..2724e8a 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
@@ -20,9 +20,12 @@
import java.util.Objects;
+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;
/**
* Implementation of an entity which provides functionalities of pce path.
@@ -43,9 +46,10 @@
* @param id path id
* @param src ingress
* @param dst egress
- * @param lspType lsp type
+ * @param lspType LSP type
* @param name symbolic-path-name
- * @param constrnt pce constraint
+ * @param costConstrnt cost constraint
+ * @param bandwidthConstrnt bandwidth constraint
*/
private DefaultPcePath(TunnelId id, String src, String dst, LspType lspType,
String name, Constraint costConstrnt, Constraint bandwidthConstrnt) {
@@ -210,7 +214,7 @@
@Override
public Builder lspType(String type) {
if (null != type) {
- this.lspType = LspType.values()[Integer.valueOf(type) - 1];
+ this.lspType = LspType.values()[Integer.valueOf(type)];
}
return this;
}
@@ -223,19 +227,14 @@
@Override
public Builder costConstraint(String cost) {
- this.costConstraint = null;
- //TODO: below lines will be uncommented once CostConstraint class is ready
- // this.costConstraint = CostConstraint.of(cost);
- //}
+ this.costConstraint = CostConstraint.of(CostConstraint.Type.values()[Integer.valueOf(cost) - 1]);
return this;
}
@Override
public Builder bandwidthConstraint(String bandwidth) {
- this.bandwidthConstraint = null;
- //TODO: below lines will be uncommented once LocalBandwidthConstraint class is ready
- // this.bandwidthConstraint = LocalBandwidthConstraint.of(bandwidth);
- //}
+ this.bandwidthConstraint = BandwidthConstraint.of(Double.valueOf(bandwidth), DataRateUnit
+ .valueOf("BPS"));
return this;
}
@@ -244,14 +243,24 @@
this.id = TunnelId.valueOf(tunnel.tunnelId().id());
this.source = tunnel.src().toString();
this.destination = tunnel.dst().toString();
- //TODO: need to uncomment below line once LSP_SIG_TYPE is added to AnnotationKeys.
- this.lspType = null; // = LspType.valueOf(tunnel.annotations()
- //.value(AnnotationKeys.LSP_SIG_TYPE));
this.name = tunnel.tunnelName().toString();
- //TODO: uncomment below lines once CostConstraint and LocalBandwidthConstraint classes are ready
- this.costConstraint = null; // = CostConstraint.of(tunnel.path().cost());
- this.bandwidthConstraint = null; // = LocalBandwidthConstraint.of(tunnel.annotations()
- //.value(AnnotationKeys.BANDWIDTH));
+ // LSP type
+ String lspType = tunnel.annotations().value(PcepAnnotationKeys.LSP_SIG_TYPE);
+ if (lspType != null) {
+ this.lspType = LspType.values()[Integer.valueOf(lspType) - 1];
+ }
+ // Cost type
+ String costType = tunnel.annotations().value(PcepAnnotationKeys.COST_TYPE);
+ if (costType != null) {
+ this.costConstraint = CostConstraint.of(CostConstraint.Type.values()[Integer.valueOf(costType) - 1]);
+ }
+ // Bandwidth
+ String bandwidth = tunnel.annotations().value(PcepAnnotationKeys.BANDWIDTH);
+ if (bandwidth != null) {
+ this.bandwidthConstraint = BandwidthConstraint.of(Double.parseDouble(bandwidth),
+ DataRateUnit.valueOf("BPS"));
+ }
+
return this;
}
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 9b90da0..f692a62 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
@@ -34,10 +34,11 @@
import org.onosproject.incubator.net.tunnel.TunnelId;
import org.onosproject.incubator.net.resource.label.LabelResource;
import org.onosproject.incubator.net.resource.label.LabelResourceId;
+import org.onosproject.net.intent.constraint.BandwidthConstraint;
import org.onosproject.net.DeviceId;
-import org.onosproject.net.intent.Constraint;
import org.onosproject.net.Link;
import org.onosproject.net.resource.ResourceConsumer;
+import org.onosproject.pce.pceservice.constraint.CostConstraint;
import org.onosproject.pce.pceservice.TunnelConsumerId;
import org.onosproject.pce.pceservice.LspType;
import org.onosproject.pce.pcestore.api.LspLocalLabelInfo;
@@ -128,10 +129,9 @@
new KryoNamespace.Builder()
.register(KryoNamespaces.API)
.register(PcePathInfo.class,
- //TODO: Instead of Constraint.class need to add actual implemented class
- //TODO: on this interface like CostConstraint.class and
- //TODO: BandwidthConstraint.class. Will be added once it is confirmed.
- Constraint.class,
+ CostConstraint.class,
+ CostConstraint.Type.class,
+ BandwidthConstraint.class,
LspType.class)
.build()))
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/PceccTunnelInfo.java b/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/PceccTunnelInfo.java
index 48f49cd..3186d3a 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/PceccTunnelInfo.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pcestore/PceccTunnelInfo.java
@@ -15,10 +15,10 @@
*/
package org.onosproject.pce.pcestore;
-import java.util.List;
import com.google.common.base.MoreObjects;
import java.util.Objects;
+import java.util.List;
import org.onosproject.net.resource.ResourceConsumer;
import org.onosproject.pce.pcestore.api.LspLocalLabelInfo;
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathCodec.java b/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathCodec.java
index e0149e7..9be32e3 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathCodec.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathCodec.java
@@ -87,7 +87,7 @@
jNode = constraintJNode.get(COST);
if (jNode != null) {
String cost = jNode.asText();
- resultBuilder.bandwidthConstraint(cost);
+ resultBuilder.costConstraint(cost);
}
// retrieve bandwidth
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathWebResource.java b/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathWebResource.java
index abd7c88..a54e0b2 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathWebResource.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathWebResource.java
@@ -53,7 +53,6 @@
/**
* Query and program pce path.
*/
-
@Path("path")
public class PcePathWebResource extends AbstractWebResource {
@@ -124,14 +123,11 @@
LspType lspType = path.lspType();
List<Constraint> listConstrnt = new LinkedList<Constraint>();
- // add cost
- //TODO: need to uncomment below lines once Bandwidth and Cost constraint classes are ready
- //CostConstraint.Type costType = CostConstraint.Type.values()[Integer.valueOf(path.constraint().cost())];
- //listConstrnt.add(CostConstraint.of(costType));
+ // Add bandwidth
+ listConstrnt.add(path.bandwidthConstraint());
- // add bandwidth. Data rate unit is in BPS.
- //listConstrnt.add(LocalBandwidthConstraint.of(Double.valueOf(path.constraint().bandwidth()), DataRateUnit
- // .valueOf("BPS")));
+ // Add cost
+ listConstrnt.add(path.costConstraint());
Boolean issuccess = nullIsNotFound(get(PceService.class)
.setupPath(srcDevice, dstDevice, path.name(), listConstrnt, lspType),
@@ -161,19 +157,15 @@
ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
JsonNode pathNode = jsonTree.get("path");
PcePath path = codec(PcePath.class).decode((ObjectNode) pathNode, this);
- // Assign cost
List<Constraint> constrntList = new LinkedList<Constraint>();
- //TODO: need to uncomment below lines once CostConstraint class is ready
- if (path.costConstraint() != null) {
- //CostConstraint.Type costType = CostConstraint.Type.values()[path.constraint().cost()];
- //constrntList.add(CostConstraint.of(costType));
+ // Assign bandwidth
+ if (path.bandwidthConstraint() != null) {
+ constrntList.add(path.bandwidthConstraint());
}
- // Assign bandwidth. Data rate unit is in BPS.
- if (path.bandwidthConstraint() != null) {
- //TODO: need to uncomment below lines once BandwidthConstraint class is ready
- //constrntList.add(LocalBandwidthConstraint
- // .of(path.constraint().bandwidth(), DataRateUnit.valueOf("BPS")));
+ // Assign cost
+ if (path.costConstraint() != null) {
+ constrntList.add(path.costConstraint());
}
Boolean result = nullIsNotFound(get(PceService.class).updatePath(TunnelId.valueOf(id), constrntList),