Class DistributedTopologyStore

  • All Implemented Interfaces:
    org.onosproject.net.topology.PathAdminService, org.onosproject.net.topology.TopologyStore, org.onosproject.store.Store<org.onosproject.net.topology.TopologyEvent,​org.onosproject.net.topology.TopologyStoreDelegate>

    public class DistributedTopologyStore
    extends org.onosproject.store.AbstractStore<org.onosproject.net.topology.TopologyEvent,​org.onosproject.net.topology.TopologyStoreDelegate>
    implements org.onosproject.net.topology.TopologyStore, org.onosproject.net.topology.PathAdminService
    Manages inventory of topology snapshots using trivial in-memory structures implementation.

    Note: This component is not distributed per-se. It runs on every instance and feeds off of other distributed stores.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.onosproject.store.service.LogicalClockService clockService  
      protected org.onosproject.cfg.ComponentConfigService configService  
      protected org.onosproject.net.device.DeviceService deviceService  
      protected org.onosproject.mastership.MastershipService mastershipService  
      protected org.onosproject.store.service.StorageService storageService  
      • Fields inherited from class org.onosproject.store.AbstractStore

        delegate
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void activate​(org.osgi.service.component.ComponentContext context)  
      org.onosproject.net.topology.Topology currentTopology()  
      protected void deactivate()  
      org.onosproject.net.topology.TopologyCluster getCluster​(org.onosproject.net.topology.Topology topology, org.onosproject.net.topology.ClusterId clusterId)  
      java.util.Set<org.onosproject.net.DeviceId> getClusterDevices​(org.onosproject.net.topology.Topology topology, org.onosproject.net.topology.TopologyCluster cluster)  
      java.util.Set<org.onosproject.net.Link> getClusterLinks​(org.onosproject.net.topology.Topology topology, org.onosproject.net.topology.TopologyCluster cluster)  
      java.util.Set<org.onosproject.net.topology.TopologyCluster> getClusters​(org.onosproject.net.topology.Topology topology)  
      java.util.Set<org.onosproject.net.DisjointPath> getDisjointPaths​(org.onosproject.net.topology.Topology topology, org.onosproject.net.DeviceId src, org.onosproject.net.DeviceId dst)  
      java.util.Set<org.onosproject.net.DisjointPath> getDisjointPaths​(org.onosproject.net.topology.Topology topology, org.onosproject.net.DeviceId src, org.onosproject.net.DeviceId dst, java.util.Map<org.onosproject.net.Link,​java.lang.Object> riskProfile)  
      java.util.Set<org.onosproject.net.DisjointPath> getDisjointPaths​(org.onosproject.net.topology.Topology topology, org.onosproject.net.DeviceId src, org.onosproject.net.DeviceId dst, org.onosproject.net.topology.LinkWeigher weigher)  
      java.util.Set<org.onosproject.net.DisjointPath> getDisjointPaths​(org.onosproject.net.topology.Topology topology, org.onosproject.net.DeviceId src, org.onosproject.net.DeviceId dst, org.onosproject.net.topology.LinkWeigher weigher, java.util.Map<org.onosproject.net.Link,​java.lang.Object> riskProfile)  
      org.onosproject.net.topology.TopologyGraph getGraph​(org.onosproject.net.topology.Topology topology)  
      java.util.stream.Stream<org.onosproject.net.Path> getKShortestPaths​(org.onosproject.net.topology.Topology topology, org.onosproject.net.DeviceId src, org.onosproject.net.DeviceId dst, org.onosproject.net.topology.LinkWeigher weigher)  
      java.util.Set<org.onosproject.net.Path> getKShortestPaths​(org.onosproject.net.topology.Topology topology, org.onosproject.net.DeviceId src, org.onosproject.net.DeviceId dst, org.onosproject.net.topology.LinkWeigher weigher, int maxPaths)  
      java.util.Set<org.onosproject.net.Path> getPaths​(org.onosproject.net.topology.Topology topology, org.onosproject.net.DeviceId src, org.onosproject.net.DeviceId dst)  
      java.util.Set<org.onosproject.net.Path> getPaths​(org.onosproject.net.topology.Topology topology, org.onosproject.net.DeviceId src, org.onosproject.net.DeviceId dst, org.onosproject.net.topology.LinkWeigher weigher)  
      boolean isBroadcastPoint​(org.onosproject.net.topology.Topology topology, org.onosproject.net.ConnectPoint connectPoint)  
      boolean isInfrastructure​(org.onosproject.net.topology.Topology topology, org.onosproject.net.ConnectPoint connectPoint)  
      boolean isLatest​(org.onosproject.net.topology.Topology topology)  
      protected void modified​(org.osgi.service.component.ComponentContext context)  
      void setDefaultGraphPathSearch​(org.onlab.graph.GraphPathSearch<org.onosproject.net.topology.TopologyVertex,​org.onosproject.net.topology.TopologyEdge> graphPathSearch)  
      void setDefaultLinkWeigher​(org.onosproject.net.topology.LinkWeigher linkWeigher)  
      org.onosproject.net.topology.TopologyEvent updateTopology​(org.onosproject.net.provider.ProviderId providerId, org.onosproject.net.topology.GraphDescription graphDescription, java.util.List<org.onosproject.event.Event> reasons)  
      • Methods inherited from class org.onosproject.store.AbstractStore

        hasDelegate, notifyDelegate, notifyDelegate, setDelegate, unsetDelegate
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.onosproject.store.Store

        hasDelegate, setDelegate, unsetDelegate
    • Field Detail

      • storageService

        protected org.onosproject.store.service.StorageService storageService
      • clockService

        protected org.onosproject.store.service.LogicalClockService clockService
      • mastershipService

        protected org.onosproject.mastership.MastershipService mastershipService
      • configService

        protected org.onosproject.cfg.ComponentConfigService configService
      • deviceService

        protected org.onosproject.net.device.DeviceService deviceService
    • Constructor Detail

      • DistributedTopologyStore

        public DistributedTopologyStore()
    • Method Detail

      • activate

        protected void activate​(org.osgi.service.component.ComponentContext context)
      • deactivate

        protected void deactivate()
      • modified

        protected void modified​(org.osgi.service.component.ComponentContext context)
      • currentTopology

        public org.onosproject.net.topology.Topology currentTopology()
        Specified by:
        currentTopology in interface org.onosproject.net.topology.TopologyStore
      • isLatest

        public boolean isLatest​(org.onosproject.net.topology.Topology topology)
        Specified by:
        isLatest in interface org.onosproject.net.topology.TopologyStore
      • getGraph

        public org.onosproject.net.topology.TopologyGraph getGraph​(org.onosproject.net.topology.Topology topology)
        Specified by:
        getGraph in interface org.onosproject.net.topology.TopologyStore
      • getClusters

        public java.util.Set<org.onosproject.net.topology.TopologyCluster> getClusters​(org.onosproject.net.topology.Topology topology)
        Specified by:
        getClusters in interface org.onosproject.net.topology.TopologyStore
      • getCluster

        public org.onosproject.net.topology.TopologyCluster getCluster​(org.onosproject.net.topology.Topology topology,
                                                                       org.onosproject.net.topology.ClusterId clusterId)
        Specified by:
        getCluster in interface org.onosproject.net.topology.TopologyStore
      • getClusterDevices

        public java.util.Set<org.onosproject.net.DeviceId> getClusterDevices​(org.onosproject.net.topology.Topology topology,
                                                                             org.onosproject.net.topology.TopologyCluster cluster)
        Specified by:
        getClusterDevices in interface org.onosproject.net.topology.TopologyStore
      • getClusterLinks

        public java.util.Set<org.onosproject.net.Link> getClusterLinks​(org.onosproject.net.topology.Topology topology,
                                                                       org.onosproject.net.topology.TopologyCluster cluster)
        Specified by:
        getClusterLinks in interface org.onosproject.net.topology.TopologyStore
      • getPaths

        public java.util.Set<org.onosproject.net.Path> getPaths​(org.onosproject.net.topology.Topology topology,
                                                                org.onosproject.net.DeviceId src,
                                                                org.onosproject.net.DeviceId dst)
        Specified by:
        getPaths in interface org.onosproject.net.topology.TopologyStore
      • getPaths

        public java.util.Set<org.onosproject.net.Path> getPaths​(org.onosproject.net.topology.Topology topology,
                                                                org.onosproject.net.DeviceId src,
                                                                org.onosproject.net.DeviceId dst,
                                                                org.onosproject.net.topology.LinkWeigher weigher)
        Specified by:
        getPaths in interface org.onosproject.net.topology.TopologyStore
      • getKShortestPaths

        public java.util.Set<org.onosproject.net.Path> getKShortestPaths​(org.onosproject.net.topology.Topology topology,
                                                                         org.onosproject.net.DeviceId src,
                                                                         org.onosproject.net.DeviceId dst,
                                                                         org.onosproject.net.topology.LinkWeigher weigher,
                                                                         int maxPaths)
        Specified by:
        getKShortestPaths in interface org.onosproject.net.topology.TopologyStore
      • getKShortestPaths

        public java.util.stream.Stream<org.onosproject.net.Path> getKShortestPaths​(org.onosproject.net.topology.Topology topology,
                                                                                   org.onosproject.net.DeviceId src,
                                                                                   org.onosproject.net.DeviceId dst,
                                                                                   org.onosproject.net.topology.LinkWeigher weigher)
        Specified by:
        getKShortestPaths in interface org.onosproject.net.topology.TopologyStore
      • getDisjointPaths

        public java.util.Set<org.onosproject.net.DisjointPath> getDisjointPaths​(org.onosproject.net.topology.Topology topology,
                                                                                org.onosproject.net.DeviceId src,
                                                                                org.onosproject.net.DeviceId dst)
        Specified by:
        getDisjointPaths in interface org.onosproject.net.topology.TopologyStore
      • getDisjointPaths

        public java.util.Set<org.onosproject.net.DisjointPath> getDisjointPaths​(org.onosproject.net.topology.Topology topology,
                                                                                org.onosproject.net.DeviceId src,
                                                                                org.onosproject.net.DeviceId dst,
                                                                                org.onosproject.net.topology.LinkWeigher weigher)
        Specified by:
        getDisjointPaths in interface org.onosproject.net.topology.TopologyStore
      • getDisjointPaths

        public java.util.Set<org.onosproject.net.DisjointPath> getDisjointPaths​(org.onosproject.net.topology.Topology topology,
                                                                                org.onosproject.net.DeviceId src,
                                                                                org.onosproject.net.DeviceId dst,
                                                                                java.util.Map<org.onosproject.net.Link,​java.lang.Object> riskProfile)
        Specified by:
        getDisjointPaths in interface org.onosproject.net.topology.TopologyStore
      • getDisjointPaths

        public java.util.Set<org.onosproject.net.DisjointPath> getDisjointPaths​(org.onosproject.net.topology.Topology topology,
                                                                                org.onosproject.net.DeviceId src,
                                                                                org.onosproject.net.DeviceId dst,
                                                                                org.onosproject.net.topology.LinkWeigher weigher,
                                                                                java.util.Map<org.onosproject.net.Link,​java.lang.Object> riskProfile)
        Specified by:
        getDisjointPaths in interface org.onosproject.net.topology.TopologyStore
      • isInfrastructure

        public boolean isInfrastructure​(org.onosproject.net.topology.Topology topology,
                                        org.onosproject.net.ConnectPoint connectPoint)
        Specified by:
        isInfrastructure in interface org.onosproject.net.topology.TopologyStore
      • isBroadcastPoint

        public boolean isBroadcastPoint​(org.onosproject.net.topology.Topology topology,
                                        org.onosproject.net.ConnectPoint connectPoint)
        Specified by:
        isBroadcastPoint in interface org.onosproject.net.topology.TopologyStore
      • updateTopology

        public org.onosproject.net.topology.TopologyEvent updateTopology​(org.onosproject.net.provider.ProviderId providerId,
                                                                         org.onosproject.net.topology.GraphDescription graphDescription,
                                                                         java.util.List<org.onosproject.event.Event> reasons)
        Specified by:
        updateTopology in interface org.onosproject.net.topology.TopologyStore
      • setDefaultLinkWeigher

        public void setDefaultLinkWeigher​(org.onosproject.net.topology.LinkWeigher linkWeigher)
        Specified by:
        setDefaultLinkWeigher in interface org.onosproject.net.topology.PathAdminService
      • setDefaultGraphPathSearch

        public void setDefaultGraphPathSearch​(org.onlab.graph.GraphPathSearch<org.onosproject.net.topology.TopologyVertex,​org.onosproject.net.topology.TopologyEdge> graphPathSearch)
        Specified by:
        setDefaultGraphPathSearch in interface org.onosproject.net.topology.PathAdminService