Ieee8021qCreditBasedGate

Package: inet.linklayer.ieee8021q

Ieee8021qCreditBasedGate

simple module

This module is a packet gate that can be used to implement the IEEE 802.1q credit based shaper algorithm in combination with a packet queue.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Known subclasses

Name Type Description
Ieee8021qCreditBasedShaper compound module

This module implements the IEEE 802.1Q credit-based shaper.

Extends

Name Type Description
CreditBasedGate simple module

This module is a packet gate that operates based on the number of credits it contains. The gate is open if the number of credits is greater than the configured transmit credit limit, it is closed otherwise. The module attaches a CreditGateTag to all packets that pass through. The attached tag allows the gate module to determine if a packet belongs to it when the packet is eventually transmitted.

Parameters

Name Type Default value Description
displayStringTextFormat string "contains %n cr\nserved %p pk (%l)"

determines the text that is written on top of the submodule

bitrate double nan bps
extraLength int 0b
extraDuration double 0s
idleCreditGainRate double dropUnit(idleSlope)

rate of credit increase while the packets that passed through this gate don't use the physical channel

transmitCreditSpendRate double -dropUnit(sendSlope)

rate of credit decrease while the packets that passed through this gate use the physical channel

initialCredit double 0

initial number of credits

transmitCreditLimit double 0

credit limit above which the gate is open

minCredit double -inf

minimum number of credits

maxCredit double dropUnit(maxInterferenceSize) * dropUnit(idleSlope / bitrate)

maximum number of credits

accumulateCreditInGuardBand bool false

whether credit increases during implicit guard band when no packets can be sent anymore

idleSlope double

data rate of the accumulated credits when the transmission channel is idle

sendSlope double idleSlope - bitrate

data rate of the spent credits when the transmission channel is in use

maxInterferenceSize double inf b

Properties

Name Value Description
display i=block/cogwheel
class CreditBasedGate

Gates

Name Direction Size Description
in input
out output

Signals

Name Type Unit
creditsChanged double

Statistics

Name Title Source Record Unit Interpolation Mode
numCredits number of credits creditsChanged vector cr linear

Source code

//
// This module is a packet gate that can be used to implement the IEEE 802.1q
// credit based shaper algorithm in combination with a packet queue.
//
simple Ieee8021qCreditBasedGate extends CreditBasedGate
{
    parameters:
        double idleSlope @unit(bps); // data rate of the accumulated credits when the transmission channel is idle
        double sendSlope @unit(bps) = default(idleSlope - bitrate); // data rate of the spent credits when the transmission channel is in use
        double maxInterferenceSize @unit(b) = default(inf b);
        idleCreditGainRate = default(dropUnit(idleSlope));
        transmitCreditSpendRate = default(-dropUnit(sendSlope));
        maxCredit = default(dropUnit(maxInterferenceSize) * dropUnit(idleSlope / bitrate));
}
File: src/inet/linklayer/ieee8021q/Ieee8021qCreditBasedGate.ned