blob: 0294d99126bd3de1595fe2acdeaa60109eb0d09f [file] [log] [blame]
tome33cc1a2014-08-25 21:59:41 -07001package org.onlab.onos.net;
2
alshabib7911a052014-10-16 17:49:37 -07003import org.onlab.packet.ChassisId;
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 */
tomb36046e2014-08-27 00:22:24 -07008public interface Device extends Element {
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
alshabib7911a052014-10-16 17:49:37 -070059 /**
60 * Returns the device chassis id.
61 *
62 * @return chassis id
63 */
64 ChassisId chassisId();
65
tom18567e92014-08-26 01:39:47 -070066 // Device realizedBy(); ?
67
68 // ports are not provided directly, but rather via DeviceService.getPorts(Device device);
69
70 // Set<Behavior> behaviours(); // set of supported behaviours
tome33cc1a2014-08-25 21:59:41 -070071
72}