blob: 700654fe2305d736a3e25e118fa1acd572c2f2ff [file] [log] [blame]
tome33cc1a2014-08-25 21:59:41 -07001package org.onlab.onos.net;
2
tom64b7aac2014-08-26 00:18:21 -07003import org.onlab.onos.net.provider.Provided;
4
tome33cc1a2014-08-25 21:59:41 -07005/**
tom18567e92014-08-26 01:39:47 -07006 * Representation of a network infrastructure device.
tome33cc1a2014-08-25 21:59:41 -07007 */
tom64b7aac2014-08-26 00:18:21 -07008public interface Device extends Provided {
tome33cc1a2014-08-25 21:59:41 -07009
tom18567e92014-08-26 01:39:47 -070010 /**
11 * Coarse classification of the type of the infrastructure device.
12 */
13 public enum Type {
14 SWITCH, ROUTER, FIREWALL, BALANCER, IPS, IDS, CONTROLLER, OTHER
15 }
tome33cc1a2014-08-25 21:59:41 -070016
tom18567e92014-08-26 01:39:47 -070017 /**
18 * Returns the device identifier.
19 *
20 * @return device id
21 */
22 DeviceId id();
tome33cc1a2014-08-25 21:59:41 -070023
tom18567e92014-08-26 01:39:47 -070024 /**
25 * Returns the type of the infrastructure device.
26 *
27 * @return type of the device
28 */
29 Type type();
30
31 /**
32 * Returns the device manufacturer name.
33 *
34 * @return manufacturer name
35 */
36 String manufacturer();
37
38 /**
39 * Returns the device hardware version.
40 *
41 * @return hardware version
42 */
43 String hwVersion();
44
45 /**
46 * Returns the device software version.
47 *
48 * @return software version
49 */
50 String swVersion();
51
52 /**
53 * Returns the device serial number.
54 *
55 * @return serial number
56 */
57 String serialNumber();
58
59 // Device realizedBy(); ?
60
61 // ports are not provided directly, but rather via DeviceService.getPorts(Device device);
62
63 // Set<Behavior> behaviours(); // set of supported behaviours
tome33cc1a2014-08-25 21:59:41 -070064
65}