public class WServiceChainRequest extends WAbstractNetworkElement
Instances of this class are service chain requests in the IP layer. Service chain requests can be realized by one or more service chains, so each service chain should start in one among a set of given input nodes, and end in one out of the given output nodes, and traverse in its path VNF instances, so that the sequence of types of VNFs to traverse is specified in the request.
The service chain request is also characterized by the total amount of traffic offered by the initial node.
Every time that the traffic traverses a VNF, its volume can change (e.g. traffic can be compressed or decompressed), and the user can specify the compressing/decompressing ratios using so called expansion factors. The expansion factor of a VNF is the output traffic of a given service chain, respect to the traffic at the ORIGIN of the service chain (not at the origin of the VNF).
Also, the user can specify the maximum acceptable latency limit, from the origin node, to (i) the input of each VNF, and (ii) the maximum latency to the flow end node.
Service chains can be tagged to be upstream or downstream (user-defined tag).
The offered traffic of a service chain is the current amount of traffic offered (maybe carried or not). It is possible to associate to a service chain request, information of the different offered traffics that would be produced at different time slots.
Modifier and Type | Method and Description |
---|---|
WServiceChain |
addServiceChain(List<? extends WAbstractNetworkElement> sequenceOfIpLinksAndResources,
double injectionTrafficGbps)
Adds a service chain to satisfy traffic of this service chain request.
|
double |
getCurrentOfferedTrafficInGbps()
Returns the current offered traffic of this service chain request (that may carried partially, totally or none)
|
List<Double> |
getListMaxLatencyFromOriginToVnStartAndToEndNode_ms()
Returns the list of maximum latencies specified for this service chain request.
|
Demand |
getNe()
Returns the underlying Net2Plan object.
|
int |
getNumberVnfsToTraverse()
Returns the number of VNFs that service chains of this request should traverse
|
SortedSet<WNode> |
getPotentiallyValidDestinations()
Returns the potentially valid destination nodes for the service chains of this request
|
SortedSet<WNode> |
getPotentiallyValidOrigins()
Returns the potentially valid origin nodes for the service chains of this request
|
List<Double> |
getSequenceOfExpansionFactorsRespectToInjection()
Returns a list with the information of the traffic expansion factors when traversing the VNFs.
|
List<String> |
getSequenceVnfTypes()
Returns the sequence of the VNF types that should be traversed by the service chains realizing this request
|
List<Pair<String,Double>> |
getTimeSlotNameAndInitialInjectionIntensityInGbpsList()
Returns the full user-defined traffic intensity information as a list of pairs, where each pair contains the user-defined name of the time slot, and the traffic intensity
associated to that time slot
|
Optional<Pair<String,Double>> |
getTrafficIntensityInfo(int timeSlotIndex)
Get the user-defined traffic intensity associated to a time slot with the given index,
|
Optional<Double> |
getTrafficIntensityInfo(String timeSlotName)
Get the user-defined traffic intensity associated to a time slot with the given name,
|
String |
getUserServiceName()
Returns the name of the user service that this service chain request is associated to
|
boolean |
isUpstream()
Indicates if this is an upstream service chain request (initiated in the user).
|
void |
setCurrentOfferedTrafficInGbps(double offeredTrafficInGbps)
Sets the current offered traffic in Gbps for this service chain
|
void |
setIsUpstream(boolean isUpstream)
Sets if this is an upstream service chain request (initiated in the user), with true, of false if the service chain is downstream (ended in the user)
|
void |
setListMaxLatencyFromInitialToVnfStart_ms(List<Double> maxLatencyList_ms)
Sets the information of the list of maximum latencies (in ms) specified for this service chain.
|
void |
setPotentiallyValidDestinations(SortedSet<WNode> validDestinations)
Sets the potentially valid destination nodes for the service chains of this request
|
void |
setPotentiallyValidOrigins(SortedSet<WNode> validOrigins)
Sets the potentially valid origin nodes for the service chains of this request
|
void |
setSequenceOfExpansionFactorsRespectToInjection(List<Double> sequenceOfExpansionFactors)
Sets a list with the information of the traffic expansion factors when traversing the VNFs.
|
void |
setTimeSlotNameAndInitialInjectionIntensityInGbpsList(List<Pair<String,Double>> info)
Sets the full user-defined traffic intensity information as a list of pairs, where each pair contains the user-defined name of the time slot, and the traffic intensity
associated to that time slot
|
void |
setUserServiceName(String userServiceName)
Sets the name of the user service that this service chain request is associated to
|
String |
toString() |
compareTo, equals, getAsFiber, getAsIpLayer, getAsIpLink, getAsLightpathRequest, getAsLightpathUnregenerated, getAsNode, getAsServiceChain, getAsServiceChainRequest, getAsVnfInstance, getAsWdmLayer, getId, getNet, getNetPlan, isFiber, isLayerIp, isLayerWdm, isLightpathRequest, isLightpathUnregenerated, isNode, isServiceChain, isServiceChainRequest, isVnfInstance, isWIpLink, wasRemoved
public WServiceChain addServiceChain(List<? extends WAbstractNetworkElement> sequenceOfIpLinksAndResources, double injectionTrafficGbps)
sequenceOfIpLinksAndResources
- the sequence of WIpLink and WVnfInstance objects realizing this service chaininjectionTrafficGbps
- the traffic injected by the origin node of the service chain. Note that VNFs will change the volumes of the traversed flows, according to the expansion factors defined for the service chainpublic double getCurrentOfferedTrafficInGbps()
public List<Double> getListMaxLatencyFromOriginToVnStartAndToEndNode_ms()
public Demand getNe()
WAbstractNetworkElement
getNe
in class WAbstractNetworkElement
public int getNumberVnfsToTraverse()
public SortedSet<WNode> getPotentiallyValidDestinations()
public SortedSet<WNode> getPotentiallyValidOrigins()
public List<Double> getSequenceOfExpansionFactorsRespectToInjection()
public List<String> getSequenceVnfTypes()
public List<Pair<String,Double>> getTimeSlotNameAndInitialInjectionIntensityInGbpsList()
public Optional<Pair<String,Double>> getTrafficIntensityInfo(int timeSlotIndex)
timeSlotIndex
- see abovepublic Optional<Double> getTrafficIntensityInfo(String timeSlotName)
timeSlotName
- see abovepublic String getUserServiceName()
public boolean isUpstream()
public void setCurrentOfferedTrafficInGbps(double offeredTrafficInGbps)
offeredTrafficInGbps
- see abovepublic void setIsUpstream(boolean isUpstream)
isUpstream
- see abovepublic void setListMaxLatencyFromInitialToVnfStart_ms(List<Double> maxLatencyList_ms)
maxLatencyList_ms
- see abovepublic void setPotentiallyValidDestinations(SortedSet<WNode> validDestinations)
validDestinations
- see abovepublic void setPotentiallyValidOrigins(SortedSet<WNode> validOrigins)
validOrigins
- see abovepublic void setSequenceOfExpansionFactorsRespectToInjection(List<Double> sequenceOfExpansionFactors)
sequenceOfExpansionFactors
- see abovepublic void setTimeSlotNameAndInitialInjectionIntensityInGbpsList(List<Pair<String,Double>> info)
info
- see abovepublic void setUserServiceName(String userServiceName)
userServiceName
- see aboveCopyright © 2018. All rights reserved.