blob: 4e3478f29ecdb204d586bea6f1bf4746fc118483 [file] [log] [blame]
tome33cc1a2014-08-25 21:59:41 -07001package org.onlab.onos.net;
2
3/**
tom18567e92014-08-26 01:39:47 -07004 * Representation of a network infrastructure device.
tome33cc1a2014-08-25 21:59:41 -07005 */
tomb36046e2014-08-27 00:22:24 -07006public interface Device extends Element {
tome33cc1a2014-08-25 21:59:41 -07007
tom18567e92014-08-26 01:39:47 -07008 /**
9 * Coarse classification of the type of the infrastructure device.
10 */
11 public enum Type {
Praseed Balakrishnana22eadf2014-10-20 14:21:45 -070012 SWITCH, ROUTER, ROADM, FIREWALL, BALANCER, IPS, IDS, CONTROLLER, OTHER
tom18567e92014-08-26 01:39:47 -070013 }
tome33cc1a2014-08-25 21:59:41 -070014
tom18567e92014-08-26 01:39:47 -070015 /**
16 * Returns the device identifier.
17 *
18 * @return device id
19 */
20 DeviceId id();
tome33cc1a2014-08-25 21:59:41 -070021
tom18567e92014-08-26 01:39:47 -070022 /**
23 * Returns the type of the infrastructure device.
24 *
25 * @return type of the device
26 */
27 Type type();
28
29 /**
30 * Returns the device manufacturer name.
31 *
32 * @return manufacturer name
33 */
34 String manufacturer();
35
36 /**
37 * Returns the device hardware version.
38 *
39 * @return hardware version
40 */
41 String hwVersion();
42
43 /**
44 * Returns the device software version.
45 *
46 * @return software version
47 */
48 String swVersion();
49
50 /**
51 * Returns the device serial number.
52 *
53 * @return serial number
54 */
55 String serialNumber();
56
57 // Device realizedBy(); ?
58
59 // ports are not provided directly, but rather via DeviceService.getPorts(Device device);
60
61 // Set<Behavior> behaviours(); // set of supported behaviours
tome33cc1a2014-08-25 21:59:41 -070062
63}