Simple Module AVBQueueBuffer

Package: core4inet.buffer.avb
File: src/core4inet/buffer/avb/AVBQueueBuffer.ned

C++ definition

Represents a queue buffer for time-triggered traffic. Messages are sent using the Credit Based Shaper Algorithm.

The buffer stores infinit messages in a fifo queue. The buffer removes and sends the first message in the queue.

See also: AVBBuffer, Buffer,

Author: Philipp Meyer

AVBQueueBuffer

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Extends:

Name Type Description
AVBBuffer simple module

Represents an abstract Buffer for audio-video bridging traffic. Messages are sent using the Credit Based Shaper Algorithm.

Used in compound modules:

Name Type Description
RTIPHost compound module

Contains the common lower layers (linklayer and networklayer) of Router, StandardHost, WirelessHost etc.

TTEAVBEtherHost compound module

Module for a TTEAVBEthernet Host. Contains handler for TT, AVB, RC and BE Messages.

TTEAVBEtherSwitch compound module

Module for a TTEAVBEthernet Switch. Contains handler for TT, AVB, RC and BE Messages.

Parameters:

Name Type Default value Description
destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

enabled bool true

Switch to enable and disable the buffer

srClass string "A"
oscillator string "^.scheduler.oscillator"

Oscillator of the timed module (must be set to the name of an oscillator module in the Node) when left empty: oscillator

timer string "^.scheduler.timer"

Timer of the timed module (must be set to the name of an timer module in the Node) when left empty: timer

size int -1

Size of the buffer negative means infinite

Properties:

Name Value Description
class AVBQueueBuffer
display q=frames

Gates:

Name Direction Size Description
in input

The buffers Input

out output

The buffers Output

WARNING: CURRENTLY NOT USED!

schedulerIn input

Input gate for the incoming SchedulerActionTimeEvent messages

Signals:

Name Type Unit
size unsigned long B
length unsigned long packets
dropped inet::EtherFrame

Statistics:

Name Title Source Record Unit Interpolation Mode
size Queue Size size vector B sample-hold
length Queue Length length vector packets sample-hold
dropped Dropped frames dropped sum packets

Source code:

//
// Represents a queue buffer for time-triggered traffic. Messages are sent using the Credit Based Shaper Algorithm.
//
// The buffer stores infinit messages in a fifo queue.
// The buffer removes and sends the first message in the queue.
//
// @see AVBBuffer, Buffer,
//
// @author Philipp Meyer
simple AVBQueueBuffer extends AVBBuffer
{
    parameters:
        @class(AVBQueueBuffer);
        @display("q=frames");
        //Signal emitted when queuelength changes, contains new length
        @signal[length](type=unsigned long; unit=packets);
        //Signal emitted when queuelength changes, contains new size in bytes
        @signal[size](type=unsigned long; unit=B);
        //Signal emitted when frame is dropped due to buffer overflow, contains dropped EtherFrame
        @signal[dropped](type=inet::EtherFrame);

        //Statistic of the queue length of the buffer
        @statistic[length](title="Queue Length"; source=length; record=vector; unit=packets; interpolationmode=sample-hold);
        //Statistic of the queue size of the buffer in bytes
        @statistic[size](title="Queue Size"; source=size; record=vector; unit=B; interpolationmode=sample-hold);
        //Statistic of the amount of packets that were dropped due to buffer overflows
        @statistic[dropped](title="Dropped frames"; source=dropped; unit=packets; record=sum);

        //Size of the buffer negative means infinite
        int size = default(-1);
}