|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.floodlightcontroller.topology.TopologyManager
public class TopologyManager
Topology manager is responsible for maintaining the controller's notion of the network graph, as well as implementing tools for finding routes through the topology.
Nested Class Summary | |
---|---|
protected class |
TopologyManager.TopologyEvent
Topology Event class to track topology related events |
protected class |
TopologyManager.TopologyEventInfo
Topology Information exposed for a Topology related event - used inside the BigTopologyEvent class |
protected class |
TopologyManager.UpdateTopologyWorker
Thread for recomputing topology. |
Nested classes/interfaces inherited from interface net.floodlightcontroller.linkdiscovery.ILinkDiscovery |
---|
ILinkDiscovery.LDUpdate, ILinkDiscovery.LinkDirection, ILinkDiscovery.LinkType, ILinkDiscovery.SwitchType, ILinkDiscovery.UpdateOperation |
Nested classes/interfaces inherited from interface net.floodlightcontroller.core.IListener |
---|
IListener.Command |
Field Summary | |
---|---|
static java.lang.String |
CONTEXT_TUNNEL_ENABLED
|
protected IDebugCounter |
ctrIncoming
|
protected TopologyInstance |
currentInstance
|
protected TopologyInstance |
currentInstanceWithoutTunnels
|
protected IDebugCounterService |
debugCounters
|
protected IDebugEventService |
debugEvents
Debug Events |
protected java.util.Map<NodePortTuple,java.util.Set<Link>> |
directLinks
Set of direct links |
protected boolean |
dtLinksUpdated
Flag that indicates if direct or tunnel links were updated as part of LDUpdate. |
protected IEventUpdater<TopologyManager.TopologyEvent> |
evTopology
|
protected IFloodlightProviderService |
floodlightProvider
|
protected java.util.concurrent.BlockingQueue<ILinkDiscovery.LDUpdate> |
ldUpdates
|
protected ILinkDiscoveryService |
linkDiscovery
|
protected boolean |
linksUpdated
Flag that indicates if links (direct/tunnel/multihop links) were updated as part of LDUpdate. |
protected static org.slf4j.Logger |
log
|
static java.lang.String |
MODULE_NAME
|
protected SingletonTask |
newInstanceTask
|
protected static java.lang.String |
PACKAGE
Debug Counters |
protected java.util.Map<NodePortTuple,java.util.Set<Link>> |
portBroadcastDomainLinks
set of links that are broadcast domain links. |
protected IRestApiService |
restApi
|
protected java.util.Map<NodePortTuple,java.util.Set<Link>> |
switchPortLinks
Set of links organized by node port tuple |
protected java.util.Map<java.lang.Long,java.util.Set<java.lang.Integer>> |
switchPorts
Set of ports for each switch |
protected IThreadPoolService |
threadPool
|
protected int |
TOPOLOGY_COMPUTE_INTERVAL_MS
|
protected java.util.ArrayList<ITopologyListener> |
topologyAware
|
protected java.util.Set<NodePortTuple> |
tunnelPorts
set of tunnel links |
protected boolean |
tunnelPortsUpdated
Flag that indicates if tunnel ports were updated or not |
Constructor Summary | |
---|---|
TopologyManager()
|
Method Summary | |
---|---|
void |
addListener(ITopologyListener listener)
|
void |
addOrUpdateLink(long srcId,
int srcPort,
long dstId,
int dstPort,
ILinkDiscovery.LinkType type)
|
protected void |
addOrUpdateSwitch(long sw)
|
protected void |
addOrUpdateTunnelLink(long srcId,
int srcPort,
long dstId,
int dstPort)
|
protected void |
addRestletRoutable()
|
void |
addSwitch(long sid)
|
void |
addTunnelPort(long sw,
int port)
|
java.util.List<ILinkDiscovery.LDUpdate> |
applyUpdates()
Updates concerning switch disconnect and port down are not processed. |
void |
clear()
|
void |
clearCurrentTopology()
Clears the current topology. |
boolean |
createNewInstance()
|
protected boolean |
createNewInstance(java.lang.String reason)
This function computes a new topology instance. |
protected void |
doFloodBDDP(long pinSwitch,
OFPacketIn pi,
FloodlightContext cntx)
The BDDP packets are forwarded out of all the ports out of an openflowdomain. |
void |
doMultiActionPacketOut(byte[] packetData,
IOFSwitch sw,
java.util.Set<java.lang.Integer> ports,
FloodlightContext cntx)
TODO This method must be moved to a layer below forwarding so that anyone can use it. |
protected IListener.Command |
dropFilter(long sw,
OFPacketIn pi,
FloodlightContext cntx)
If the packet-in switch port is disabled for all data traffic, then the packet will be dropped. |
NodePortTuple |
getAllowedIncomingBroadcastPort(long src,
int srcPort)
If the src broadcast domain port is not allowed for incoming broadcast, this method provides the topologically equivalent incoming broadcast-allowed src port. |
NodePortTuple |
getAllowedIncomingBroadcastPort(long src,
int srcPort,
boolean tunnelEnabled)
|
NodePortTuple |
getAllowedOutgoingBroadcastPort(long src,
int srcPort,
long dst,
int dstPort)
If the dst is not allowed by the higher-level topology, this method provides the topologically equivalent broadcast port. |
NodePortTuple |
getAllowedOutgoingBroadcastPort(long src,
int srcPort,
long dst,
int dstPort,
boolean tunnelEnabled)
|
java.util.Set<NodePortTuple> |
getBlockedPorts()
Returns a set of blocked ports. |
java.util.Set<NodePortTuple> |
getBroadcastDomainPorts()
Gets the set of ports that belong to a broadcast domain. |
java.util.Set<java.lang.Integer> |
getBroadcastPorts(long targetSw,
long src,
int srcPort)
Get all the ports on the target switch (targetSw) on which a broadcast packet must be sent from a host whose attachment point is on switch port (src, srcPort). |
java.util.Set<java.lang.Integer> |
getBroadcastPorts(long targetSw,
long src,
int srcPort,
boolean tunnelEnabled)
Get all the ports on the target switch (targetSw) on which a broadcast packet must be sent from a host whose attachment point is on switch port (src, srcPort). |
TopologyInstance |
getCurrentInstance()
|
TopologyInstance |
getCurrentInstance(boolean tunnelEnabled)
|
NodePortTuple |
getIncomingSwitchPort(long src,
int srcPort,
long dst,
int dstPort)
|
NodePortTuple |
getIncomingSwitchPort(long src,
int srcPort,
long dst,
int dstPort,
boolean tunnelEnabled)
|
long |
getL2DomainId(long switchId)
Returns the identifier of the L2 domain of a given switch. |
long |
getL2DomainId(long switchId,
boolean tunnelEnabled)
|
java.util.Date |
getLastUpdateTime()
|
java.util.Collection<java.lang.Class<? extends IFloodlightService>> |
getModuleDependencies()
Get a list of Modules that this module depends on. |
java.util.Collection<java.lang.Class<? extends IFloodlightService>> |
getModuleServices()
Return the list of interfaces that this module implements. |
java.lang.String |
getName()
The name assigned to this listener |
long |
getOpenflowDomainId(long switchId)
|
long |
getOpenflowDomainId(long switchId,
boolean tunnelEnabled)
|
NodePortTuple |
getOutgoingSwitchPort(long src,
int srcPort,
long dst,
int dstPort)
Get the proper outgoing switchport for a given pair of src-dst switchports. |
NodePortTuple |
getOutgoingSwitchPort(long src,
int srcPort,
long dst,
int dstPort,
boolean tunnelEnabled)
|
java.util.Map<NodePortTuple,java.util.Set<Link>> |
getPortBroadcastDomainLinks()
|
java.util.Set<java.lang.Integer> |
getPorts(long sw)
Switch methods |
protected java.util.Set<java.lang.Integer> |
getPortsToEliminateForBDDP(long sid)
Get the set of ports to eliminate for sending out BDDP. |
java.util.Set<java.lang.Integer> |
getPortsWithLinks(long sw)
Get all the ports connected to the switch |
java.util.Set<java.lang.Integer> |
getPortsWithLinks(long sw,
boolean tunnelEnabled)
Get all the ports connected to the switch |
Route |
getRoute(long src,
int srcPort,
long dst,
int dstPort,
long cookie)
Provides a route between srcPort on src and dstPort on dst. |
Route |
getRoute(long src,
int srcPort,
long dst,
int dstPort,
long cookie,
boolean tunnelEnabled)
Provides a route between srcPort on src and dstPort on dst. |
Route |
getRoute(long src,
long dst,
long cookie)
Provides a route between src and dst that allows tunnels. |
Route |
getRoute(long src,
long dst,
long cookie,
boolean tunnelEnabled)
Provides a route between src and dst, with option to allow or not allow tunnels in the path. |
java.util.ArrayList<Route> |
getRoutes(long srcDpid,
long dstDpid,
boolean tunnelEnabled)
return all routes, if available |
java.util.Map<java.lang.Class<? extends IFloodlightService>,IFloodlightService> |
getServiceImpls()
Instantiate (as needed) and return objects that implement each of the services exported by this module. |
java.util.Set<java.lang.Long> |
getSwitchesInOpenflowDomain(long switchDPID)
|
java.util.Set<java.lang.Long> |
getSwitchesInOpenflowDomain(long switchDPID,
boolean tunnelEnabled)
|
java.util.Map<NodePortTuple,java.util.Set<Link>> |
getSwitchPortLinks()
|
java.util.Map<java.lang.Long,java.util.Set<java.lang.Integer>> |
getSwitchPorts()
Getters. |
int |
getTopologyComputeInterval()
Get the time interval for the period topology updates, if any. |
java.util.Set<NodePortTuple> |
getTunnelPorts()
|
protected void |
handleMiscellaneousPeriodicEvents()
|
protected java.util.Set<NodePortTuple> |
identifyBroadcastDomainPorts()
We expect every switch port to have at most two links. |
void |
informListeners(java.util.List<ILinkDiscovery.LDUpdate> linkUpdates)
|
void |
init(FloodlightModuleContext context)
This is a hook for each module to do its internal initialization, e.g., call setService(context.getService("Service")) All module dependencies are resolved when this is called, but not every module is initialized. |
boolean |
inSameL2Domain(long switch1,
long switch2)
Checks if the two switches are in the same Layer 2 domain. |
boolean |
inSameL2Domain(long switch1,
long switch2,
boolean tunnelEnabled)
|
boolean |
inSameOpenflowDomain(long switch1,
long switch2)
Queries whether two switches are in the same cluster. |
boolean |
inSameOpenflowDomain(long switch1,
long switch2,
boolean tunnelEnabled)
|
boolean |
isAllowed(long sw,
int portId)
|
boolean |
isAllowed(long sw,
int portId,
boolean tunnelEnabled)
|
boolean |
isAttachmentPointPort(long switchid,
int port)
Query to determine if devices must be learned on a given switch port. |
boolean |
isAttachmentPointPort(long switchid,
int port,
boolean tunnelEnabled)
|
boolean |
isBroadcastDomainPort(long sw,
int port)
Checks if the switchport is a broadcast domain port or not. |
boolean |
isBroadcastDomainPort(long sw,
int port,
boolean tunnelEnabled)
|
boolean |
isCallbackOrderingPostreq(OFType type,
java.lang.String name)
Check if the module called name is a callback ordering post-requisite for this module. |
boolean |
isCallbackOrderingPrereq(OFType type,
java.lang.String name)
Check if the module called name is a callback ordering prerequisite for this module. |
boolean |
isConsistent(long oldSw,
int oldPort,
long newSw,
int newPort)
Checks if the new attachment point port is consistent with the old attachment point port. |
boolean |
isConsistent(long oldSw,
int oldPort,
long newSw,
int newPort,
boolean tunnelEnabled)
|
boolean |
isIncomingBroadcastAllowed(long sw,
int portId)
|
boolean |
isIncomingBroadcastAllowed(long sw,
int portId,
boolean tunnelEnabled)
|
boolean |
isInSameBroadcastDomain(long s1,
int p1,
long s2,
int p2)
Checks if the two switchports belong to the same broadcast domain. |
boolean |
isInSameBroadcastDomain(long s1,
int p1,
long s2,
int p2,
boolean tunnelEnabled)
|
void |
linkDiscoveryUpdate(ILinkDiscovery.LDUpdate update)
|
void |
linkDiscoveryUpdate(java.util.List<ILinkDiscovery.LDUpdate> updateList)
|
protected IListener.Command |
processPacketInMessage(IOFSwitch sw,
OFPacketIn pi,
FloodlightContext cntx)
|
IListener.Command |
receive(IOFSwitch sw,
OFMessage msg,
FloodlightContext cntx)
This is the method Floodlight uses to call listeners with OpenFlow messages |
protected void |
registerTopologyDebugEvents()
|
void |
removeLink(Link link)
|
void |
removeLink(long srcId,
int srcPort,
long dstId,
int dstPort)
|
void |
removeSwitch(long sid)
|
void |
removeTunnelPort(long sw,
int port)
|
boolean |
routeExists(long src,
long dst)
Check if a route exists between src and dst, including tunnel links in the path. |
boolean |
routeExists(long src,
long dst,
boolean tunnelEnabled)
Check if a route exists between src and dst, with option to have or not have tunnels as part of the path. |
void |
setTopologyComputeInterval(int time_ms)
Set the time interval for the period topology updates, if any. |
void |
startUp(FloodlightModuleContext context)
This is a hook for each module to do its external initializations, e.g., register for callbacks or query for state in other modules It is expected that this function will not block and that modules that want non-event driven CPU will spawn their own threads. |
boolean |
updateTopology()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static org.slf4j.Logger log
public static final java.lang.String MODULE_NAME
public static final java.lang.String CONTEXT_TUNNEL_ENABLED
protected java.util.Map<java.lang.Long,java.util.Set<java.lang.Integer>> switchPorts
protected java.util.Map<NodePortTuple,java.util.Set<Link>> switchPortLinks
protected java.util.Map<NodePortTuple,java.util.Set<Link>> directLinks
protected java.util.Map<NodePortTuple,java.util.Set<Link>> portBroadcastDomainLinks
protected java.util.Set<NodePortTuple> tunnelPorts
protected ILinkDiscoveryService linkDiscovery
protected IThreadPoolService threadPool
protected IFloodlightProviderService floodlightProvider
protected IRestApiService restApi
protected IDebugCounterService debugCounters
protected java.util.ArrayList<ITopologyListener> topologyAware
protected java.util.concurrent.BlockingQueue<ILinkDiscovery.LDUpdate> ldUpdates
protected TopologyInstance currentInstance
protected TopologyInstance currentInstanceWithoutTunnels
protected SingletonTask newInstanceTask
protected boolean linksUpdated
protected boolean dtLinksUpdated
protected boolean tunnelPortsUpdated
protected int TOPOLOGY_COMPUTE_INTERVAL_MS
protected static final java.lang.String PACKAGE
protected IDebugCounter ctrIncoming
protected IDebugEventService debugEvents
protected IEventUpdater<TopologyManager.TopologyEvent> evTopology
Constructor Detail |
---|
public TopologyManager()
Method Detail |
---|
public int getTopologyComputeInterval()
public void setTopologyComputeInterval(int time_ms)
protected void handleMiscellaneousPeriodicEvents()
public boolean updateTopology()
public void linkDiscoveryUpdate(java.util.List<ILinkDiscovery.LDUpdate> updateList)
linkDiscoveryUpdate
in interface ILinkDiscoveryListener
public void linkDiscoveryUpdate(ILinkDiscovery.LDUpdate update)
linkDiscoveryUpdate
in interface ILinkDiscoveryListener
public java.util.Date getLastUpdateTime()
getLastUpdateTime
in interface ITopologyService
public void addListener(ITopologyListener listener)
addListener
in interface ITopologyService
public boolean isAttachmentPointPort(long switchid, int port)
ITopologyService
isAttachmentPointPort
in interface ITopologyService
public boolean isAttachmentPointPort(long switchid, int port, boolean tunnelEnabled)
isAttachmentPointPort
in interface ITopologyService
public long getOpenflowDomainId(long switchId)
getOpenflowDomainId
in interface ITopologyService
public long getOpenflowDomainId(long switchId, boolean tunnelEnabled)
getOpenflowDomainId
in interface ITopologyService
public long getL2DomainId(long switchId)
ITopologyService
getL2DomainId
in interface ITopologyService
switchId
- The DPID of the switch in long form
public long getL2DomainId(long switchId, boolean tunnelEnabled)
getL2DomainId
in interface ITopologyService
public boolean inSameOpenflowDomain(long switch1, long switch2)
ITopologyService
inSameOpenflowDomain
in interface ITopologyService
public boolean inSameOpenflowDomain(long switch1, long switch2, boolean tunnelEnabled)
inSameOpenflowDomain
in interface ITopologyService
public boolean isAllowed(long sw, int portId)
isAllowed
in interface ITopologyService
public boolean isAllowed(long sw, int portId, boolean tunnelEnabled)
isAllowed
in interface ITopologyService
public boolean isIncomingBroadcastAllowed(long sw, int portId)
isIncomingBroadcastAllowed
in interface ITopologyService
public boolean isIncomingBroadcastAllowed(long sw, int portId, boolean tunnelEnabled)
isIncomingBroadcastAllowed
in interface ITopologyService
public java.util.Set<java.lang.Integer> getPortsWithLinks(long sw)
getPortsWithLinks
in interface ITopologyService
sw
- The switch DPID in long
public java.util.Set<java.lang.Integer> getPortsWithLinks(long sw, boolean tunnelEnabled)
getPortsWithLinks
in interface ITopologyService
public java.util.Set<java.lang.Integer> getBroadcastPorts(long targetSw, long src, int srcPort)
getBroadcastPorts
in interface ITopologyService
public java.util.Set<java.lang.Integer> getBroadcastPorts(long targetSw, long src, int srcPort, boolean tunnelEnabled)
getBroadcastPorts
in interface ITopologyService
public NodePortTuple getOutgoingSwitchPort(long src, int srcPort, long dst, int dstPort)
ITopologyService
getOutgoingSwitchPort
in interface ITopologyService
public NodePortTuple getOutgoingSwitchPort(long src, int srcPort, long dst, int dstPort, boolean tunnelEnabled)
getOutgoingSwitchPort
in interface ITopologyService
public NodePortTuple getIncomingSwitchPort(long src, int srcPort, long dst, int dstPort)
getIncomingSwitchPort
in interface ITopologyService
public NodePortTuple getIncomingSwitchPort(long src, int srcPort, long dst, int dstPort, boolean tunnelEnabled)
getIncomingSwitchPort
in interface ITopologyService
public boolean isInSameBroadcastDomain(long s1, int p1, long s2, int p2)
isInSameBroadcastDomain
in interface ITopologyService
public boolean isInSameBroadcastDomain(long s1, int p1, long s2, int p2, boolean tunnelEnabled)
isInSameBroadcastDomain
in interface ITopologyService
public boolean isBroadcastDomainPort(long sw, int port)
isBroadcastDomainPort
in interface ITopologyService
public boolean isBroadcastDomainPort(long sw, int port, boolean tunnelEnabled)
isBroadcastDomainPort
in interface ITopologyService
public boolean isConsistent(long oldSw, int oldPort, long newSw, int newPort)
isConsistent
in interface ITopologyService
public boolean isConsistent(long oldSw, int oldPort, long newSw, int newPort, boolean tunnelEnabled)
isConsistent
in interface ITopologyService
public boolean inSameL2Domain(long switch1, long switch2)
inSameL2Domain
in interface ITopologyService
public boolean inSameL2Domain(long switch1, long switch2, boolean tunnelEnabled)
inSameL2Domain
in interface ITopologyService
public NodePortTuple getAllowedOutgoingBroadcastPort(long src, int srcPort, long dst, int dstPort)
ITopologyService
getAllowedOutgoingBroadcastPort
in interface ITopologyService
public NodePortTuple getAllowedOutgoingBroadcastPort(long src, int srcPort, long dst, int dstPort, boolean tunnelEnabled)
getAllowedOutgoingBroadcastPort
in interface ITopologyService
public NodePortTuple getAllowedIncomingBroadcastPort(long src, int srcPort)
ITopologyService
getAllowedIncomingBroadcastPort
in interface ITopologyService
public NodePortTuple getAllowedIncomingBroadcastPort(long src, int srcPort, boolean tunnelEnabled)
getAllowedIncomingBroadcastPort
in interface ITopologyService
public java.util.Set<java.lang.Long> getSwitchesInOpenflowDomain(long switchDPID)
getSwitchesInOpenflowDomain
in interface ITopologyService
public java.util.Set<java.lang.Long> getSwitchesInOpenflowDomain(long switchDPID, boolean tunnelEnabled)
getSwitchesInOpenflowDomain
in interface ITopologyService
public java.util.Set<NodePortTuple> getBroadcastDomainPorts()
ITopologyService
getBroadcastDomainPorts
in interface ITopologyService
public java.util.Set<NodePortTuple> getTunnelPorts()
getTunnelPorts
in interface ITopologyService
public java.util.Set<NodePortTuple> getBlockedPorts()
ITopologyService
getBlockedPorts
in interface ITopologyService
public Route getRoute(long src, long dst, long cookie)
IRoutingService
getRoute
in interface IRoutingService
src
- Source switch DPID.dst
- Destination switch DPID.cookie
- cookie (usage determined by implementation; ignored by topology instance now).public Route getRoute(long src, long dst, long cookie, boolean tunnelEnabled)
IRoutingService
getRoute
in interface IRoutingService
src
- Source switch DPID.dst
- Destination switch DPID.cookie
- cookie (usage determined by implementation; ignored by topology instance now).tunnelEnabled
- boolean option.public Route getRoute(long src, int srcPort, long dst, int dstPort, long cookie)
IRoutingService
getRoute
in interface IRoutingService
srcPort
- Source port on source switch.dstPort
- dstPort on Destination switch.cookie
- cookie (usage determined by implementation; ignored by topology instance now).public Route getRoute(long src, int srcPort, long dst, int dstPort, long cookie, boolean tunnelEnabled)
IRoutingService
getRoute
in interface IRoutingService
srcPort
- Source port on source switch.dstPort
- dstPort on Destination switch.cookie
- cookie (usage determined by implementation; ignored by topology instance now).tunnelEnabled
- boolean option.public boolean routeExists(long src, long dst)
IRoutingService
routeExists
in interface IRoutingService
public boolean routeExists(long src, long dst, boolean tunnelEnabled)
IRoutingService
routeExists
in interface IRoutingService
public java.util.ArrayList<Route> getRoutes(long srcDpid, long dstDpid, boolean tunnelEnabled)
IRoutingService
getRoutes
in interface IRoutingService
public java.lang.String getName()
IListener
getName
in interface IListener<OFType>
public boolean isCallbackOrderingPrereq(OFType type, java.lang.String name)
IListener
isCallbackOrderingPrereq
in interface IListener<OFType>
type
- the object type to which this appliesname
- the name of the module
public boolean isCallbackOrderingPostreq(OFType type, java.lang.String name)
IListener
isCallbackOrderingPostreq
in interface IListener<OFType>
type
- the object type to which this appliesname
- the name of the module
public IListener.Command receive(IOFSwitch sw, OFMessage msg, FloodlightContext cntx)
IOFMessageListener
receive
in interface IOFMessageListener
sw
- the OpenFlow switch that sent this messagemsg
- the messagecntx
- a Floodlight message context object you can use to pass
information between listeners
public java.util.Collection<java.lang.Class<? extends IFloodlightService>> getModuleServices()
IFloodlightModule
getModuleServices
in interface IFloodlightModule
public java.util.Map<java.lang.Class<? extends IFloodlightService>,IFloodlightService> getServiceImpls()
IFloodlightModule
getServiceImpls
in interface IFloodlightModule
public java.util.Collection<java.lang.Class<? extends IFloodlightService>> getModuleDependencies()
IFloodlightModule
getModuleDependencies
in interface IFloodlightModule
public void init(FloodlightModuleContext context) throws FloodlightModuleException
IFloodlightModule
init
in interface IFloodlightModule
FloodlightModuleException
protected void registerTopologyDebugEvents() throws FloodlightModuleException
FloodlightModuleException
public void startUp(FloodlightModuleContext context)
IFloodlightModule
startUp
in interface IFloodlightModule
protected void addRestletRoutable()
protected IListener.Command dropFilter(long sw, OFPacketIn pi, FloodlightContext cntx)
sw
- pi
- cntx
-
public void doMultiActionPacketOut(byte[] packetData, IOFSwitch sw, java.util.Set<java.lang.Integer> ports, FloodlightContext cntx)
packetData
- sw
- ports
- cntx
- protected java.util.Set<java.lang.Integer> getPortsToEliminateForBDDP(long sid)
sid
-
protected void doFloodBDDP(long pinSwitch, OFPacketIn pi, FloodlightContext cntx)
sw
- pi
- cntx
- protected IListener.Command processPacketInMessage(IOFSwitch sw, OFPacketIn pi, FloodlightContext cntx)
public java.util.List<ILinkDiscovery.LDUpdate> applyUpdates()
protected void addOrUpdateSwitch(long sw)
public void addTunnelPort(long sw, int port)
public void removeTunnelPort(long sw, int port)
public boolean createNewInstance()
protected boolean createNewInstance(java.lang.String reason)
protected java.util.Set<NodePortTuple> identifyBroadcastDomainPorts()
public void informListeners(java.util.List<ILinkDiscovery.LDUpdate> linkUpdates)
public void addSwitch(long sid)
public void removeSwitch(long sid)
protected void addOrUpdateTunnelLink(long srcId, int srcPort, long dstId, int dstPort)
public void addOrUpdateLink(long srcId, int srcPort, long dstId, int dstPort, ILinkDiscovery.LinkType type)
public void removeLink(Link link)
public void removeLink(long srcId, int srcPort, long dstId, int dstPort)
public void clear()
public void clearCurrentTopology()
public java.util.Map<java.lang.Long,java.util.Set<java.lang.Integer>> getSwitchPorts()
public java.util.Map<NodePortTuple,java.util.Set<Link>> getSwitchPortLinks()
public java.util.Map<NodePortTuple,java.util.Set<Link>> getPortBroadcastDomainLinks()
public TopologyInstance getCurrentInstance(boolean tunnelEnabled)
public TopologyInstance getCurrentInstance()
public java.util.Set<java.lang.Integer> getPorts(long sw)
getPorts
in interface ITopologyService
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |