blob: 5a1e1a77349ff465cb92018e8c007aab259416a9 [file] [log] [blame]
Pankaj Berdee73452c2013-01-03 14:57:07 -08001package net.floodlightcontroller.core;
2
3import java.util.Collection;
Pankaj Berde1e2f7312013-02-15 08:25:31 -08004
5import net.floodlightcontroller.core.INetMapTopologyObjects.ISwitchObject;
6
Pankaj Berdeff421802013-01-29 20:28:52 -08007import org.codehaus.jackson.annotate.JsonIgnore;
8import org.codehaus.jackson.annotate.JsonProperty;
Pankaj Berdee73452c2013-01-03 14:57:07 -08009import org.openflow.protocol.OFPhysicalPort;
10
Pankaj Berdeff421802013-01-29 20:28:52 -080011import com.tinkerpop.blueprints.Direction;
12import com.tinkerpop.frames.Adjacency;
13import com.tinkerpop.frames.Incidence;
14import com.tinkerpop.frames.Property;
Pankaj Berde5024ec12013-01-31 17:07:29 -080015import com.tinkerpop.frames.VertexFrame;
Pankaj Berdeff421802013-01-29 20:28:52 -080016
Pankaj Berdee73452c2013-01-03 14:57:07 -080017public interface ISwitchStorage extends INetMapStorage {
18
Pankaj Berde28cc61c2013-01-08 18:19:33 -080019 public enum SwitchState {
Pankaj Berde8557a462013-01-07 08:59:31 -080020 INACTIVE,
21 ACTIVE
22 }
23
Pankaj Berdee73452c2013-01-03 14:57:07 -080024 /*
25 * Update the switch details
26 */
Pankaj Berde8557a462013-01-07 08:59:31 -080027 public void update(String dpid,SwitchState state, DM_OPERATION op);
Pankaj Berdee73452c2013-01-03 14:57:07 -080028 /*
29 * Associate a port on switch
30 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080031 public void addPort(String dpid, OFPhysicalPort port);
Pankaj Berdee73452c2013-01-03 14:57:07 -080032 /*
33 * Get all ports associated on a switch
34 */
35 public Collection<OFPhysicalPort> getPorts(long dpid);
36 /*
37 * Get Port by Number
38 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080039 public OFPhysicalPort getPort(String dpid, short portnum);
Pankaj Berdee73452c2013-01-03 14:57:07 -080040 /*
41 * Get port by name
42 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080043 public OFPhysicalPort getPort(String dpid, String portName);
44 /*
45 * Add a switch
46 */
47 public void addSwitch(String dpid);
Pankaj Berdee73452c2013-01-03 14:57:07 -080048 /*
49 * Delete switch and associated ports
50 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080051 public void deleteSwitch(String dpid);
Pankaj Berdee73452c2013-01-03 14:57:07 -080052 /*
53 * Delete a port on a switch by num
54 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080055 public void deletePort(String dpid, short port);
Pankaj Berdee73452c2013-01-03 14:57:07 -080056 /*
57 * Delete port on a switch by name
58 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080059 public void deletePort(String dpid, String portName);
60
Pankaj Berdeff421802013-01-29 20:28:52 -080061 public Iterable<ISwitchObject> getActiveSwitches();
62 public Iterable<ISwitchObject> getAllSwitches();
63 public Iterable<ISwitchObject> getInactiveSwitches();
Pankaj Berde8557a462013-01-07 08:59:31 -080064
Pankaj Berde4dea3462013-01-03 18:02:38 -080065 /*
66 * Initialize
67 */
68 public void init(String conf);
Pankaj Berded1259e82013-01-23 14:10:00 -080069
70
Pankaj Berdee73452c2013-01-03 14:57:07 -080071}