blob: b16e4a9907d8c39ca7c38906a7b21c417ef7b446 [file] [log] [blame]
Pankaj Berded1259e82013-01-23 14:10:00 -08001package net.floodlightcontroller.core;
2
3import java.util.List;
4
Pavlin Radoslavovd7d8b792013-02-22 10:24:38 -08005import net.floodlightcontroller.core.module.IFloodlightService;
Pankaj Berde2497e542013-02-19 18:51:24 -08006import net.floodlightcontroller.core.INetMapTopologyObjects.IDeviceObject;
7import net.floodlightcontroller.core.INetMapTopologyObjects.IPortObject;
Pankaj Berde1e2f7312013-02-15 08:25:31 -08008import net.floodlightcontroller.core.INetMapTopologyObjects.ISwitchObject;
Pankaj Berded1259e82013-01-23 14:10:00 -08009import net.floodlightcontroller.routing.Link;
10import net.floodlightcontroller.topology.NodePortTuple;
Pavlin Radoslavovf83aa442013-02-26 14:09:01 -080011import net.floodlightcontroller.util.DataPath;
12import net.floodlightcontroller.util.SwitchPort;
Pankaj Berded1259e82013-01-23 14:10:00 -080013
14public interface INetMapTopologyService extends INetMapService {
15
16 public interface ITopoSwitchService {
Pankaj Berde2497e542013-02-19 18:51:24 -080017 Iterable<ISwitchObject> getActiveSwitches();
18 Iterable<ISwitchObject> getAllSwitches();
19 Iterable<ISwitchObject> getInactiveSwitches();
20 Iterable<IPortObject> getPortsOnSwitch(String dpid);
21 IPortObject getPortOnSwitch(String dpid, short port_num);
22
Pankaj Berded1259e82013-01-23 14:10:00 -080023 }
24
25 public interface ITopoLinkService {
Pankaj Berde2497e542013-02-19 18:51:24 -080026 List<Link> getActiveLinks();
27 List<Link> getLinksOnSwitch(String dpid);
Pankaj Berded1259e82013-01-23 14:10:00 -080028 }
29 public interface ITopoDeviceService {
Pankaj Berde2497e542013-02-19 18:51:24 -080030 Iterable<IDeviceObject> getActiveDevices();
31 Iterable<IDeviceObject> getDevicesOnSwitch(String dpid);
32 Iterable<IDeviceObject> getDevicesOnSwitch(String dpid, short port_num);
Pankaj Berded1259e82013-01-23 14:10:00 -080033 }
34
Pavlin Radoslavovd7d8b792013-02-22 10:24:38 -080035 public interface ITopoRouteService extends IFloodlightService {
Pavlin Radoslavovf83aa442013-02-26 14:09:01 -080036 DataPath getShortestPath(SwitchPort src, SwitchPort dest);
37 Boolean routeExists(SwitchPort src, SwitchPort dest);
Pankaj Berded1259e82013-01-23 14:10:00 -080038 }
39
40 public interface ITopoFlowService {
Pankaj Berde2497e542013-02-19 18:51:24 -080041 Boolean flowExists(NodePortTuple src, NodePortTuple dest);
42 List<NodePortTuple> getShortestFlowPath(NodePortTuple src, NodePortTuple dest);
Pankaj Berded1259e82013-01-23 14:10:00 -080043
44 }
45}