class AbstractLayerDescription

Abstract Layer Description. More...

Full nameCoral::AbstractLayerDescription
Definition#include <abstractlayerdescription.h>
InheritsCoral::FrameSizeScalabilityInterface [virtual public]
Inherited byTraceLayerDescription
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types

Public Methods

Public Static Methods

Protected Members


Detailed Description

This class contains a layer's QoS requirements. Important node: All frames sizes in this class are *raw* frame sizes, the frames sizes in FrameSizeScalability are payload frame sizes. This class does necessary translation.

 AbstractLayerDescription ()

Constructor.

AbstractLayerDescription ()

[virtual]

Destructor.

inline void  initLayer (const cardinal pktHeaderSize, const cardinal pktMaxSize, const cardinal bandwidthLimit, const double maxTransferDelay, const cardinal maxBufferDelay, const double maxLossRate, const double maxJitter, const cardinal flags)

Initialize layer description.

Parameters:
pktHeaderSizePacket header size, e.g. 40 + 8 + 12 (IPv6 + UDP + RTP).
pktMaxSizeMaximum packet size, e.g. 1500.
bandwidthLimitBandwidth limit.
maxTransferDelayMaximum transfer delay in microseconds.
maxBufferDelayMaximum buffer delay in frame rate units.
maxLossRateMaximum loss rate (out of [0,1]).
maxJitterMaximum jitter in microseconds.

inline cardinal  getBandwidth ()

[const]

Get bandwidth.

Returns: Bandwidth.

inline bool  setBandwidth (const double frameRate, const cardinal bandwidth)

Set bandwidth.

Parameters:
frameRateFrame rate.
bandwidthBandwidth.

Returns: true, if bandwidth is sufficient for minimum requirement.

inline cardinal  getBandwidthLimit ()

[const]

Get bandwidth limit.

Returns: Bandwidth limit.

cardinal  getPacketRate (const double frameRate)

[const virtual]

Get packet rate.

Parameters:
frameRateFrame rate.

Returns: Bandwidth limit.

inline cardinal  frameSizeToBandwidth (const double frameRate, const cardinal frameSize)

[static]

Translate frame size into bandwidth.

Parameters:
frameRateFrame rate.
frameSizeFrame size.

Returns: Bandwidth.

inline cardinal  bandwidthToFrameSize (const double frameRate, const cardinal bandwidth)

[static]

Translate bandwidth into frame size.

Parameters:
frameRateFrame rate.
bandwidthBandwidth.

Returns: Frame size.

cardinal  frameSizeToPacketRate (const double frameRate, const cardinal frameSize)

[const virtual]

Get packets per second for given frame size.

Parameters:
frameRateFrame rate.
frameSizeFrame size.

Returns: Packets per second.

inline double  getMaxTransferDelay ()

[const]

Get maximum transfer delay.

Returns: Maximum transfer delay in microseconds.

inline double  getMaxLossRate ()

[const]

Get maximum loss rate.

Returns: Maximum loss rate (out of [0,1]).

inline double  getMaxJitter ()

[const]

Get maximum jitter.

Returns: Maximum jitter in microseconds.

inline bool  isValidFrameSize (const double frameRate, const cardinal bufferDelay, const cardinal size)

[const]

Check, if given frame size is valid for given frame rate and buffer delay.

Parameters:
frameRateFrame rate.
bufferDelayBuffer delay.
sizeFrameSize.

Returns: true, if frame size is valid; false otherwise.

inline cardinal  getNearestValidFrameSize (const double frameRate, const cardinal bufferDelay, const cardinal size)

[const]

Get nearest lower frame size for given frame rate and buffer delay.

Parameters:
frameRateFrame rate.
bufferDelayBuffer delay.
sizeFrameSize.

Returns: Nearest lower frame size.

cardinal  payloadToRaw (const double frameRate, const cardinal payload)

[const virtual]

Translate payload frame size into raw frame size.

Parameters:
frameRateFrame rate.
payloadPayload frame size.

Returns: Raw frame size.

cardinal  rawToPayload (const double frameRate, const cardinal raw)

[const virtual]

Translate raw frame size into payload frame size.

Parameters:
frameRateFrame rate.
rawRaw frame size.

Returns: Payload frame size.

inline cardinal  getMinFrameSize (const double frameRate)

[const]

Get minimum frame size for given frame rate.

Parameters:
frameRateFrame rate.

Returns: Minimum frame size.

inline cardinal  getMaxFrameSize (const double frameRate)

[const]

Get maximum frame size for given frame rate.

Parameters:
frameRateFrame rate.

Returns: Maximum frame size.

inline cardinal  getPeakFrameSizeForSize (const double frameRate, const cardinal frameSize)

[const]

Get peak frame size for given frame rate and size.

Parameters:
frameRateFrame rate.

Returns: Peak frame size.

inline cardinal  getPacketCountForSize (const double frameRate, const cardinal frameSize)

[const]

Get number of packets (upper limit) for given frame rate and size.

Parameters:
frameRateFrame rate.

Returns: Number of packets.

inline double  getPrevFrameSizeForSize (const double frameRate, const cardinal frameSize)

[const]

Get next lower frame size for given frame rate and size and size.

Parameters:
frameRateFrame rate.
frameSizeFrame size.

Returns: Next lower frame size.

inline double  getNextFrameSizeForSize (const double frameRate, const cardinal frameSize)

[const]

Get next higher frame size for given frame rate and size.

Parameters:
frameRateFrame rate and size.
frameSizeFrame size.

Returns: Next higher frame size.

inline double  getFrameSizeScaleFactorForSize (const double frameRate, const cardinal frameSize)

[const]

Get frame size scale factor for given frame rate and size: (size - MinFrameSize) / (MaxFrameSize - MinFrameSize).

Parameters:
frameRateFrame rate and size.
frameSizeFrame size.

Returns: Scale factor (out of [0,1]).

inline double  getFrameSizeUtilizationForSize (const double frameRate, const cardinal frameSize)

[const]

Get frame size utilization for given frame rate and size.

Parameters:
frameRateFrame rate and size.
frameSizeFrame size.

Returns: Utilization (out of [0,1]).

inline cardinal  getMinFrameSizeForDelay (const double frameRate, const cardinal bufferDelay)

[const]

Get minimum frame size for given frame rate and buffer delay.

Parameters:
frameRateFrame rate.

Returns: Minimum frame size.

inline cardinal  getMaxFrameSizeForDelay (const double frameRate, const cardinal bufferDelay)

[const]

Get maximum frame size for given frame rate and buffer delay.

Parameters:
frameRateFrame rate.

Returns: Maximum frame size.

inline cardinal  getPeakFrameSizeForDelayAndSize (const double frameRate, const cardinal bufferDelay, const cardinal frameSize)

[const]

Get peak frame size for given frame rate, size and buffer delay.

Parameters:
frameRateFrame rate.

Returns: Peak frame size.

inline cardinal  getPacketCountForDelayAndSize (const double frameRate, const cardinal bufferDelay, const cardinal frameSize)

[const]

Get number of packets (upper limit) for given frame rate, size and buffer delay.

Parameters:
frameRateFrame rate.

Returns: Number of packets.

inline double  getPrevFrameSizeForDelayAndSize (const double frameRate, const cardinal bufferDelay, const cardinal frameSize)

[const]

Get next lower frame size for given frame rate, size and buffer delay.

Parameters:
frameRateFrame rate.
frameSizeFrame size.

Returns: Next lower frame size.

inline double  getNextFrameSizeForDelayAndSize (const double frameRate, const cardinal bufferDelay, const cardinal frameSize)

[const]

Get next higher frame size for given frame rate, size and buffer delay.

Parameters:
frameRateFrame rate.
frameSizeFrame size.

Returns: Next higher frame size.

inline double  getFrameSizeScaleFactorForDelayAndSize (const double frameRate, const cardinal bufferDelay, const cardinal frameSize)

[const]

Get frame size scale factor for given frame rate, size and buffer delay. (size - MinFrameSize) / (MaxFrameSize - MinFrameSize).

Parameters:
frameRateFrame rate.
frameSizeFrame size.

Returns: Scale factor (out of [0,1]).

inline double  getFrameSizeUtilizationForDelayAndSize (const double frameRate, const cardinal bufferDelay, const cardinal frameSize)

[const]

Get frame size utilization for given frame rate, size and buffer delay.

Parameters:
frameRateFrame rate.
frameSizeFrame size.

Returns: Utilization (out of [0,1]).

inline cardinal  getBufferDelay ()

[const]

Get buffer delay.

Returns: Buffer delay in frame rate units.

inline cardinal  setBufferDelay (const cardinal bufferDelay)

Set buffer delay.

Parameters:
bufferDelayBuffer delay in frame rate units.

Returns: Buffer delay set in frame rate units.

inline cardinal  getPrevBufferDelay (const double frameRate)

[const]

Get next lower buffer delay.

Parameters:
frameRateFrame rate.

Returns: Buffer delay in frame rate units.

inline cardinal  getNextBufferDelay (const double frameRate)

[const]

Get next higher buffer delay.

Parameters:
frameRateFrame rate.

Returns: Buffer delay in frame rate units.

inline InternetAddress  getSource ()

[const]

Get source address.

Returns: Source address.

inline InternetFlow  getDestination ()

[const]

Get destination address.

Returns: Destination address.

inline void  setSource (const InternetAddress& source)

Set source address.

Parameters:
sourceSource address.

inline void  setDestination (const InternetFlow& destination)

Set destination address.

Parameters:
destinationDestination address

inline cardinal  getFlags ()

[const]

Get flags.

inline void  setFlags (const cardinal flags)

Set flags.

enum LayerFlags {LF_BaseLayer = 0, LF_ExtensionLayer = (1 << 0) }

Layer flags.

cardinal PktHeaderSize

[protected]

cardinal PktMaxSize

[protected]

cardinal Bandwidth

[protected]

cardinal BandwidthLimit

[protected]

double MaxTransferDelay

[protected]

double MaxLossRate

[protected]

double MaxJitter

[protected]

cardinal BufferDelay

[protected]

cardinal MaxBufferDelay

[protected]

cardinal Flags

[protected]

InternetAddress Source

[protected]

InternetFlow Destination

[protected]