Began implementation of the a host monitor
diff --git a/core/api/src/main/java/org/onlab/onos/net/DefaultPort.java b/core/api/src/main/java/org/onlab/onos/net/DefaultPort.java
index c6d6cb3..d2570b6 100644
--- a/core/api/src/main/java/org/onlab/onos/net/DefaultPort.java
+++ b/core/api/src/main/java/org/onlab/onos/net/DefaultPort.java
@@ -6,7 +6,7 @@
import java.util.Objects;
import java.util.Set;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
/**
* Default port implementation.
@@ -18,7 +18,7 @@
private final boolean isEnabled;
// Attributes
- private final Set<IpAddress> ipAddresses;
+ private final Set<IpPrefix> ipAddresses;
/**
* Creates a network element attributed to the specified provider.
@@ -41,7 +41,7 @@
* @param ipAddresses set of IP addresses assigned to the port
*/
public DefaultPort(Element element, PortNumber number,
- boolean isEnabled, Set<IpAddress> ipAddresses) {
+ boolean isEnabled, Set<IpPrefix> ipAddresses) {
this.element = element;
this.number = number;
this.isEnabled = isEnabled;
@@ -90,7 +90,7 @@
}
@Override
- public Set<IpAddress> ipAddresses() {
+ public Set<IpPrefix> ipAddresses() {
return ipAddresses;
}
diff --git a/core/api/src/main/java/org/onlab/onos/net/Port.java b/core/api/src/main/java/org/onlab/onos/net/Port.java
index aab10d7..45b816b 100644
--- a/core/api/src/main/java/org/onlab/onos/net/Port.java
+++ b/core/api/src/main/java/org/onlab/onos/net/Port.java
@@ -2,7 +2,7 @@
import java.util.Set;
-import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
/**
* Abstraction of a network port.
@@ -39,5 +39,5 @@
* @return the set of IP addresses configured on the port. The set is empty
* if no addresses are configured.
*/
- Set<IpAddress> ipAddresses();
+ Set<IpPrefix> ipAddresses();
}
diff --git a/core/api/src/main/java/org/onlab/onos/net/host/HostService.java b/core/api/src/main/java/org/onlab/onos/net/host/HostService.java
index 39f63c0..3717bea 100644
--- a/core/api/src/main/java/org/onlab/onos/net/host/HostService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/host/HostService.java
@@ -1,5 +1,7 @@
package org.onlab.onos.net.host;
+import java.util.Set;
+
import org.onlab.onos.net.ConnectPoint;
import org.onlab.onos.net.DeviceId;
import org.onlab.onos.net.Host;
@@ -8,8 +10,6 @@
import org.onlab.packet.MacAddress;
import org.onlab.packet.VlanId;
-import java.util.Set;
-
/**
* Service for interacting with the inventory of end-station hosts.
*/
@@ -82,6 +82,22 @@
Set<Host> getConnectedHosts(DeviceId deviceId);
/**
+ * Requests the host service to monitor hosts with the given IP address and
+ * notify listeners of changes.
+ *
+ * @param ip IP address of the host to monitor
+ */
+ void monitorIp(IpPrefix ip);
+
+ /**
+ * Stops the host service from monitoring an IP address.
+ *
+ * @param ip IP address to stop monitoring
+ */
+ // TODO clients can cancel other client's requests
+ void stopMonitoringIp(IpPrefix ip);
+
+ /**
* Adds the specified host listener.
*
* @param listener host listener
diff --git a/core/api/src/test/java/org/onlab/onos/net/host/HostServiceAdapter.java b/core/api/src/test/java/org/onlab/onos/net/host/HostServiceAdapter.java
index 682e349..6a270cd 100644
--- a/core/api/src/test/java/org/onlab/onos/net/host/HostServiceAdapter.java
+++ b/core/api/src/test/java/org/onlab/onos/net/host/HostServiceAdapter.java
@@ -1,5 +1,7 @@
package org.onlab.onos.net.host;
+import java.util.Set;
+
import org.onlab.onos.net.ConnectPoint;
import org.onlab.onos.net.DeviceId;
import org.onlab.onos.net.Host;
@@ -8,8 +10,6 @@
import org.onlab.packet.MacAddress;
import org.onlab.packet.VlanId;
-import java.util.Set;
-
/**
* Test adapter for host service.
*/
@@ -55,6 +55,14 @@
}
@Override
+ public void monitorIp(IpPrefix ip) {
+ }
+
+ @Override
+ public void stopMonitoringIp(IpPrefix ip) {
+ }
+
+ @Override
public void addListener(HostListener listener) {
}