blob: 28e6a5d537d8453b97f39a3bbc6ae41549ec6409 [file] [log] [blame]
Pankaj Berdee73452c2013-01-03 14:57:07 -08001package net.floodlightcontroller.core;
2
3import java.util.Collection;
Pankaj Berde8557a462013-01-07 08:59:31 -08004import java.util.List;
Pankaj Berdee73452c2013-01-03 14:57:07 -08005
Pankaj Berdeff421802013-01-29 20:28:52 -08006import org.codehaus.jackson.annotate.JsonAutoDetect;
7import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
8import org.codehaus.jackson.annotate.JsonIgnore;
9import org.codehaus.jackson.annotate.JsonProperty;
10import org.codehaus.jackson.map.annotate.JsonSerialize;
11import org.codehaus.jackson.map.ser.StdSerializers;
Pankaj Berdee73452c2013-01-03 14:57:07 -080012import org.openflow.protocol.OFPhysicalPort;
13
Pankaj Berdeff421802013-01-29 20:28:52 -080014import com.tinkerpop.blueprints.Direction;
15import com.tinkerpop.frames.Adjacency;
16import com.tinkerpop.frames.Incidence;
17import com.tinkerpop.frames.Property;
18
Pankaj Berdee73452c2013-01-03 14:57:07 -080019public interface ISwitchStorage extends INetMapStorage {
20
Pankaj Berde28cc61c2013-01-08 18:19:33 -080021 public enum SwitchState {
Pankaj Berde8557a462013-01-07 08:59:31 -080022 INACTIVE,
23 ACTIVE
24 }
Pankaj Berdeff421802013-01-29 20:28:52 -080025
26 public interface ISwitchObject {
27
28 @JsonProperty("dpid")
29 @Property("dpid")
30 public String getDPID();
31
32 @JsonProperty("state")
33 @Property("state")
34 public String getState();
35
36 @JsonIgnore
37 @Property("type")
38 public String getType();
39
40 @JsonProperty("ports")
41 @Adjacency(label="on")
42 public Iterable<IPortObject> getPorts();
43 }
Pankaj Berde8557a462013-01-07 08:59:31 -080044
Pankaj Berdeff421802013-01-29 20:28:52 -080045 public interface IPortObject {
46
47 @JsonProperty("state")
48 @Property("state")
49 public int getState();
50
51 @JsonIgnore
52 @Property("type")
53 public String getType();
54
55 @JsonProperty("number")
56 @Property("number")
57 public Short getNumber();
58
59 @JsonProperty("desc")
60 @Property("desc")
61 public String getDesc();
62
63 @JsonIgnore
64 @Incidence(label="on",direction = Direction.IN)
65 public ISwitchObject getSwitch();
66 }
Pankaj Berdee73452c2013-01-03 14:57:07 -080067 /*
68 * Update the switch details
69 */
Pankaj Berde8557a462013-01-07 08:59:31 -080070 public void update(String dpid,SwitchState state, DM_OPERATION op);
Pankaj Berdee73452c2013-01-03 14:57:07 -080071 /*
72 * Associate a port on switch
73 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080074 public void addPort(String dpid, OFPhysicalPort port);
Pankaj Berdee73452c2013-01-03 14:57:07 -080075 /*
76 * Get all ports associated on a switch
77 */
78 public Collection<OFPhysicalPort> getPorts(long dpid);
79 /*
80 * Get Port by Number
81 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080082 public OFPhysicalPort getPort(String dpid, short portnum);
Pankaj Berdee73452c2013-01-03 14:57:07 -080083 /*
84 * Get port by name
85 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080086 public OFPhysicalPort getPort(String dpid, String portName);
87 /*
88 * Add a switch
89 */
90 public void addSwitch(String dpid);
Pankaj Berdee73452c2013-01-03 14:57:07 -080091 /*
92 * Delete switch and associated ports
93 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080094 public void deleteSwitch(String dpid);
Pankaj Berdee73452c2013-01-03 14:57:07 -080095 /*
96 * Delete a port on a switch by num
97 */
Pankaj Berde4dea3462013-01-03 18:02:38 -080098 public void deletePort(String dpid, short port);
Pankaj Berdee73452c2013-01-03 14:57:07 -080099 /*
100 * Delete port on a switch by name
101 */
Pankaj Berde4dea3462013-01-03 18:02:38 -0800102 public void deletePort(String dpid, String portName);
103
Pankaj Berdeff421802013-01-29 20:28:52 -0800104 public Iterable<ISwitchObject> getActiveSwitches();
105 public Iterable<ISwitchObject> getAllSwitches();
106 public Iterable<ISwitchObject> getInactiveSwitches();
Pankaj Berde8557a462013-01-07 08:59:31 -0800107
Pankaj Berde4dea3462013-01-03 18:02:38 -0800108 /*
109 * Initialize
110 */
111 public void init(String conf);
Pankaj Berded1259e82013-01-23 14:10:00 -0800112
113
Pankaj Berdee73452c2013-01-03 14:57:07 -0800114}