RTP Trace System  1.0
Coral::StreamDescription Class Reference

Stream Description. More...

#include <streamdescription.h>

List of all members.

Public Member Functions

 StreamDescription ()
 ~StreamDescription ()
void init (ManagedStreamInterface *stream, const ServiceLevelAgreement *sla, const cardinal maxPoints, const card64 bwThreshold, const double utThreshold, const double systemDelayTolerance, const bool unlayeredAllocation)
bool tryAllocation (const ServiceLevelAgreement *sla, card64 &totalAvailableBandwidth, card64 *classAvailableBandwidthArray, ResourceUtilizationPoint &rup, const card64 bandwidthLimit=(card64)-1)

Public Attributes

ManagedStreamInterfaceInterface
AbstractQoSDescriptionQoSDescription
SessionDescriptionSession
card64 StreamID
cardinal Layers
cardinal RUEntries
ResourceUtilizationPoint RUList [MaxRUEntries]
cardinal NewLayerClassNumber [RTPConstants::RTPMaxQualityLayers]
card64 NewLayerClassBandwidth [RTPConstants::RTPMaxQualityLayers]
double NewCostPerSecond
ResourceUtilizationPoint NewQuality
double LastUtilization
cardinal CurrentLayerClassNumber [RTPConstants::RTPMaxQualityLayers]
card64 CurrentLayerClassBandwidth [RTPConstants::RTPMaxQualityLayers]
double CurrentCostPerSecond
ResourceUtilizationPoint CurrentQuality
card64 ReservationTimeStamp
double TotalCost
double TotalBandwidthUsage
double TotalUtilization
double TotalRuntime
cardinal TotalReservationUpdates
cardinal PartialRemappings
cardinal CompleteRemappings
cardinal Inits
cardinal BufferFlushes
card64 LastInitDuration
double ReportedLossRate [RTPConstants::RTPMaxQualityLayers]
double ReportedJitter [RTPConstants::RTPMaxQualityLayers]
double MeasuredTransferDelay [TrafficClassValues::MaxValues]
InternetAddress RoundTripTimeDestination
card64 NextInterval
bool MaximumReached
bool UnlayeredAllocation

Static Public Attributes

static const cardinal MaxRUEntries = 256

Private Member Functions

bool calculatePossibleLayerClassMappings (ResourceUtilizationPoint &rup, const ServiceLevelAgreement *sla, const AbstractQoSDescription *aqd)

Detailed Description

Stream Description.

This class contains a description of a stream. It is used for the bandwidth manager's remapping algorithm.

Author:
Thomas Dreibholz
Version:
1.0

Constructor & Destructor Documentation


Member Function Documentation

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.

Parameters:
streamManagedStreamInterface.
slaService level agreement.
maxPointsMaximum number of resource/utilization points for each stream.
bwThresholdBandwidth threshold.
utThresholdUtilization threshold.
systemDelayToleranceThe system's delay tolerance for the buffering optimization.
unlayeredAllocationTrue, 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.

Parameters:
slaService level agreement.
totalAvailableBandwidthReference to total available bandwidth.
classAvailableBandwidthArrayAvailable bandwidths for each DiffServ class.
rupResource/utilization point to do allocation for.
sessionSession of the stream.
bandwidthLimitUpper bandwidth limit (e.g. the session's maximum bandwidth).

Member Data Documentation

Number of complete remappings forced by this stream.

Current bandwidth cost per second.

Layer's allocated DiffServ class number currently used.

Last *complete* remapping's utilization.

True, if all following higher bandwidth allocations will fail (no more bandwidth available to achieve higher quality -> no more allocation trials necessary); false otherwise.

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 DiffServ class number.

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).

Round trip time measurement destination.

Number of entries in resource/utilization list.

Total bandwidth usage of this stream.

Total cost of this stream.

Total runtime of this stream.

Total utilization of this stream.

Unlayered allocation: Use the same DiffServ class for *all* layers.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines