blob: 882ebbefc1add7a427da7f57fc2609e89e98418f [file] [log] [blame]
Jonathan Hart062a2e82014-02-03 09:41:57 -08001package net.onrc.onos.ofcontroller.networkgraph;
2
3import java.net.InetAddress;
4
5import net.floodlightcontroller.util.MACAddress;
6
7/**
8 * The northbound interface to the topology network graph. This interface
9 * is presented to the rest of ONOS. It is currently read-only, as we want
10 * only the discovery modules to be allowed to modify the topology.
11 *
12 */
13public interface NetworkGraph {
Toshio Koide2f570c12014-02-06 16:55:32 -080014 public Switch getSwitch(Long dpid);
15 public Iterable<? extends Switch> getSwitches();
Jonathan Hart062a2e82014-02-03 09:41:57 -080016
Toshio Koide2f570c12014-02-06 16:55:32 -080017 public Iterable<? extends Link> getLinks();
18 public Iterable<? extends Link> getOutgoingLinksFromSwitch(Long dpid); // Toshi: unnecessary
19 public Iterable<? extends Link> getIncomingLinksFromSwitch(Long dpid); // Toshi: unnecessary
Jonathan Hart062a2e82014-02-03 09:41:57 -080020
21 public Iterable<Device> getDeviceByIp(InetAddress ipAddress);
Toshio Koide6c9b7e82014-02-07 18:01:32 -080022 public Device getDeviceByMac(MACAddress address);
Jonathan Hart062a2e82014-02-03 09:41:57 -080023}