diff --git a/src/main/java/net/floodlightcontroller/topology/ITopologyService.java b/src/main/java/net/floodlightcontroller/topology/ITopologyService.java index ebc3a7618a66a5b6e0cb06c15a170f6f5164803e..eba4ada8db0fe8c1f2cf08f764535c64bbd8b29c 100644 --- a/src/main/java/net/floodlightcontroller/topology/ITopologyService.java +++ b/src/main/java/net/floodlightcontroller/topology/ITopologyService.java @@ -43,6 +43,15 @@ public interface ITopologyService extends IFloodlightService { public boolean isAllowed(long sw, short portId); + /** + * If the dst is not allowed by the higher-level topology, this method provides + * the topologically equivalent broadcast port. + * @param src + * @param dst + * @return the allowed broadcast port + */ + public NodePortTuple getAllowedOutgoingBroadcastPort(NodePortTuple src, NodePortTuple dst); + public boolean isIncomingBroadcastAllowed(long sw, short portId); public boolean isInSameBroadcastDomain(long s1, short p1, long s2, short p2); diff --git a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java index cd0392a3d954fe936884ce6128a4d9cad61951fe..e36ef94115dd5dc3c102938aff5d5f26af1d1c71 100644 --- a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java +++ b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java @@ -370,6 +370,11 @@ IRoutingService, ILinkDiscoveryListener { return currentInstance.isAllowed(sw, portId); } + @Override + public NodePortTuple getAllowedOutgoingBroadcastPort(NodePortTuple src, NodePortTuple dst) { + return null; + } + @Override public boolean isIncomingBroadcastAllowed(long sw, short portId) { return currentInstance.isIncomingBroadcastAllowedOnSwitchPort(sw, portId);