Public Member Functions |
| BandwidthManager (ServiceLevelAgreement *sla, RoundTripTimePinger *rttp) |
| ~BandwidthManager () |
void | addStream (ManagedStreamInterface *stream, const cardinal sessionID=0, const char *name=NULL) |
void | removeStream (ManagedStreamInterface *stream) |
void | updateStream (ManagedStreamInterface *stream) |
void | forceCompleteRemapping () |
void | intervalChangeEvent (ManagedStreamInterface *stream, const bool isNew, const card64 when, const bool newRUList) |
void | reportEvent (ManagedStreamInterface *stream, const RTCPReceptionReportBlock *report, const cardinal layer) |
void | bufferFlushEvent (ManagedStreamInterface *stream, const cardinal layer) |
void | timerEvent () |
void | setLogStream (std::ostream *logStream) |
void | getPartialRemapping (bool &enabled, double &reservedPortion, double &utilizationTolerance, double &maxRemappingInterval) const |
void | setPartialRemapping (const bool enabled, const double reservedPortion, const double utilizationTolerance, const double maxRemappingInterval) |
void | getFairness (double &fairnessSession, double &fairnessStream) const |
void | setFairness (const double fairnessSession, const double fairnessStream) |
void | getQoSOptimizationParameters (cardinal &maxRUPoints, double &utilizationThreshold, card64 &bandwidthThreshold, double &systemDelayTolerance, bool &unlayeredAllocation) const |
void | setQoSOptimizationParameters (const cardinal maxRUPoints, const double utilizationThreshold, const card64 bandwidthThreshold, const double systemDelayTolerance, const bool unlayeredAllocation) |
void | updateReservation (StreamDescription *streamDescription) |
Public Attributes |
card64 | TotalAvailableBandwidth |
card64 | ClassAvailableBandwidthArray [TrafficClassValues::MaxValues] |
card64 | TotalBandwidth |
card64 | ClassBandwidthArray [TrafficClassValues::MaxValues] |
int64 | SLAUpdateRecommendation [TrafficClassValues::MaxValues] |
card64 | StreamIDGenerator |
card64 | LastCompleteRemapping |
card64 | LastCompleteRemappingDuration |
cardinal | CompleteRemappings |
cardinal | PartialRemappings |
cardinal | TotalBufferFlushes |
std::multimap
< ManagedStreamInterface
*, StreamDescription * > | StreamSet |
std::multimap< cardinal,
SessionDescription * > | SessionSet |
ServiceLevelAgreement * | SLA |
cardinal | Streams |
cardinal | Sessions |
cardinal | MaxRUPoints |
double | UtilizationThreshold |
card64 | BandwidthThreshold |
double | SystemDelayTolerance |
double | FairnessSession |
double | FairnessStream |
double | AlphaLossRate |
double | AlphaJitter |
double | PartialRemappingPortion |
double | PartialRemappingUtilizationTolerance |
card64 | MaxRemappingInterval |
bool | EnablePartialRemappings |
bool | UnlayeredAllocation |
Static Public Attributes |
static card64 | SimulatorTime = 0 |
Private Member Functions |
cardinal | calculateSessionMultiPoints (SessionDescription *session, const cardinal offset, const cardinal lastPoint, ResourceUtilizationMultiPoint *rumpList) |
void | getRoundTripTimes (StreamDescription *sd) |
double | getPriorityFactor (const int8 streamPriority) const |
double | getResourcePart (const ResourceUtilizationSimplePoint &rup) const |
double | getResourcePart (const ResourceUtilizationMultiPoint &rump) const |
double | getStreamSortingValue (const ResourceUtilizationSimplePoint &rup) const |
double | getSessionSortingValue (const ResourceUtilizationMultiPoint &rump) const |
bool | tryAllocation (ResourceUtilizationMultiPoint &rump, const card64 bandwidthLimit=(card64)-1) |
void | doAllocationTrials (ResourceUtilizationMultiPoint *rumpList, const cardinal points, const card64 bandwidthLimit=(card64)-1) |
bool | doPartialRemapping (StreamDescription *streamDescription) |
void | doCompleteRemapping () |
Static Private Member Functions |
static void | smoothedUpdate (double &value, const double measured, const double alpha) |
Private Attributes |
RoundTripTimePinger * | RTTP |
std::ostream * | Log |
card64 | LogStartupTimeStamp |
bool | Changed |
Bandwidth Manager.
This is the bandwidth manager.
- Author:
- Thomas Dreibholz
- Version:
- 1.0