* Added initial support for add/get/delete Flow state to the Network MAP via the REST API
NOTE: The "add" REST API can't be used as-is.
* Added initial support for reading the Flow state from the Network MAP by the Controller
and sending it to the switches.
Currently, the Controller reads periodically the Flow entries (every 3 seconds)
NOTE: The writing of the OpenFlow state to the switches is not tested.
The Python scripts for to add/delete/get flows are intentionally omitted until
the "add" REST API issue is resolved.
NOTE: Two new keys have been added to the database: "flow_id" and "flow_entry_id".
This requires that the older database should be deleted, because Cassandra
doesn't allow adding new keys to an existing database.
diff --git a/src/main/java/net/onrc/onos/util/IDBUtils.java b/src/main/java/net/onrc/onos/util/IDBUtils.java
index a27a261..4ff70f3 100644
--- a/src/main/java/net/onrc/onos/util/IDBUtils.java
+++ b/src/main/java/net/onrc/onos/util/IDBUtils.java
@@ -1,8 +1,12 @@
package net.onrc.onos.util;
import net.floodlightcontroller.core.INetMapTopologyObjects.IDeviceObject;
+import net.floodlightcontroller.core.INetMapTopologyObjects.IFlowEntry;
+import net.floodlightcontroller.core.INetMapTopologyObjects.IFlowPath;
import net.floodlightcontroller.core.INetMapTopologyObjects.IPortObject;
import net.floodlightcontroller.core.INetMapTopologyObjects.ISwitchObject;
+import net.floodlightcontroller.util.FlowEntryId;
+import net.floodlightcontroller.util.FlowId;
public interface IDBUtils {
public ISwitchObject searchSwitch(GraphDBConnection conn, String dpid);
@@ -11,4 +15,15 @@
public void removeDevice(GraphDBConnection conn, IDeviceObject dev);
public IPortObject searchPort(GraphDBConnection conn, String dpid, short number);
public Iterable<IDeviceObject> getDevices(GraphDBConnection conn);
+ public IFlowPath searchFlowPath(GraphDBConnection conn, FlowId flowId);
+ public IFlowPath newFlowPath(GraphDBConnection conn);
+ public void removeFlowPath(GraphDBConnection conn, IFlowPath flowPath);
+ public IFlowPath getFlowPathByFlowEntry(GraphDBConnection conn,
+ IFlowEntry flowEntry);
+ public IFlowEntry searchFlowEntry(GraphDBConnection conn,
+ FlowEntryId flowEntryId);
+ public IFlowEntry newFlowEntry(GraphDBConnection conn);
+ public void removeFlowEntry(GraphDBConnection conn,
+ IFlowEntry flowEntry);
+ public Iterable<IFlowEntry> getAllFlowEntries(GraphDBConnection conn);
}