diff --git a/src/main/java/net/floodlightcontroller/topology/ITopologyService.java b/src/main/java/net/floodlightcontroller/topology/ITopologyService.java index a7f087b85c3371522a59bca1dc89d1ad1d49268f..0ad848996a5e2f9c22fab0d0bc31b4ef1ace9ee8 100644 --- a/src/main/java/net/floodlightcontroller/topology/ITopologyService.java +++ b/src/main/java/net/floodlightcontroller/topology/ITopologyService.java @@ -16,7 +16,7 @@ public interface ITopologyService extends IFloodlightService { public boolean isInternal(long switchid, short port); public long getSwitchClusterId(long switchId); - + /** * Retrieves a set of all the switches in the same cluster as sw. * A cluster is a set of switches that are directly or indirectly @@ -27,7 +27,7 @@ public interface ITopologyService extends IFloodlightService { * @return Set of switches in the cluster */ public Set<Long> getSwitchesInCluster(long switchId); - + /** * Queries whether two switches are in the same cluster. * @param switch1 @@ -36,9 +36,9 @@ public interface ITopologyService extends IFloodlightService { */ public boolean inSameCluster(long switch1, long switch2); - + public void addListener(ITopologyListener listener); - + public boolean isIncomingBroadcastAllowedOnSwitchPort(long sw, short portId); public boolean isInSameBroadcastDomain(long s1, short p1, long s2, short p2); @@ -46,4 +46,7 @@ public interface ITopologyService extends IFloodlightService { public Set<Short> getPorts(long sw); public Set<Short> getBroadcastPorts(long targetSw, long src, short srcPort); + + public NodePortTuple getOutgoingSwitchPort(long src, short srcPort, + long dst, short dstPort); } diff --git a/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java b/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java index 4038cb4208613d1d6ea2b9cb299658134ef50abc..b1602d79172912140d62403c74cf41ce254e756f 100644 --- a/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java +++ b/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java @@ -532,6 +532,16 @@ public class TopologyInstance { return clusterBroadcastNodePorts.get(clusterId); } + public boolean isInSameBroadcastDomain(long s1, short p1, long s2, short p2) { + return false; + } + + public NodePortTuple getOutgoingSwitchPort(long src, short srcPort, + long dst, short dstPort) { + // Use this function to redirect traffic if needed. + return new NodePortTuple(dst, dstPort); + } + public Set<Long> getSwitches() { return switches; } diff --git a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java index 0c3733c4574f5bf9d2f9d6369bd3fd93e676b910..e36d08df2001fd4e6a7187017fd46f7aacbdb1ad 100644 --- a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java +++ b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java @@ -399,8 +399,15 @@ IRoutingService, ILinkDiscoveryListener { @Override public boolean isInSameBroadcastDomain(long s1, short p1, long s2, short p2) { - // TODO Auto-generated method stub - return false; + return currentInstance.isInSameBroadcastDomain(s1, p1, s2, p2); + + } + + @Override + public NodePortTuple getOutgoingSwitchPort(long src, short srcPort, + long dst, short dstPort) { + // Use this function to redirect traffic if needed. + return currentInstance.getOutgoingSwitchPort(src, srcPort, dst, dstPort); } }