Implemented global packet-out functionality in the PacketModule.
Updated with javadoc for the interfaces, and fixes to bugs pointed out by
Pavlin and Yuta regarding the implementation of calculateOutPorts in
BroadcastPacketOutNotification.
Change-Id: I6174d27877972cf437955ef8d82e9a02b36d0b5f
diff --git a/src/main/java/net/onrc/onos/core/packetservice/SinglePacketOutNotification.java b/src/main/java/net/onrc/onos/core/packetservice/SinglePacketOutNotification.java
index 4e9f47d..e6260e0 100644
--- a/src/main/java/net/onrc/onos/core/packetservice/SinglePacketOutNotification.java
+++ b/src/main/java/net/onrc/onos/core/packetservice/SinglePacketOutNotification.java
@@ -1,7 +1,7 @@
package net.onrc.onos.core.packetservice;
-
-// TODO This class is too generic to be handled by ProxyArpService.
+import com.google.common.collect.HashMultimap;
+import com.google.common.collect.Multimap;
/**
* Notification to another ONOS instance to send a packet out a single port.
@@ -58,4 +58,15 @@
public int getTargetAddress() {
return address;
}
+
+ @Override
+ public Multimap<Long, Short> calculateOutPorts(Multimap<Long, Short> localSwitches) {
+ Multimap<Long, Short> outPorts = HashMultimap.create();
+
+ if (localSwitches.containsEntry(outSwitch, outPort)) {
+ outPorts.put(outSwitch, outPort);
+ }
+
+ return outPorts;
+ }
}