blob: 75e026d4f5915c935adf3af92641084c2924be83 [file] [log] [blame]
tom64b7aac2014-08-26 00:18:21 -07001package org.onlab.onos.net;
2
3import org.onlab.onos.net.provider.Provided;
4
5/**
6 * Abstraction of a network infrastructure link.
7 */
tom43387f32014-08-27 14:42:43 -07008public interface Link extends Provided {
9// TODO: Consider extending graph Edge<Element> once the graph module is available
tom18567e92014-08-26 01:39:47 -070010
11 /**
12 * Coarse representation of the link type.
13 */
14 public enum Type {
15 /**
16 * Signifies that this is a direct single-segment link.
17 */
18 DIRECT,
19
20 /**
21 * Signifies that this link is potentially comprised from multiple
tomd3097b02014-08-26 10:40:29 -070022 * underlying segments or hops, and as such should be used to tag
23 * links traversing optical paths, tunnels or intervening 'dark'
24 * switches.
tom18567e92014-08-26 01:39:47 -070025 */
26 INDIRECT
27 }
tom64b7aac2014-08-26 00:18:21 -070028
29 /**
30 * Returns the link source connection point.
31 *
32 * @return link source connection point
33 */
34 ConnectPoint src();
35
36 /**
37 * Returns the link destination connection point.
38 *
39 * @return link destination connection point
40 */
41 ConnectPoint dst();
42
tom18567e92014-08-26 01:39:47 -070043 // LinkInfo info(); // Additional link information / decorations
44
tom64b7aac2014-08-26 00:18:21 -070045}