blob: c9c3676dba8136818b679667c35e4d35a0cfd965 [file] [log] [blame]
Thomas Vachuska4f1a60c2014-10-28 13:39:07 -07001/*
2 * Copyright 2014 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
tom0eb04ca2014-08-25 14:34:51 -070016package org.onlab.onos.net.device;
17
18import org.onlab.onos.net.Description;
tomd1900f32014-09-03 14:08:16 -070019import org.onlab.onos.net.Device;
alshabib7911a052014-10-16 17:49:37 -070020import org.onlab.packet.ChassisId;
tom0eb04ca2014-08-25 14:34:51 -070021
22import java.net.URI;
23
24/**
25 * Carrier of immutable information about a device.
26 */
27public interface DeviceDescription extends Description {
28
29 /**
30 * Protocol/provider specific URI that can be used to encode the identity
31 * information required to communicate with the device externally, e.g.
32 * datapath ID.
33 *
34 * @return provider specific URI for the device
35 */
36 URI deviceURI();
37
tomd1900f32014-09-03 14:08:16 -070038 /**
39 * Returns the type of the infrastructure device.
40 *
41 * @return type of the device
42 */
43 Device.Type type();
44
45 /**
46 * Returns the device manufacturer name.
47 *
48 * @return manufacturer name
49 */
50 String manufacturer();
51
52 /**
53 * Returns the device hardware version.
54 *
55 * @return hardware version
56 */
57 String hwVersion();
58
59 /**
60 * Returns the device software version.
61 *
62 * @return software version
63 */
64 String swVersion();
65
66 /**
67 * Returns the device serial number.
68 *
69 * @return serial number
70 */
71 String serialNumber();
72
alshabib7911a052014-10-16 17:49:37 -070073 /**
74 * Returns a device chassis id.
75 *
76 * @return chassis id
77 */
78 ChassisId chassisId();
79
tom0eb04ca2014-08-25 14:34:51 -070080}