Package: inet.linklayer.ieee8021q
Ieee8021qCreditBasedShaper
compound moduleThis 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)
msg | kind | ctrl | tags | msgname | context |
---|---|---|---|---|---|
omnetpp::cMessage | 0 | ChangeTimer |
Direct method calls (observed)
call to | function | info |
---|---|---|
LayeredEthernetInterface | inet::NetworkInterface::receiveSignal | POST_MODEL_CHANGE |
Ieee8021qCreditBasedShaper | inet::queueing::CreditBasedGate::handleCanPullPacketChanged | handleCanPullPacketChanged |
Ieee8021qCreditBasedShaper | inet::queueing::CreditBasedGate::handleCanPushPacketChanged | handleCanPushPacketChanged |
Ieee8021qCreditBasedShaper | inet::queueing::CreditBasedGate::receiveSignal | guardBandStateChanged |
PeriodicGate | inet::queueing::PeriodicGate::handleCanPullPacketChanged | handleCanPullPacketChanged |
PacketQueue | inet::queueing::PacketQueue::pullPacket | pullPacket |
Called methods (observed)
function | info | call from |
---|---|---|
inet::queueing::CreditBasedGate::handleCanPullPacketChanged | handleCanPullPacketChanged | Ieee8021qCreditBasedShaper, PacketQueue |
inet::queueing::CreditBasedGate::handleCanPushPacketChanged | handleCanPushPacketChanged | Ieee8021qCreditBasedShaper, PeriodicGate |
inet::queueing::CreditBasedGate::pullPacket | pullPacket | PeriodicGate |
inet::queueing::CreditBasedGate::receiveSignal | gateStateChanged | PeriodicGate |
inet::queueing::CreditBasedGate::receiveSignal | guardBandStateChanged | Ieee8021qCreditBasedShaper, PeriodicGate |
inet::queueing::CreditBasedGate::receiveSignal | interpacketGapEnded | InterpacketGapInserter |
inet::queueing::CreditBasedGate::receiveSignal | transmissionEnded | PacketTransmitter |
inet::queueing::CreditBasedGate::receiveSignal | transmissionStarted | PacketTransmitter |
Pull in messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
in | Packet | 0 | PacketQueue | DirectionTag, EncapsulationProtocolReq, InterfaceInd, InterfaceReq, MacAddressReq, PacketProtocolTag, DropEligibleInd?, DropEligibleReq?, PcpInd?, PcpReq?, StreamReq?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq? |
Pulled out messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
out | Packet | 0 | PeriodicGate | CreditGateTag, DirectionTag, EncapsulationProtocolReq, InterfaceInd, InterfaceReq, MacAddressReq, PacketProtocolTag, DropEligibleInd?, DropEligibleReq?, PcpInd?, PcpReq?, StreamReq?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq? |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
CreditGateTag | addTag, findTag |
Region Tagging operations (observed)
tagType | tagAction |
---|---|
FlowTag | mapAllTags |
Source code
// // This module implements the IEEE 802.1Q credit-based shaper. // module Ieee8021qCreditBasedShaper extends Ieee8021qCreditBasedGate { }File: src/inet/linklayer/ieee8021q/Ieee8021qCreditBasedShaper.ned