| 
||||||||||
| 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 ILinkDiscoveryListenerpublic void linkDiscoveryUpdate(ILinkDiscovery.LDUpdate update)
linkDiscoveryUpdate in interface ILinkDiscoveryListenerpublic java.util.Date getLastUpdateTime()
getLastUpdateTime in interface ITopologyServicepublic 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 ITopologyServicepublic long getOpenflowDomainId(long switchId)
getOpenflowDomainId in interface ITopologyService
public long getOpenflowDomainId(long switchId,
                                boolean tunnelEnabled)
getOpenflowDomainId in interface ITopologyServicepublic long getL2DomainId(long switchId)
ITopologyService
getL2DomainId in interface ITopologyServiceswitchId - 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 ITopologyServicepublic java.util.Set<java.lang.Integer> getPortsWithLinks(long sw)
getPortsWithLinks in interface ITopologyServicesw - 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 ITopologyServicepublic 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 ITopologyServicepublic java.util.Set<NodePortTuple> getBroadcastDomainPorts()
ITopologyService
getBroadcastDomainPorts in interface ITopologyServicepublic java.util.Set<NodePortTuple> getTunnelPorts()
getTunnelPorts in interface ITopologyServicepublic java.util.Set<NodePortTuple> getBlockedPorts()
ITopologyService
getBlockedPorts in interface ITopologyService
public Route getRoute(long src,
                      long dst,
                      long cookie)
IRoutingService
getRoute in interface IRoutingServicesrc - 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 IRoutingServicesrc - 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 IRoutingServicesrcPort - 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 IRoutingServicesrcPort - 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 IRoutingServicepublic 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 IOFMessageListenersw - 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 IFloodlightModulepublic java.util.Map<java.lang.Class<? extends IFloodlightService>,IFloodlightService> getServiceImpls()
IFloodlightModule
getServiceImpls in interface IFloodlightModulepublic 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 IFloodlightModuleFloodlightModuleException
protected void registerTopologyDebugEvents()
                                    throws FloodlightModuleException
FloodlightModuleExceptionpublic void startUp(FloodlightModuleContext context)
IFloodlightModule
startUp in interface IFloodlightModuleprotected 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 | |||||||||