Package: inet.linklayer.ieee8021q
Ieee8021qCreditBasedGate
simple moduleThis 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