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