Package | Description |
---|---|
com.net2plan.interfaces.networkDesign |
Provides a set of classes and interfaces for the network design tool.
|
com.net2plan.interfaces.networkDesign.dynamicSrgs | |
com.net2plan.interfaces.simulation |
Provides a set of classes for the online simulator tool.
|
com.net2plan.libraries |
Provides a set of useful libraries to develop algorithms and reports.
|
com.net2plan.research.niw.networkModel |
Modifier and Type | Method and Description |
---|---|
Node |
NetPlan.addNode(double xCoord,
double yCoord,
String name,
Map<String,String> attributes)
Adds a new node to the network.
|
Node |
Link.getDestinationNode()
Returns the link destination
Node . |
Node |
Demand.getEgressNode()
Returns the demand egress node.
|
Node |
Route.getEgressNode()
Returns the route egress node, which is the egress node if its associated demand
|
Node |
Route.getFirstAvailableNodeAfterFailures()
Returns the first node in the route that is in up state after all failures in the route.
|
Node |
Route.getFirstAvailableNodeBeforeFailures()
Returns the first node starting from the route ingress node that is in up state, and is immediatly before
a failed resource for this route.
|
Node |
Demand.getIngressNode()
Returns the demand ingress node.
|
Node |
MulticastTree.getIngressNode()
Returns the tree ingress
Node , that is, the one of the Multicast Demand . |
Node |
Route.getIngressNode()
Returns the route ingress node, which is the ingress node if its associated demand
|
Node |
MulticastDemand.getIngressNode()
Returns the demand ingress Returns the demand ingress
Node |
Node |
NetPlan.getNode(int index)
Returns the node with the given index.
|
Node |
NetPlan.getNodeByName(String name)
Returns the first node with the given name.
|
Node |
NetPlan.getNodeFromId(long uid)
Returns the node with the given unique identifier.
|
Node |
Link.getOriginNode()
Returns the link origin node.
|
Modifier and Type | Method and Description |
---|---|
static SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> |
NetPlan.computeUnicastCandidate11PathList(Map<Pair<Node,Node>,List<List<Link>>> cpl,
int disjointType)
Computes a list of disjoint path pairs for each node pair, using the paths in the input candidate path list given.
|
static SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> |
NetPlan.computeUnicastCandidate11PathList(Map<Pair<Node,Node>,List<List<Link>>> cpl,
int disjointType)
Computes a list of disjoint path pairs for each node pair, using the paths in the input candidate path list given.
|
SortedMap<Pair<Node,Node>,List<List<Link>>> |
NetPlan.computeUnicastCandidatePathList(DoubleMatrix1D linkCosts,
int K,
double maxLengthInKm,
int maxNumHops,
double maxPropDelayInMs,
double maxRouteCost,
double maxRouteCostFactorRespectToShortestPath,
double maxRouteCostRespectToShortestPath,
SortedSet<Pair<Node,Node>> nodePairs,
NetworkLayer... optionalLayerParameter)
Computes for all the node pairs, a candidate path list in the given layer, composed of the k shortest paths according with the options indicated below.
|
SortedMap<Pair<Node,Node>,List<List<Link>>> |
NetPlan.computeUnicastCandidatePathList(DoubleMatrix1D linkCosts,
int K,
double maxLengthInKm,
int maxNumHops,
double maxPropDelayInMs,
double maxRouteCost,
double maxRouteCostFactorRespectToShortestPath,
double maxRouteCostRespectToShortestPath,
SortedSet<Pair<Node,Node>> nodePairs,
NetworkLayer... optionalLayerParameter)
Computes for all the node pairs, a candidate path list in the given layer, composed of the k shortest paths according with the options indicated below.
|
SortedSet<Node> |
MulticastDemand.getEgressNodes()
Returns the
SortedSet of demand egress Nodes . |
Set<Node> |
MulticastTree.getEgressNodesReached()
Returns the subset of the egress nodes of the tree (i.e the ones of the associated multicast demand), that
are actually reached by the tree links, as an unmodifiable set
|
SortedSet<Node> |
Demand.getEndNodes()
Returns a non-modifiable set of two elements, with the demand end nodes
|
SortedSet<Node> |
NetPlan.getGlobalPlanningDomainNodes(String planningDomain)
Returns the network elements associated to the given planning domain, or null if the planning domain was not defined
|
Optional<Node> |
Resource.getHostNode()
Returns the host node of this resource
|
SortedSet<Node> |
Node.getInNeighbors(NetworkLayer... optionalLayerParameter)
Returns the nodes directly connected to this, with links ending in this node at the given layer.
|
SortedSet<Node> |
Node.getInNeighborsAllLayers()
Returns the nodes directly connected to this, with links ending in this node at any layer.
|
Triple<SortedMap<Demand,SortedSet<Link>>,SortedMap<Demand,SortedSet<Link>>,SortedMap<Pair<MulticastDemand,Node>,SortedSet<Link>>> |
Link.getLinksDownPropagationPotentiallyCarryingTrafficTraversingThisLink()
Returns the set of links in lower layers carry the traffic that traverses this link, before and after traversing it,
according to the routes/forwarding rules defined.
|
Triple<SortedMap<Demand,SortedSet<Link>>,SortedMap<Demand,SortedSet<Link>>,SortedMap<Pair<MulticastDemand,Node>,SortedSet<Link>>> |
Link.getLinksThisLayerPotentiallyCarryingTrafficTraversingThisLink()
Returns the set of links in this layer (including this) that carry the traffic that traverses this link, before and after traversing it,
according to the routes/forwarding rules defined.
|
SortedMap<Pair<MulticastDemand,Node>,InterLayerPropagationGraph.IPGNode> |
InterLayerPropagationGraph.getmDemandAndNode2VertexMap() |
SortedSet<Pair<MulticastDemand,Node>> |
InterLayerPropagationGraph.getMulticastDemandFlowsInGraph() |
List<Node> |
NetPlan.getNodeByNameAllNodes(String name)
Returns a list with all the nodes with the given name, or an empty list if none.
|
List<Node> |
NetPlan.getNodes()
Returns the array of nodes (i-th position, corresponds to index i).
|
SortedSet<Node> |
SharedRiskGroup.getNodes()
Returns the set of nodes associated to the SRG (fail, when the SRG is in failure state)
|
abstract SortedSet<Node> |
DynamicSrgImplementation.getNodes() |
SortedSet<Node> |
NetPlan.getNodesDown()
Returns the set of nodes that are down (iteration order corresponds to ascending order of indexes).
|
Set<Node> |
MulticastTree.getNodeSet()
Returns the set of nodes in the tree: those that are the initial or end node of a
link in the tree.
|
SortedSet<Node> |
NetPlan.getNodesUp()
Returns the set of nodes that are up (iteration order correspond to ascending order of indexes).
|
SortedSet<Node> |
Node.getOutNeighbors(NetworkLayer... optionalLayerParameter)
Returns the nodes directly connected to this, with links initiated in this node at the given layer.
|
SortedSet<Node> |
Node.getOutNeighborsAllLayers()
Returns the nodes directly connected to this, with links initiated in this node at any layer.
|
List<Node> |
Route.getSeqIntermediateNodes()
Returns the route sequence of traversed nodes, removing the origin and end node
|
List<Node> |
Route.getSeqNodes()
Returns the route sequence of traversed nodes (when a resource is traversed, the resource node is not added again as a traversal)
|
SortedSet<Node> |
NetPlan.getSiteNodes(String siteName)
Given a site name, returns the set of nodes associated to that site, or an empty set if none
|
SortedSet<Node> |
NetPlan.getTaggedNodes(String tag)
Returns the set of nodes with the given tag.
|
Modifier and Type | Method and Description |
---|---|
Demand |
NetPlan.addDemand(Node ingressNode,
Node egressNode,
double offeredTraffic,
Constants.RoutingType routingType,
Map<String,String> attributes,
NetworkLayer... optionalLayerParameter)
Adds a new traffic demand.
|
Pair<Demand,Demand> |
NetPlan.addDemandBidirectional(Node ingressNode,
Node egressNode,
double offeredTraffic,
Constants.RoutingType routingType,
Map<String,String> attributes,
NetworkLayer... optionalLayerParameter)
Adds two demands, one in each direction,.
|
Link |
NetPlan.addLink(Node originNode,
Node destinationNode,
double capacity,
double lengthInKm,
double propagationSpeedInKmPerSecond,
Map<String,String> attributes,
NetworkLayer... optionalLayerParameter)
Adds a new link.
|
Pair<Link,Link> |
NetPlan.addLinkBidirectional(Node originNode,
Node destinationNode,
double capacity,
double lengthInKm,
double propagationSpeedInKmPerSecond,
Map<String,String> attributes,
NetworkLayer... optionalLayerParameter)
Adds two links, one in each direction.
|
MulticastDemand |
NetPlan.addMulticastDemand(Node ingressNode,
Set<Node> egressNodes,
double offeredTraffic,
Map<String,String> attributes,
NetworkLayer... optionalLayerParameter)
Adds a new multicast traffic demand.
|
void |
SharedRiskGroup.addNode(Node node)
Adds a node to the SRG.
|
void |
Resource.attachToNode(Node node)
Attaches this resource, now dettached of other node, to a new indicated node.
|
NetworkLayer |
NetPlan.checkContiguousPath(List<Link> links,
NetworkLayer layer,
Node originNode,
Node destinationNode)
Checks that the input sequence of links belong to the same layer and follow a contiguous path.
|
Link |
MulticastTree.getIngressLinkOfNode(Node n)
|
SortedSet<Link> |
MulticastDemand.getLinksNoDownPropagationPotentiallyCarryingTraffic(Node egressNode)
Returns the set of links in this layer that could potentially carry traffic of this multicast demand,
when flowing from the origin node to the given egress node, according to the multicast trees defined.
|
SortedSet<Demand> |
NetPlan.getNodePairDemands(Node originNode,
Node destinationNode,
boolean returnDemandsInBothDirections,
NetworkLayer... optionalLayerParameter)
Gets the set of demands at the given layer from the input nodes (if
returnDemandsInBothDirections is true , also the reversed links are included). |
double |
NetPlan.getNodePairEuclideanDistance(Node originNode,
Node destinationNode)
Gets the Euclidean distance for a node pair.
|
double |
NetPlan.getNodePairHaversineDistanceInKm(Node originNode,
Node destinationNode)
Gets the Haversine distance for a node pair.
|
SortedSet<Link> |
NetPlan.getNodePairLinks(Node originNode,
Node destinationNode,
boolean returnLinksInBothDirections,
NetworkLayer... optionalLayerParameter)
Gets the set of links at the given layer from the given nodes (if
returnLinksInBothDirections is true , also the reversed links are included). |
SortedSet<Route> |
NetPlan.getNodePairRoutes(Node originNode,
Node destinationNode,
boolean returnRoutesInBothDirections,
NetworkLayer... optionalLayerParameter)
Gets the set of routes at the given layer from the given nodes (if
returnRoutesInBothDirections is true , also the reversed routes are included). |
Set<Link> |
MulticastTree.getOutputLinkOfNode(Node n)
|
List<Link> |
MulticastTree.getSeqLinksToEgressNode(Node egressNode)
Given an egress node, returns the unique sequence of tree links from the ingress node to it, or null if the egress
node is not part of the tree, or the node passed is not an egress node of the multicast demand.
|
boolean |
MulticastTree.isReachedEgressNode(Node n)
Returns true if the given node is a reached egress node of the multicast tree
|
void |
SharedRiskGroup.removeNode(Node n)
Removes a node from the set of nodes of the SRG.
|
Modifier and Type | Method and Description |
---|---|
MulticastDemand |
NetPlan.addMulticastDemand(Node ingressNode,
Set<Node> egressNodes,
double offeredTraffic,
Map<String,String> attributes,
NetworkLayer... optionalLayerParameter)
Adds a new multicast traffic demand.
|
Resource |
NetPlan.addResource(String type,
String name,
Optional<Node> hostNode,
double capacity,
String capacityMeasurementUnits,
Map<Resource,Double> capacityIOccupyInBaseResource,
double processingTimeToTraversingTrafficInMs,
Map<String,String> attributes)
Adds a new Resource to the network.
|
void |
NetPlan.addRoutesAndBackupRoutesFromCandidate11PathList(SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> cpl11,
NetworkLayer... optionalLayer)
For each demand in the map, adds a number of route pairs with the given paths, where each route pair has a primary route and one backup to it.
|
void |
NetPlan.addRoutesAndBackupRoutesFromCandidate11PathList(SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> cpl11,
NetworkLayer... optionalLayer)
For each demand in the map, adds a number of route pairs with the given paths, where each route pair has a primary route and one backup to it.
|
void |
NetPlan.addRoutesFromCandidatePathList(SortedMap<Pair<Node,Node>,List<List<Link>>> cpl,
NetworkLayer... optionalLayer)
Adds multiples routes for each demand of the given layer, using the paths in an input Candidate Path List.
|
void |
NetPlan.addRoutesFromCandidatePathList(SortedMap<Pair<Node,Node>,List<List<Link>>> cpl,
NetworkLayer... optionalLayer)
Adds multiples routes for each demand of the given layer, using the paths in an input Candidate Path List.
|
static SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> |
NetPlan.computeUnicastCandidate11PathList(Map<Pair<Node,Node>,List<List<Link>>> cpl,
int disjointType)
Computes a list of disjoint path pairs for each node pair, using the paths in the input candidate path list given.
|
static SortedMap<Pair<Node,Node>,List<Pair<List<Link>,List<Link>>>> |
NetPlan.computeUnicastCandidate11PathList(Map<Pair<Node,Node>,List<List<Link>>> cpl,
int disjointType)
Computes a list of disjoint path pairs for each node pair, using the paths in the input candidate path list given.
|
SortedMap<Pair<Node,Node>,List<List<Link>>> |
NetPlan.computeUnicastCandidatePathList(DoubleMatrix1D linkCosts,
int K,
double maxLengthInKm,
int maxNumHops,
double maxPropDelayInMs,
double maxRouteCost,
double maxRouteCostFactorRespectToShortestPath,
double maxRouteCostRespectToShortestPath,
SortedSet<Pair<Node,Node>> nodePairs,
NetworkLayer... optionalLayerParameter)
Computes for all the node pairs, a candidate path list in the given layer, composed of the k shortest paths according with the options indicated below.
|
SortedMap<Pair<Node,Node>,List<List<Link>>> |
NetPlan.computeUnicastCandidatePathList(DoubleMatrix1D linkCosts,
int K,
double maxLengthInKm,
int maxNumHops,
double maxPropDelayInMs,
double maxRouteCost,
double maxRouteCostFactorRespectToShortestPath,
double maxRouteCostRespectToShortestPath,
SortedSet<Pair<Node,Node>> nodePairs,
NetworkLayer... optionalLayerParameter)
Computes for all the node pairs, a candidate path list in the given layer, composed of the k shortest paths according with the options indicated below.
|
NetPlan |
NetPlan.restrictDesign(SortedSet<Node> selectedNodes)
First computes the nodes to keep in the planning: these are the selected nodes,
the nodes involved in the demands/mDemands between them in this layer,
the nodes involved in the links at this layer that carry traffic between the selected nodes,
and the nodes associated to the links/demands at lower layers,
that carry the traffic between the selected nodes in the given layer, or carry traffic
at lower layers, of the links at this layer between the selected nodes.
|
void |
NetPlan.setLinksAndNodesFailureState(Collection<Link> linksToSetAsUp,
Collection<Link> linksToSetAsDown,
Collection<Node> nodesToSetAsUp,
Collection<Node> nodesToSetAsDown)
Changes the failure state of the links and updates the routes/trees (they do not carry traffic nor occupy capacity), and hop-by-hop routing
(no traffic is forwarded in links down)
|
void |
NetPlan.setLinksAndNodesFailureState(Collection<Link> linksToSetAsUp,
Collection<Link> linksToSetAsDown,
Collection<Node> nodesToSetAsUp,
Collection<Node> nodesToSetAsDown)
Changes the failure state of the links and updates the routes/trees (they do not carry traffic nor occupy capacity), and hop-by-hop routing
(no traffic is forwarded in links down)
|
Constructor and Description |
---|
InterLayerPropagationGraph(SortedSet<Demand> initialDemands,
SortedSet<Link> initialLinks,
SortedSet<Pair<MulticastDemand,Node>> initialMDemands,
boolean upWards) |
Modifier and Type | Method and Description |
---|---|
Node |
DynamicSrgAllBidiLinksTwoNodes.getA() |
Node |
DynamicSrgAllBidiLinksTwoNodes.getB() |
Modifier and Type | Method and Description |
---|---|
SortedSet<Node> |
DynamicSrgAllBidiLinksTwoNodes.getEndNodes() |
SortedSet<Node> |
DynamicSrgAllBidiLinksTwoNodes.getNodes() |
com.sun.tools.javac.util.Pair<Node,Node> |
DynamicSrgAllBidiLinksTwoNodes.getPair() |
com.sun.tools.javac.util.Pair<Node,Node> |
DynamicSrgAllBidiLinksTwoNodes.getPair() |
Modifier and Type | Field and Description |
---|---|
Node |
SimEvent.LinkAdd.destinationNode |
Node |
SimEvent.DemandAdd.egressNode |
Node |
SimEvent.DemandAdd.ingressNode |
Node |
SimEvent.LinkAdd.originNode |
Modifier and Type | Field and Description |
---|---|
Collection<Node> |
SimEvent.NodesAndLinksChangeFailureState.nodesToDown |
Collection<Node> |
SimEvent.NodesAndLinksChangeFailureState.nodesToUp |
Constructor and Description |
---|
DemandAdd(Node ingressNode,
Node egressNode,
NetworkLayer layer,
double offeredTraffic,
Constants.RoutingType routingType)
Default constructor.
|
LinkAdd(Node originNode,
Node destinationNode,
NetworkLayer layer,
double capacity,
double lengthInKm,
double propagationSpeedInKmPerSecond)
Default constructor.
|
Constructor and Description |
---|
NodesAndLinksChangeFailureState(Collection<Node> nodesToUp,
Collection<Node> nodesToDown,
Collection<Link> linksToUp,
Collection<Link> linksToDown)
Default constructor.
|
NodesAndLinksChangeFailureState(Collection<Node> nodesToUp,
Collection<Node> nodesToDown,
Collection<Link> linksToUp,
Collection<Link> linksToDown)
Default constructor.
|
Modifier and Type | Field and Description |
---|---|
Node |
WDMUtils.RSA.egressNode
The end node of the lightpath
|
Node |
WDMUtils.LightpathAdd.egressNode
The egress node of the lightpath
|
Node |
WDMUtils.RSA.ingressNode
The initial node of the lightpath
|
Node |
WDMUtils.LightpathAdd.ingressNode
The ingress node of the lightpath
|
Modifier and Type | Method and Description |
---|---|
static edu.uci.ics.jung.graph.Graph<Node,Link> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Pair<edu.uci.ics.jung.graph.Graph<Node,Link>,org.apache.commons.collections15.Transformer<Link,Double>> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Triple<DoubleMatrix2D,Map<Link,Set<Node>>,Map<Node,Set<Link>>> |
WirelessUtils.computeInterferenceMap(List<Node> nodes,
List<Link> links,
boolean simultaneousTxAndRxPossible)
Given a wireless network where a node cannot simultanously receive signals from two different nodes (or a collision would be produced and no signal is correctly received), this function computes the cases in which a node transmission interferes with a link reception,
and returns this information in several structures.
|
static Triple<DoubleMatrix2D,Map<Link,Set<Node>>,Map<Node,Set<Link>>> |
WirelessUtils.computeInterferenceMap(List<Node> nodes,
List<Link> links,
boolean simultaneousTxAndRxPossible)
Given a wireless network where a node cannot simultanously receive signals from two different nodes (or a collision would be produced and no signal is correctly received), this function computes the cases in which a node transmission interferes with a link reception,
and returns this information in several structures.
|
static List<Node> |
GraphUtils.convertSequenceOfLinksToSequenceOfNodes(List<Link> seqLinks)
Converts a given sequence of links to the corresponding sequence of nodes.
|
static List<Set<Node>> |
GraphUtils.getConnectedComponents(Collection<Node> nodes,
List<Link> links)
Returns the connected components of the given graph
|
static edu.uci.ics.jung.graph.Graph<Node,Link> |
GraphUtils.JUNGUtils.getGraphFromLinkMap(Collection<Node> nodes,
Collection<Link> links)
Obtains a
JUNG graph from a given set of links. |
Collection<Node> |
GraphTheoryMetrics.getNeighbors(Node node)
Returns the set of nodes reachable from a given node.
|
static Pair<Map<Pair<Link,Integer>,List<Route>>,Map<Node,List<Route>>> |
WDMUtils.getNetworkSlotOccupancyMap(NetPlan netPlan,
boolean countFailedLightpaths,
NetworkLayer... optionalLayerParameter)
Returns two maps, showing the frequency slots in the links and signal regenerator in the nodes occupancies.
|
List<Node> |
WDMUtils.RSA.getNodesWithFrequencySlotConversion()
Gets the list of nodes (in the same order as they are traversed) where frequency slot changes in the RSA.
|
List<Node> |
WDMUtils.RSA.getSignalRegenerationNodes()
Gets the list of nodes (in the same order as they are traversed) where a regenerator has been placed.
|
Modifier and Type | Method and Description |
---|---|
static edu.uci.ics.jung.graph.Graph<Node,Link> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Pair<edu.uci.ics.jung.graph.Graph<Node,Link>,org.apache.commons.collections15.Transformer<Link,Double>> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Quintuple<DoubleMatrix1D,Constants.RoutingCycleType,Double,Double,Double> |
GraphUtils.computeRoutingFundamentalVector(SortedMap<Link,Double> frs,
SortedMap<Node,SortedSet<Link>> outFrs,
Node ingressNode,
Node egressNode)
Computes the row of the fundamental matrix of the absorbing Markov chain in the current hop-by-hop routing, for the
given ingress node.
|
static Pair<Double,Double> |
GraphUtils.computeWorstCasePropagationDelayAndLengthInKmMsForLoopLess(SortedMap<Link,Double> frs,
SortedMap<Node,SortedSet<Link>> outFrs,
Node ingressNode,
Node egressNode)
Computes the worst case propagation delay in ms for the given forwarding rules, from the ingress to the
egress node (assuming there is traffic between the end nodes).
|
static List<List<Link>> |
GraphUtils.getAllLooplessShortestPaths(List<Node> nodes,
List<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap)
Returns all the loopless shortest paths between two nodes.
|
static List<Link> |
GraphUtils.getCapacitatedShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap,
SortedMap<Link,Double> linkSpareCapacityMap,
double capacityGoal) |
static List<List<Link>> |
GraphUtils.getKLooplessShortestPaths(List<Node> nodes,
List<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap,
int K,
double maxLengthInKm,
int maxNumHops,
double maxPropDelayInMs,
double maxRouteCost,
double maxRouteCostFactorRespectToShortestPath,
double maxRouteCostRespectToShortestPath)
Returns the K-loopless shortest paths between two nodes, satisfying some user-defined constraints.
|
static List<SortedSet<Link>> |
GraphUtils.getKMinimumCostMulticastTrees(NetworkLayer layer,
Node originNode,
SortedSet<Node> destinationNodes,
DoubleMatrix2D Aout_ne,
DoubleMatrix2D Ain_ne,
DoubleMatrix1D linkCost,
String solverName,
String solverLibraryName,
double maxSolverTimeInSecondsPerTree,
int K,
int maxCopyCapability,
double maxE2ELengthInKm,
int maxE2ENumHops,
double maxE2EPropDelayInMs,
double maxTreeCost,
double maxTreeCostFactorRespectToMinimumCostTree,
double maxTreeCostRespectToMinimumCostTree)
Returns the K-minimum cost multicast trees starting in the originNode and ending in the set destinationNodes, satisfying some user-defined constraints.
|
static List<Pair<List<NetworkElement>,Double>> |
GraphUtils.getKMinimumCostServiceChains(List<Link> links,
Node originNode,
Node destinationNode,
List<String> sequenceOfResourceTypesToTraverse,
DoubleMatrix1D linkCost,
Map<Resource,Double> resourceCost,
int K,
double maxCostServiceChain,
double maxLengthInKmPerSubpath,
int maxNumHopsPerSubpath,
double maxPropDelayInMsPerSubpath,
Map<Pair<Node,Node>,List<Pair<List<Link>,Double>>> cacheSubpathLists)
Returns the K minimum cost service chains between two nodes (summing costs of links and resources traversed), traversing a given set of resource types, satisfying some user-defined constraints.
|
static SortedSet<Link> |
GraphUtils.getMinimumCostMulticastTree(NetworkLayer layer,
DoubleMatrix2D Aout_ne,
DoubleMatrix2D Ain_ne,
DoubleMatrix1D linkCost,
Node originNode,
Set<Node> destinationNodes,
int maxCopyCapability,
int maxE2ENumHops,
double maxE2ELengthInKm,
double maxE2EPropDelayInMs,
String solverName,
String solverLibraryName,
double maxSolverTimeInSeconds,
String... solverParam) |
static Pair<List<NetworkElement>,Double> |
GraphUtils.getMinimumCostServiceChain(List<Link> links,
Node originNode,
Node destinationNode,
List<String> sequenceOfResourceTypesToTraverse,
DoubleMatrix1D linkCost,
Map<Resource,Double> resourceCost,
double maxLengthInKmPerSubpath,
int maxNumHopsPerSubpath,
double maxPropDelayInMsPerSubpath)
Returns the minimum cost service chain between two nodes (summing costs of links and resources traversed), traversing a given set of resource types, satisfying some user-defined constraints.
|
Collection<Node> |
GraphTheoryMetrics.getNeighbors(Node node)
Returns the set of nodes reachable from a given node.
|
static List<Link> |
GraphUtils.getShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap)
Obtains the sequence of links representing the (unidirectional) shortest path between two nodes.
|
static List<List<Link>> |
GraphUtils.getTwoLinkDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap)
Returns the shortest pair of link-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.getTwoMaximumLinkAndNodeDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap) |
static List<List<Link>> |
GraphUtils.getTwoNodeDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.JUNGUtils.getTwoNodeDisjointPaths(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
Modifier and Type | Method and Description |
---|---|
static edu.uci.ics.jung.graph.Graph<Node,Link> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Pair<edu.uci.ics.jung.graph.Graph<Node,Link>,org.apache.commons.collections15.Transformer<Link,Double>> |
GraphUtils.JUNGUtils.buildAuxiliaryNodeDisjointGraph(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Builds an auxiliary graph for the application of edge-disjoint shortest-path pair algorithms to node-disjoint problems.
|
static Triple<List<Demand>,List<Link>,List<Double>> |
IPUtils.computeECMPForwardinRules(List<Node> nodes,
List<Link> links,
List<Demand> demands,
DoubleMatrix1D linkWeightVector)
Computes the forwarding rules according to an OSPF/ECMP scheme, for the given demands.
|
static DoubleMatrix2D |
IPUtils.computeECMPRoutingTableMatrix_fte(List<Node> nodes,
List<Link> links,
DoubleMatrix1D linkWeightVector)
Computes the routing table matrix according to an OSPF/ECMP scheme.
|
static Triple<DoubleMatrix2D,Map<Link,Set<Node>>,Map<Node,Set<Link>>> |
WirelessUtils.computeInterferenceMap(List<Node> nodes,
List<Link> links,
boolean simultaneousTxAndRxPossible)
Given a wireless network where a node cannot simultanously receive signals from two different nodes (or a collision would be produced and no signal is correctly received), this function computes the cases in which a node transmission interferes with a link reception,
and returns this information in several structures.
|
static Map<List<Link>,WDMUtils.ModulationFormat> |
WDMUtils.computeModulationFormatPerPath(Map<Pair<Node,Node>,List<List<Link>>> cpl,
Set<WDMUtils.ModulationFormat> availableModulationFormats)
Returns the modulation format with the maximum spectral efficiency, while
the optical reach constraint is fulfilled, for each path in the list of candidate paths (
cpl ) |
static Map<List<Link>,WDMUtils.ModulationFormat> |
WDMUtils.computeModulationFormatPerPath(Map<Pair<Node,Node>,List<List<Link>>> cpl,
Set<WDMUtils.ModulationFormat> availableModulationFormats)
Returns the modulation format with the maximum spectral efficiency, while
the optical reach constraint is fulfilled, for each path in the list of candidate paths (
cpl ) |
static Quintuple<DoubleMatrix1D,Constants.RoutingCycleType,Double,Double,Double> |
GraphUtils.computeRoutingFundamentalVector(SortedMap<Link,Double> frs,
SortedMap<Node,SortedSet<Link>> outFrs,
Node ingressNode,
Node egressNode)
Computes the row of the fundamental matrix of the absorbing Markov chain in the current hop-by-hop routing, for the
given ingress node.
|
static Pair<Double,Double> |
GraphUtils.computeWorstCasePropagationDelayAndLengthInKmMsForLoopLess(SortedMap<Link,Double> frs,
SortedMap<Node,SortedSet<Link>> outFrs,
Node ingressNode,
Node egressNode)
Computes the worst case propagation delay in ms for the given forwarding rules, from the ingress to the
egress node (assuming there is traffic between the end nodes).
|
static void |
GraphUtils.convert_fte2xp(List<Node> nodes,
List<Link> links,
int numDemandsInLayer,
SortedSet<Demand> demandsToConvert,
DoubleMatrix1D h_d,
DoubleMatrix2D f_te,
List<Demand> d_p,
List<Double> x_p,
List<List<Link>> pathList)
Given a destination-based routing in the form f_te (fractions of traffic in a node, that is forwarded through each of its
output links), and an offered traffic to the network, it generates the resulting set of paths that are produced.
|
static DoubleMatrix2D |
GraphUtils.convert_fte2xte(List<Node> nodes,
List<Link> links,
SortedSet<Demand> demandsToConsider,
DoubleMatrix2D f_te,
DoubleMatrix1D h_d)
Given a destination-based routing in the form f_te (fractions of traffic in a node, that is forwarded through each of its output links), and an offered traffic to the network, it generates the resulting destination-based routing in the form x_te (amount of traffic targeted to node t, transmitted through link e).
|
static int |
GraphUtils.convert_xde2xp(List<Node> nodes,
List<Link> links,
Set<Demand> demandsToConvert,
DoubleMatrix2D x_de,
List<Demand> d_p,
List<Double> x_p,
List<List<Link>> pathList)
Converts the routing in the form x_de into a set of loopless routes, just for the indicated demands.
|
static DoubleMatrix2D |
GraphUtils.convert_xp2fte(List<Node> nodes,
List<Link> links,
List<Demand> demands,
List<Route> routes)
Given a set of traffic routes and their carried traffic returns a destination-based routing in the form fte (fractions of traffic in a node, that is forwarded through each of its output links).
|
static DoubleMatrix2D |
GraphUtils.convert_xp2xte(List<Node> nodes,
List<Link> links,
List<Demand> demands,
List<Route> routes)
Given a set of traffic routes and their carried traffic returns a destination-based routing in the form x_te (amount of traffic targeted to node t, transmitted through link e).
|
static DoubleMatrix2D |
GraphUtils.convert_xte2fte(List<Node> nodes,
List<Link> links,
DoubleMatrix2D x_te)
Given a destination-based routing in the form of an array x_te (amount of traffic targeted to node t, transmitted through link e), it returns the associated destination-based routing in the form of fractions f_te (fraction of the traffic targeted to node t that arrives (or is generated in) node a(e) (the initial node of link e), that is forwarded through link e).
|
static DoubleMatrix2D |
GraphUtils.getAdjacencyMatrix(List<Node> nodes,
List<? extends NetworkElement> linkMap)
Given a map of links, it computes the adjacency matrix.
|
static List<List<Link>> |
GraphUtils.getAllLooplessShortestPaths(List<Node> nodes,
List<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap)
Returns all the loopless shortest paths between two nodes.
|
static DoubleMatrix2D |
GraphUtils.getBidirectionalMatrix(List<Node> nodes,
List<Link> linkMap)
Given a map of links representing a bidirectional topology, with the same number of links on each direction for each node pair, it bundles into opposite link pairs and computes the bidirectional matrix.
|
static List<Link> |
GraphUtils.getCapacitatedShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap,
SortedMap<Link,Double> linkSpareCapacityMap,
double capacityGoal) |
static List<Set<Node>> |
GraphUtils.getConnectedComponents(Collection<Node> nodes,
List<Link> links)
Returns the connected components of the given graph
|
static edu.uci.ics.jung.graph.Graph<Node,Link> |
GraphUtils.JUNGUtils.getGraphFromLinkMap(Collection<Node> nodes,
Collection<Link> links)
Obtains a
JUNG graph from a given set of links. |
static DoubleMatrix2D |
GraphUtils.getIncidenceMatrix(List<Node> nodes,
List<? extends NetworkElement> elements)
Given a list of Network Elements, it computes the node-network element incidence matrix.
|
static DoubleMatrix2D |
GraphUtils.getIncomingIncidenceMatrix(List<Node> nodes,
List<? extends NetworkElement> elements)
Given a list of Network Element, it computes the node-network element incoming incidence matrix.
|
static List<List<Link>> |
GraphUtils.getKLooplessShortestPaths(List<Node> nodes,
List<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap,
int K,
double maxLengthInKm,
int maxNumHops,
double maxPropDelayInMs,
double maxRouteCost,
double maxRouteCostFactorRespectToShortestPath,
double maxRouteCostRespectToShortestPath)
Returns the K-loopless shortest paths between two nodes, satisfying some user-defined constraints.
|
static List<SortedSet<Link>> |
GraphUtils.getKMinimumCostMulticastTrees(NetworkLayer layer,
Node originNode,
SortedSet<Node> destinationNodes,
DoubleMatrix2D Aout_ne,
DoubleMatrix2D Ain_ne,
DoubleMatrix1D linkCost,
String solverName,
String solverLibraryName,
double maxSolverTimeInSecondsPerTree,
int K,
int maxCopyCapability,
double maxE2ELengthInKm,
int maxE2ENumHops,
double maxE2EPropDelayInMs,
double maxTreeCost,
double maxTreeCostFactorRespectToMinimumCostTree,
double maxTreeCostRespectToMinimumCostTree)
Returns the K-minimum cost multicast trees starting in the originNode and ending in the set destinationNodes, satisfying some user-defined constraints.
|
static List<Pair<List<NetworkElement>,Double>> |
GraphUtils.getKMinimumCostServiceChains(List<Link> links,
Node originNode,
Node destinationNode,
List<String> sequenceOfResourceTypesToTraverse,
DoubleMatrix1D linkCost,
Map<Resource,Double> resourceCost,
int K,
double maxCostServiceChain,
double maxLengthInKmPerSubpath,
int maxNumHopsPerSubpath,
double maxPropDelayInMsPerSubpath,
Map<Pair<Node,Node>,List<Pair<List<Link>,Double>>> cacheSubpathLists)
Returns the K minimum cost service chains between two nodes (summing costs of links and resources traversed), traversing a given set of resource types, satisfying some user-defined constraints.
|
static List<Pair<List<NetworkElement>,Double>> |
GraphUtils.getKMinimumCostServiceChains(List<Link> links,
Node originNode,
Node destinationNode,
List<String> sequenceOfResourceTypesToTraverse,
DoubleMatrix1D linkCost,
Map<Resource,Double> resourceCost,
int K,
double maxCostServiceChain,
double maxLengthInKmPerSubpath,
int maxNumHopsPerSubpath,
double maxPropDelayInMsPerSubpath,
Map<Pair<Node,Node>,List<Pair<List<Link>,Double>>> cacheSubpathLists)
Returns the K minimum cost service chains between two nodes (summing costs of links and resources traversed), traversing a given set of resource types, satisfying some user-defined constraints.
|
static SortedSet<Link> |
GraphUtils.getMinimumCostMulticastTree(NetworkLayer layer,
DoubleMatrix2D Aout_ne,
DoubleMatrix2D Ain_ne,
DoubleMatrix1D linkCost,
Node originNode,
Set<Node> destinationNodes,
int maxCopyCapability,
int maxE2ENumHops,
double maxE2ELengthInKm,
double maxE2EPropDelayInMs,
String solverName,
String solverLibraryName,
double maxSolverTimeInSeconds,
String... solverParam) |
static DoubleMatrix2D |
GraphUtils.getOutgoingIncidenceMatrix(List<Node> nodes,
List<? extends NetworkElement> elements)
Given a list of Network elements, it computes the node-network element outgoing incidence matrix.
|
static List<Link> |
GraphUtils.getShortestPath(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap)
Obtains the sequence of links representing the (unidirectional) shortest path between two nodes.
|
static List<List<Link>> |
GraphUtils.getTwoLinkDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
Map<Link,Double> linkCostMap)
Returns the shortest pair of link-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.getTwoMaximumLinkAndNodeDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap) |
static List<List<Link>> |
GraphUtils.getTwoNodeDisjointPaths(Collection<Node> nodes,
Collection<Link> links,
Node originNode,
Node destinationNode,
SortedMap<Link,Double> linkCostMap)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
static List<List<Link>> |
GraphUtils.JUNGUtils.getTwoNodeDisjointPaths(edu.uci.ics.jung.graph.Graph<Node,Link> graph,
org.apache.commons.collections15.Transformer<Link,Double> nev,
Node originNode,
Node destinationNode)
Returns the shortest pair of node-disjoint paths, where each item represents a path.
|
static boolean |
GraphUtils.isBidirectional(List<Node> nodes,
List<Link> links)
Checks whether the physical topology has the same number of links between each node pair in both directions (assuming multi-digraphs).
|
static boolean |
GraphUtils.isConnected(List<Node> nodes,
List<Link> links)
Check whether the physical topology is connected, that is, if it is possible to connect every node to each other, but only in a subset of nodes (subgraph).
|
static boolean |
GraphUtils.isSimple(List<Node> nodes,
List<Link> links)
Check whether the physical topology is simple, that is, if it has at most one unidirectional link from a node to each other.
|
static boolean |
GraphUtils.isWeightedBidirectional(List<Node> nodes,
List<? extends NetworkElement> elements,
DoubleMatrix1D linkCostMap)
Checks whether the physical topology has the same number of links/demands between each node pair in both directions (assuming multi-digraphs) and same weights per direction.
|
static DoubleMatrix2D |
GraphUtils.removeCyclesFrom_xte(List<Node> nodes,
List<Link> links,
DoubleMatrix2D trafficMatrix,
DoubleMatrix2D x_te,
String solverName,
String solverLibraryName,
double maxSolverTimeInSecondsPerDestination)
Removes open or closed cycles from the x_de routing matrix, for the given set of demands.
|
static String |
IPUtils.routingTableMatrixToString(List<Node> nodes,
List<Link> links,
DoubleMatrix2D f_te)
Outputs a given set of routing tables to a
String . |
Constructor and Description |
---|
LightpathAdd(Node ingressNode,
Node egressNode,
NetworkLayer layer,
double lineRateGbps)
Constructor to generate a new
LightpathAdd object. |
Constructor and Description |
---|
GraphTheoryMetrics(List<Node> nodes,
List<Link> links,
SortedMap<Link,Double> linkCostMap)
Default constructor
|
Modifier and Type | Method and Description |
---|---|
Node |
WNode.getNe() |
Copyright © 2018. All rights reserved.