Changed PortAddress API to allow multiple IP addresses per port
diff --git a/core/net/src/main/java/org/onlab/onos/net/host/impl/DefaultPortAddresses.java b/core/net/src/main/java/org/onlab/onos/net/host/impl/DefaultPortAddresses.java
deleted file mode 100644
index fb656cf..0000000
--- a/core/net/src/main/java/org/onlab/onos/net/host/impl/DefaultPortAddresses.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.onlab.onos.net.host.impl;
-
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.host.PortAddresses;
-import org.onlab.packet.IpAddress;
-import org.onlab.packet.MacAddress;
-
-public class DefaultPortAddresses implements PortAddresses {
-
- private final ConnectPoint connectPoint;
- private final IpAddress ipAddress;
- private final MacAddress macAddress;
-
- public DefaultPortAddresses(ConnectPoint connectPoint,
- IpAddress ip, MacAddress mac) {
- this.connectPoint = connectPoint;
- this.ipAddress = ip;
- this.macAddress = mac;
- }
-
- @Override
- public ConnectPoint connectPoint() {
- return connectPoint;
- }
-
- @Override
- public IpAddress ip() {
- return ipAddress;
- }
-
- @Override
- public MacAddress mac() {
- return macAddress;
- }
-
-}
diff --git a/core/net/src/main/java/org/onlab/onos/net/host/impl/HostManager.java b/core/net/src/main/java/org/onlab/onos/net/host/impl/HostManager.java
index 3c1a499..9b8ecf7 100644
--- a/core/net/src/main/java/org/onlab/onos/net/host/impl/HostManager.java
+++ b/core/net/src/main/java/org/onlab/onos/net/host/impl/HostManager.java
@@ -155,14 +155,18 @@
}
@Override
- public void bindAddressesToPort(IpAddress ip, MacAddress mac,
- ConnectPoint connectPoint) {
- store.updateAddressBindings(new DefaultPortAddresses(connectPoint, ip, mac));
+ public void bindAddressesToPort(PortAddresses addresses) {
+ store.updateAddressBindings(addresses);
}
@Override
- public void unbindAddressesFromPort(ConnectPoint connectPoint) {
- store.removeAddressBindings(connectPoint);
+ public void unbindAddressesFromPort(PortAddresses portAddresses) {
+ store.removeAddressBindings(portAddresses);
+ }
+
+ @Override
+ public void clearAddresses(ConnectPoint connectPoint) {
+ store.clearAddressBindings(connectPoint);
}
@Override
diff --git a/core/net/src/main/java/org/onlab/onos/net/host/impl/HostMonitor.java b/core/net/src/main/java/org/onlab/onos/net/host/impl/HostMonitor.java
index f27cd78..71d1130 100644
--- a/core/net/src/main/java/org/onlab/onos/net/host/impl/HostMonitor.java
+++ b/core/net/src/main/java/org/onlab/onos/net/host/impl/HostMonitor.java
@@ -128,9 +128,11 @@
ConnectPoint cp = new ConnectPoint(device.id(), port.number());
PortAddresses addresses = hostStore.getAddressBindingsForPort(cp);
- if (addresses.ip().contains(targetIp)) {
- sendProbe(device.id(), port, addresses, targetIp);
- }
+ /*for (IpPrefix prefix : addresses.ips()) {
+ if (prefix.contains(targetIp)) {
+ sendProbe(device.id(), port, addresses, targetIp);
+ }
+ }*/
}
}
@@ -173,7 +175,7 @@
}
arp.setSenderHardwareAddress(sourceMacAddress)
- .setSenderProtocolAddress(portAddresses.ip().toOctets())
+ //TODO .setSenderProtocolAddress(portAddresses.ips().toOctets())
.setTargetHardwareAddress(ZERO_MAC_ADDRESS)
.setTargetProtocolAddress(targetIp.toOctets());