blob: afa00048ca63fcd7a2564df597a8ea46165b14c7 [file] [log] [blame]
weibitf32383b2014-10-22 10:17:31 -07001package org.onlab.onos.net.intent;
2
3import java.util.Collection;
weibitf32383b2014-10-22 10:17:31 -07004
weibit7e583462014-10-23 10:14:05 -07005import org.onlab.onos.ApplicationId;
weibitf32383b2014-10-22 10:17:31 -07006import org.onlab.onos.net.ConnectPoint;
7import org.onlab.onos.net.Link;
8import org.onlab.onos.net.Path;
9import org.onlab.onos.net.flow.TrafficSelector;
10import org.onlab.onos.net.flow.TrafficTreatment;
11
12import com.google.common.base.MoreObjects;
13
weibit7e583462014-10-23 10:14:05 -070014public class OpticalPathIntent extends OpticalConnectivityIntent {
weibitf32383b2014-10-22 10:17:31 -070015 private final Path path;
weibit9e622ac2014-10-23 13:45:44 -070016 // private final TrafficSelector opticalMatch;
17 // private final TrafficTreatment opticalAction;
weibitf32383b2014-10-22 10:17:31 -070018
weibit7e583462014-10-23 10:14:05 -070019 public OpticalPathIntent(ApplicationId appId,
20 ConnectPoint src,
21 ConnectPoint dst,
22 TrafficSelector match,
23 TrafficTreatment action,
24 Path path) {
25 super(appId, src, dst);
weibit9e622ac2014-10-23 13:45:44 -070026 // this.opticalMatch = match;
27 // this.opticalAction = action;
weibitf32383b2014-10-22 10:17:31 -070028 this.path = path;
29 }
30
weibit9e622ac2014-10-23 13:45:44 -070031 protected OpticalPathIntent() {
32 // this.opticalMatch = null;
33 // this.opticalAction = null;
weibitf32383b2014-10-22 10:17:31 -070034 this.path = null;
35 }
36
37 public Path path() {
38 return path;
39 }
weibit9e622ac2014-10-23 13:45:44 -070040/*
weibitf32383b2014-10-22 10:17:31 -070041 public TrafficSelector selector() {
weibit9e622ac2014-10-23 13:45:44 -070042 // return opticalMatch;
weibitf32383b2014-10-22 10:17:31 -070043 }
44
45 public TrafficTreatment treatment() {
weibit9e622ac2014-10-23 13:45:44 -070046 // return opticalAction;
weibitf32383b2014-10-22 10:17:31 -070047 }
weibit9e622ac2014-10-23 13:45:44 -070048*/
weibitf32383b2014-10-22 10:17:31 -070049 @Override
weibit7e583462014-10-23 10:14:05 -070050 public boolean isInstallable() {
weibitf32383b2014-10-22 10:17:31 -070051 return true;
52 }
53
54 @Override
weibitf32383b2014-10-22 10:17:31 -070055 public String toString() {
56 return MoreObjects.toStringHelper(getClass())
57 .add("id", id())
weibit9e622ac2014-10-23 13:45:44 -070058 //.add("match", opticalMatch)
59 //.add("action", opticalAction)
weibitf32383b2014-10-22 10:17:31 -070060 .add("ingressPort", this.getSrcConnectPoint())
61 .add("egressPort", this.getDst())
62 .add("path", path)
63 .toString();
64 }
65
weibitf32383b2014-10-22 10:17:31 -070066 public Collection<Link> requiredLinks() {
67 return path.links();
68 }
69}