public class Offline_ipOverWdm_routingSpectrumAndModulationAssignmentHeuristicNotGrooming extends Object implements com.net2plan.interfaces.networkDesign.IAlgorithm
The input design typically has two layers (IP and WDM layers), according to the typical conventions in WDMUtils
.
If the design has one single layer, it is first converted into a two-layer design: WDM layer taking the links (fibers) with no demands,
IP layer taking the traffic demands, without IP links. Any previous routes are removed.
The WDM layer is compatible with WDMUtils
Net2Plan
library usual assumptions:
Each lightpath (primary or backup) produced by the design is returned as a Route
object.
Each lightpath starts and ends in a transponder. The user is able to define a set of available transpoder types, so the design can create lightpaths using any combination of them. The information user-defined per transponder is:
We assume that all the fibers use the same wavelength grid, composed of a user-defined number of frequency slots. The user can also select a limit in the maximum propagation delay of a lightpath.
The output design consists in the set of lightpaths to establish, in the 1+1 case also with a 1+1 lightpath each.
Each lightpath is characterized by the transponder type used (which sets its line rate and number of occupied slots in the
traversed fibers), the particular set of contiguous frequency slots occupied, and the set of signal regeneration points (if any).
This information is stored in the Route
object using the regular methods in WDMUTils,
and can be retrieved in the same form (e.g. by a report showing the WDM network information).
If a feasible solution is not found (one where all the demands are satisfied with the given constraints), a message is shown.
The user can choose among three possibilities for designing the network:
This algorithm is quite general, and fits a number of use cases designing WDM networks, for instance:
The algorithm is based on a heuristic. Initially, at most k
paths are selected for each demand and transponder type.
Then, in each iteration, the algorithm first orders the demands in descending order according to the traffic pending
to be carried (if single-SRG failure tolerance is chosen, this is the average among all the
states -no failure and single SRG failure). Then, all the transponder types and possible routes (or SRG-disjoint 1+1 pairs in the
1+1 case) are attempted for that demand, using a first-fit approach for the slots. If an RSA is found for more than one
transponder and route, the one chosen is first, the one with best performance metric, and among them, the first transponder
according to the order in which the user put it in the input parameter, and among them the shortest one in km .
The performance metric used is the amount of extra traffic carried if the lightpath is established, divided by the lightpath cost,
summing the transponder cost, and the cost of the signal regenerators if any.
The details of the algorithm will be provided in a publication currently under elaboration.
|
Constructor and Description |
---|
Offline_ipOverWdm_routingSpectrumAndModulationAssignmentHeuristicNotGrooming() |
Modifier and Type | Method and Description |
---|---|
String |
executeAlgorithm(com.net2plan.interfaces.networkDesign.NetPlan netPlan,
Map<String,String> algorithmParameters,
Map<String,String> net2planParameters) |
String |
getDescription() |
List<com.net2plan.utils.Triple<String,String,String>> |
getParameters() |
public Offline_ipOverWdm_routingSpectrumAndModulationAssignmentHeuristicNotGrooming()
public String executeAlgorithm(com.net2plan.interfaces.networkDesign.NetPlan netPlan, Map<String,String> algorithmParameters, Map<String,String> net2planParameters)
executeAlgorithm
in interface com.net2plan.interfaces.networkDesign.IAlgorithm
public String getDescription()
getDescription
in interface com.net2plan.interfaces.networkDesign.IAlgorithm
getDescription
in interface com.net2plan.internal.IExternal
public List<com.net2plan.utils.Triple<String,String,String>> getParameters()
getParameters
in interface com.net2plan.interfaces.networkDesign.IAlgorithm
getParameters
in interface com.net2plan.internal.IExternal
Copyright © 2018. All rights reserved.