RTP Trace System
1.0
|
Stream Description. More...
#include <streamdescription.h>
Stream Description.
This class contains a description of a stream. It is used for the bandwidth manager's remapping algorithm.
Constructor.
Destructor.
bool Coral::StreamDescription::calculatePossibleLayerClassMappings | ( | ResourceUtilizationPoint & | rup, |
const ServiceLevelAgreement * | sla, | ||
const AbstractQoSDescription * | aqd | ||
) | [private] |
void Coral::StreamDescription::init | ( | ManagedStreamInterface * | stream, |
const ServiceLevelAgreement * | sla, | ||
const cardinal | maxPoints, | ||
const card64 | bwThreshold, | ||
const double | utThreshold, | ||
const double | systemDelayTolerance, | ||
const bool | unlayeredAllocation | ||
) |
Initialize.
stream | ManagedStreamInterface. |
sla | Service level agreement. |
maxPoints | Maximum number of resource/utilization points for each stream. |
bwThreshold | Bandwidth threshold. |
utThreshold | Utilization threshold. |
systemDelayTolerance | The system's delay tolerance for the buffering optimization. |
unlayeredAllocation | True, to use the same DiffServ class for *all* layers; false otherwise. |
bool Coral::StreamDescription::tryAllocation | ( | const ServiceLevelAgreement * | sla, |
card64 & | totalAvailableBandwidth, | ||
card64 * | classAvailableBandwidthArray, | ||
ResourceUtilizationPoint & | rup, | ||
const card64 | bandwidthLimit = (card64)-1 |
||
) |
Try to allocate given layer bandwidths to a stream. If allocation is successful, the availability references are decremented by the bandwidth allocation. The allocated bandwidths and buffer delays will be stored into the resource/utilization point.
sla | Service level agreement. |
totalAvailableBandwidth | Reference to total available bandwidth. |
classAvailableBandwidthArray | Available bandwidths for each DiffServ class. |
rup | Resource/utilization point to do allocation for. |
session | Session of the stream. |
bandwidthLimit | Upper bandwidth limit (e.g. the session's maximum bandwidth). |
Number of buffer flushes.
Number of complete remappings forced by this stream.
Current bandwidth cost per second.
Current layer's allocated bandwidth currently used.
Layer's allocated DiffServ class number currently used.
Current quality.
Stream's manager interface.
Duration of last init() call.
Last *complete* remapping's utilization.
Number of layers.
True, if all following higher bandwidth allocations will fail (no more bandwidth available to achieve higher quality -> no more allocation trials necessary); false otherwise.
const cardinal Coral::StreamDescription::MaxRUEntries = 256 [static] |
Maximum number of entries in the list.
Smoothed measured transfer delay from ICMP echo replies for each DiffServ class.
New remapping's bandwidth cost per second.
New remapping's layer's allocated bandwidth.
New remapping's layer's allocated DiffServ class number.
New remapping's quality.
Time to next interval in microseconds.
Number of successful partial remappings.
Smoothed reported jitter for each layer (via RTCP reports).
Smoothed received loss rate for each layer (via RTCP reports).
Reservation time stamp.
Round trip time measurement destination.
Number of entries in resource/utilization list.
Resource/utilization list.
Session description.
Stream ID.
Total bandwidth usage of this stream.
Total cost of this stream.
Total reservation updates.
Total runtime of this stream.
Total utilization of this stream.
Unlayered allocation: Use the same DiffServ class for *all* layers.