Class SinkTree_AffineCurves
- java.lang.Object
-
- org.networkcalculus.dnc.sinktree.arrivalbounds.SinkTree_AffineCurves
-
public class SinkTree_AffineCurves extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private PmooSinkTreeAffineABCache
ab_cache
private static SinkTree_AffineCurves
instance
protected ServerGraph
server_graph
-
Constructor Summary
Constructors Modifier Constructor Description private
SinkTree_AffineCurves()
SinkTree_AffineCurves(ServerGraph tree)
-
Method Summary
Modifier and Type Method Description void
clearCache()
ArrivalCurve
computeArrivalBoundDirect(Turn turn, java.util.Set<Flow> f_xfcaller, Flow flow_of_interest)
This code path computes the parameters relevant to construct the resulting arrival bound directly, i.e., it does not compute and store the entire curves resulting from intermediate computations in order to do so.ArrivalCurve
computeArrivalBoundHomogeneous(Turn turn, java.util.Set<Flow> f_xfcaller, Flow flow_of_interest)
In homogeneous server_graphs we can simply multiply the common latency with the length of a flow's path instead of iterating over its servers and sum up for each one's value individually.ArrivalCurve
computeArrivalBoundMinPlusBackend(Turn turn, java.util.Set<Flow> f_xfcaller, Flow flow_of_interest)
This code path uses the DNC's minpuls backend for computations.static SinkTree_AffineCurves
getInstance()
-
-
-
Field Detail
-
instance
private static SinkTree_AffineCurves instance
-
server_graph
protected ServerGraph server_graph
-
ab_cache
private PmooSinkTreeAffineABCache ab_cache
-
-
Constructor Detail
-
SinkTree_AffineCurves
private SinkTree_AffineCurves()
-
SinkTree_AffineCurves
public SinkTree_AffineCurves(ServerGraph tree)
-
-
Method Detail
-
getInstance
public static SinkTree_AffineCurves getInstance()
-
clearCache
public void clearCache()
-
computeArrivalBoundMinPlusBackend
public ArrivalCurve computeArrivalBoundMinPlusBackend(Turn turn, java.util.Set<Flow> f_xfcaller, Flow flow_of_interest) throws java.lang.Exception
This code path uses the DNC's minpuls backend for computations. Thus, it operates on entire curves instead of restricting to the relevant values like computeArrivalBoundDirect does.- Parameters:
turn
- Turn flows arrive on.f_xfcaller
- Flows to bound.flow_of_interest
- The flow of interest to handle with lowest priority.- Returns:
- Arrival bound.
- Throws:
java.lang.Exception
- Unable to get the flow's sub path for service curve convolution.
-
computeArrivalBoundDirect
public ArrivalCurve computeArrivalBoundDirect(Turn turn, java.util.Set<Flow> f_xfcaller, Flow flow_of_interest) throws java.lang.Exception
This code path computes the parameters relevant to construct the resulting arrival bound directly, i.e., it does not compute and store the entire curves resulting from intermediate computations in order to do so.- Parameters:
turn
- Turn flows arrive on.f_xfcaller
- Flows to bound.flow_of_interest
- The flow of interest to handle with lowest priority.- Returns:
- Arrival bound.
- Throws:
java.lang.Exception
- Unable to get the flow's sub path for service curve convolution.
-
computeArrivalBoundHomogeneous
public ArrivalCurve computeArrivalBoundHomogeneous(Turn turn, java.util.Set<Flow> f_xfcaller, Flow flow_of_interest) throws java.lang.Exception
In homogeneous server_graphs we can simply multiply the common latency with the length of a flow's path instead of iterating over its servers and sum up for each one's value individually.This code path works similar to computeArrivalBound in the sense that it does not operate on intermediate curves.
- Parameters:
turn
- Turn flows arrive on.f_xfcaller
- Flows to bound.flow_of_interest
- The flow of interest to handle with lowest priority.- Returns:
- Arrival bounds.
- Throws:
java.lang.Exception
-
-