Intents: Converted Switch/Port objects to longs for Plan calc
Also, added notification once flows are received and installed
Change-Id: I13f8d9de9dcbf9eff584532e1bf901e78a8dc53f
diff --git a/src/main/java/net/onrc/onos/intent/runtime/PlanCalcRuntime.java b/src/main/java/net/onrc/onos/intent/runtime/PlanCalcRuntime.java
index 63892cb..2e0c563 100644
--- a/src/main/java/net/onrc/onos/intent/runtime/PlanCalcRuntime.java
+++ b/src/main/java/net/onrc/onos/intent/runtime/PlanCalcRuntime.java
@@ -17,11 +17,8 @@
import net.onrc.onos.intent.IntentOperationList;
import net.onrc.onos.intent.PathIntent;
import net.onrc.onos.intent.ShortestPathIntent;
-import net.onrc.onos.ofcontroller.networkgraph.Link;
import net.onrc.onos.ofcontroller.networkgraph.LinkEvent;
-import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
-import net.onrc.onos.ofcontroller.networkgraph.Port;
-import net.onrc.onos.ofcontroller.networkgraph.Switch;
+//import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
/**
*
@@ -31,10 +28,10 @@
public class PlanCalcRuntime {
- NetworkGraph graph;
+// NetworkGraph graph;
- public PlanCalcRuntime(NetworkGraph graph) {
- this.graph = graph;
+ public PlanCalcRuntime(/*NetworkGraph graph*/) {
+// this.graph = graph;
}
public List<Set<FlowEntry>> computePlan(IntentOperationList intentOps) {
@@ -47,16 +44,20 @@
for(IntentOperation i : intentOps) {
PathIntent intent = (PathIntent) i.intent;
Intent parent = intent.getParentIntent();
- Port srcPort, dstPort, lastDstPort = null;
+ long srcPort, dstPort;
+ long lastDstSw = -1, lastDstPort = -1;
MACAddress srcMac, dstMac;
if(parent instanceof ShortestPathIntent) {
ShortestPathIntent pathIntent = (ShortestPathIntent) parent;
- Switch srcSwitch = graph.getSwitch(pathIntent.getSrcSwitchDpid());
- srcPort = srcSwitch.getPort(pathIntent.getSrcPortNumber());
+// Switch srcSwitch = graph.getSwitch(pathIntent.getSrcSwitchDpid());
+// srcPort = srcSwitch.getPort(pathIntent.getSrcPortNumber());
+ srcPort = pathIntent.getSrcPortNumber();
srcMac = MACAddress.valueOf(pathIntent.getSrcMac());
dstMac = MACAddress.valueOf(pathIntent.getDstMac());
- Switch dstSwitch = graph.getSwitch(pathIntent.getDstSwitchDpid());
- lastDstPort = dstSwitch.getPort(pathIntent.getDstPortNumber());
+// Switch dstSwitch = graph.getSwitch(pathIntent.getDstSwitchDpid());
+ lastDstSw = pathIntent.getDstSwitchDpid();
+// lastDstPort = dstSwitch.getPort(pathIntent.getDstPortNumber());
+ lastDstPort = pathIntent.getDstPortNumber();
}
else {
// TODO: log this error
@@ -64,18 +65,22 @@
}
List<FlowEntry> entries = new ArrayList<>();
for(LinkEvent linkEvent : intent.getPath()) {
- Link link = graph.getLink(linkEvent.getSrc().getDpid(),
- linkEvent.getSrc().getNumber(),
- linkEvent.getDst().getDpid(),
- linkEvent.getDst().getNumber());
- Switch sw = link.getSrcSwitch();
- dstPort = link.getSrcPort();
+// Link link = graph.getLink(linkEvent.getSrc().getDpid(),
+// linkEvent.getSrc().getNumber(),
+// linkEvent.getDst().getDpid(),
+// linkEvent.getDst().getNumber());
+// Switch sw = link.getSrcSwitch();
+ long sw = linkEvent.getSrc().getDpid();
+// dstPort = link.getSrcPort();
+ dstPort = linkEvent.getSrc().getNumber();
FlowEntry fe = new FlowEntry(sw, srcPort, dstPort, srcMac, dstMac, i.operator);
entries.add(fe);
- srcPort = link.getDstPort();
+// srcPort = link.getDstPort();
+ srcPort = linkEvent.getDst().getNumber();
}
- if(lastDstPort != null) {
- Switch sw = lastDstPort.getSwitch();
+ if(lastDstSw >= 0 && lastDstPort >= 0) {
+ //Switch sw = lastDstPort.getSwitch();
+ long sw = lastDstSw;
dstPort = lastDstPort;
FlowEntry fe = new FlowEntry(sw, srcPort, dstPort, srcMac, dstMac, i.operator);
entries.add(fe);
@@ -103,6 +108,8 @@
case REMOVE:
i -= 1;
break;
+ default:
+ break;
}
map.put(e, i);
System.out.println(e + " " + e.getOperator());