blob: 27014b6f43243298fc8d17a79438375cd6ae1796 [file] [log] [blame]
tom0eb04ca2014-08-25 14:34:51 -07001package org.onlab.onos.net.host;
2
Ayaka Koshibe74a23922014-09-09 16:45:39 -07003import java.util.Set;
4
5import org.onlab.onos.net.Description;
6import org.onlab.onos.net.HostLocation;
Ayaka Koshibe1d56fe42014-09-19 16:51:58 -07007import org.onlab.packet.IpPrefix;
Ayaka Koshibea9c199f2014-09-16 16:21:40 -07008import org.onlab.packet.MacAddress;
9import org.onlab.packet.VlanId;
Ayaka Koshibe74a23922014-09-09 16:45:39 -070010
tom0eb04ca2014-08-25 14:34:51 -070011/**
12 * Information describing host and its location.
13 */
Ayaka Koshibe74a23922014-09-09 16:45:39 -070014public interface HostDescription extends Description {
tom0eb04ca2014-08-25 14:34:51 -070015
Ayaka Koshibe74a23922014-09-09 16:45:39 -070016 /**
17 * Returns the MAC address associated with this host (NIC).
18 *
19 * @return the MAC address of this host
20 */
Ayaka Koshibea9c199f2014-09-16 16:21:40 -070021 MacAddress hwAddress();
Ayaka Koshibe74a23922014-09-09 16:45:39 -070022
23 /**
24 * Returns the VLAN associated with this host.
25 *
26 * @return the VLAN ID value
27 */
Ayaka Koshibea9c199f2014-09-16 16:21:40 -070028 VlanId vlan();
Ayaka Koshibe74a23922014-09-09 16:45:39 -070029
30 /**
31 * Returns the location of the host on the network edge.
32 *
33 * @return the network location
34 */
35 HostLocation location();
36
37 /**
38 * Returns zero or more IP address(es) associated with this host's MAC.
39 *
40 * @return a set of IP addresses.
41 */
Ayaka Koshibe1d56fe42014-09-19 16:51:58 -070042 Set<IpPrefix> ipAddresses();
tom0eb04ca2014-08-25 14:34:51 -070043
44}