Ieee8021qCreditBasedShaper¶
Package: inet.linklayer.ieee8021q
compound module Ieee8021qCreditBasedShaper
Implements the IEEE 802.1Q credit-based shaper.
Inheritance diagram¶
Extends¶
Name |
Type |
Description |
|---|---|---|
simple module |
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 {currentCredit} cr, rate {currentCreditGainRate} crps\nserved %p pk (%l)” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
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 |
|---|---|---|
class |
CreditBasedGate |
|
display |
i=block/cogwheel |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
in |
input |
||
out |
output |
Signals¶
Name |
Type |
Unit |
Description |
|---|---|---|---|
creditsChanged |
double |
||
gateStateChanged |
bool |
||
packetPulledIn |
|||
packetPulledOut |
|||
packetPushedIn |
|||
packetPushedOut |
Statistics¶
Name |
Title |
Source |
Record |
Unit |
Interpolation Mode |
Description |
|---|---|---|---|---|---|---|
flowIncomingDataRate |
flow specific incoming data rate |
throughput(demuxFlow(merge(packetPushedIn, packetPulledIn))) |
vector |
bps |
linear |
the statistical value is the flow specific data rate of the incoming packets |
flowIncomingPacketLengths |
flow specific incoming packet lengths |
packetLength(demuxFlow(merge(packetPushedIn, packetPulledIn))) |
sum,histogram,vector |
b |
none |
the statistical value is the flow specific length of the incoming packet |
flowOutgoingDataRate |
flow specific outgoing data rate |
throughput(demuxFlow(merge(packetPushedOut, packetPulledOut))) |
vector |
bps |
linear |
the statistical value is the flow specific data rate of the outgoing packets |
flowOutgoingPacketLengths |
flow specific outgoing packet lengths |
packetLength(demuxFlow(merge(packetPushedOut, packetPulledOut))) |
sum,histogram,vector |
b |
none |
the statistical value is the flow specific length of the outgoing packet |
gateState |
gate state |
gateStateChanged |
vector |
sample-hold |
||
incomingDataRate |
incoming data rate |
throughput(merge(packetPushedIn, packetPulledIn)) |
vector |
bps |
linear |
the statistical value is the data rate of the incoming packets |
incomingPacketLengths |
incoming packet lengths |
packetLength(merge(packetPushedIn, packetPulledIn)) |
sum,histogram,vector |
b |
none |
the statistical value is the length of the incoming packet |
incomingPackets |
incoming packets |
merge(packetPushedIn, packetPulledIn) |
count |
pk |
the statistical value is the incoming packet |
|
numCredits |
number of credits |
creditsChanged |
vector |
cr |
linear |
|
outgoingDataRate |
outgoing data rate |
throughput(merge(packetPushedOut, packetPulledOut)) |
vector |
bps |
linear |
the statistical value is the data rate of the outgoing packets |
outgoingPacketLengths |
outgoing packet lengths |
packetLength(merge(packetPushedOut, packetPulledOut)) |
sum,histogram,vector |
b |
none |
the statistical value is the length of the outgoing packet |
outgoingPackets |
outgoing packets |
merge(packetPushedOut, packetPulledOut) |
count |
pk |
the statistical value is the outgoing packet |
Source code¶
//
// Implements the IEEE 802.1Q credit-based shaper.
//
module Ieee8021qCreditBasedShaper extends Ieee8021qCreditBasedGate
{
}
File: src/inet/linklayer/ieee8021q/Ieee8021qCreditBasedShaper.ned