Ieee8021qCreditBasedShaper

Package: inet.linklayer.ieee8021q

Ieee8021qCreditBasedShaper

compound module

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

Inheritance diagram

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

Extends

Name Type Description
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.

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

Scheduled messages (observed)

msgkindctrltagsmsgnamecontext
omnetpp::cMessage0ChangeTimer

Direct method calls (observed)

call tofunctioninfo
LayeredEthernetInterfaceinet::NetworkInterface::receiveSignalPOST_MODEL_CHANGE
Ieee8021qCreditBasedShaperinet::queueing::CreditBasedGate::handleCanPullPacketChangedhandleCanPullPacketChanged
Ieee8021qCreditBasedShaperinet::queueing::CreditBasedGate::handleCanPushPacketChangedhandleCanPushPacketChanged
Ieee8021qCreditBasedShaperinet::queueing::CreditBasedGate::receiveSignalguardBandStateChanged
PeriodicGateinet::queueing::PeriodicGate::handleCanPullPacketChangedhandleCanPullPacketChanged
PacketQueueinet::queueing::PacketQueue::pullPacketpullPacket

Called methods (observed)

functioninfocall from
inet::queueing::CreditBasedGate::handleCanPullPacketChangedhandleCanPullPacketChangedIeee8021qCreditBasedShaper, PacketQueue
inet::queueing::CreditBasedGate::handleCanPushPacketChangedhandleCanPushPacketChangedIeee8021qCreditBasedShaper, PeriodicGate
inet::queueing::CreditBasedGate::pullPacketpullPacketPeriodicGate
inet::queueing::CreditBasedGate::receiveSignalgateStateChangedPeriodicGate
inet::queueing::CreditBasedGate::receiveSignalguardBandStateChangedIeee8021qCreditBasedShaper, PeriodicGate
inet::queueing::CreditBasedGate::receiveSignalinterpacketGapEndedInterpacketGapInserter
inet::queueing::CreditBasedGate::receiveSignaltransmissionEndedPacketTransmitter
inet::queueing::CreditBasedGate::receiveSignaltransmissionStartedPacketTransmitter

Pull in messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0PacketQueueDirectionTag, EncapsulationProtocolReq, InterfaceInd, InterfaceReq, MacAddressReq, PacketProtocolTag, DropEligibleInd?, DropEligibleReq?, PcpInd?, PcpReq?, StreamReq?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq?

Pulled out messages (observed)

gatemsgkindctrldestModuletags
outPacket0PeriodicGateCreditGateTag, DirectionTag, EncapsulationProtocolReq, InterfaceInd, InterfaceReq, MacAddressReq, PacketProtocolTag, DropEligibleInd?, DropEligibleReq?, PcpInd?, PcpReq?, StreamReq?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq?

Shared Tagging operations (observed)

tagTypetagAction
CreditGateTagaddTag, findTag

Region Tagging operations (observed)

tagTypetagAction
FlowTagmapAllTags

Source code

//
// This module implements the IEEE 802.1Q credit-based shaper.
//
module Ieee8021qCreditBasedShaper extends Ieee8021qCreditBasedGate
{
}

File: src/inet/linklayer/ieee8021q/Ieee8021qCreditBasedShaper.ned