Ieee8022LlcApp¶
Package: inet.applications.ieee8022
compound module Ieee8022LlcApp
Generates traffic as an IEEE 802.2 LLC application. The traffic source and traffic sink modules can be built from queueing model elements.
Usage diagram¶
Inheritance diagram¶
Known subclasses¶
Name |
Type |
Description |
|---|---|---|
compound module |
Implements an IEEE 802.2 LLC application that only receives packets. |
|
compound module |
Implements an IEEE 802.2 LLC application that only sends packets. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
interfaceTableModule |
string |
Properties¶
Name |
Value |
Description |
|---|---|---|
application |
||
display |
i=block/app |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
socketIn |
input |
||
socketOut |
output |
Unassigned submodule parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
source.displayStringTextFormat |
string |
“created %p pk (%l)” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
source.packetNameFormat |
string |
“%a-%c” |
See directives in module documentation |
source.packetRepresentation |
string |
“byteCount” |
Determines the chunk of the packet data |
source.packetProtocol |
string |
“unknown” |
|
source.packetLength |
int |
||
source.packetData |
int |
-1 |
|
source.attachCreationTimeTag |
bool |
true |
|
source.attachIdentityTag |
bool |
true |
|
source.attachDirectionTag |
bool |
true |
|
source.clockModule |
string |
“” |
Relative path of a module that implements IClock(1,:ref:2 <neddoc-msg-inet-iclock>); optional |
source.initialProductionOffset |
double |
-1s |
Initial duration before which packets are not produced. When negative, then produce packet in initialize() |
source.productionInterval |
double |
Elapsed time between subsequent packets pushed to the connected packet consumer |
|
source.scheduleForAbsoluteTime |
bool |
true |
When a clock is used, “relative” means that setting the clock will not affect the simulation time of the event |
sink.displayStringTextFormat |
string |
“received %p pk (%l)” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
sink.clockModule |
string |
“” |
Relative path of a module that implements IClock(1,:ref:2 <neddoc-msg-inet-iclock>); optional |
sink.initialConsumptionOffset |
double |
0s |
Initial duration before which packets are not consumed |
sink.consumptionInterval |
double |
0s |
Elapsed time between subsequent packets allowed to be pushed by the connected packet producer, 0 means any number of packets can be pushed at the same simulation time |
sink.scheduleForAbsoluteTime |
bool |
true |
When a clock is used, “relative” means that setting the clock will not affect the simulation time of the event |
io.displayStringTextFormat |
string |
“rcvd: {numReceived} pks\nsent: {numSent} pks” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
io.interfaceTableModule |
string |
||
io.interface |
string |
“” |
|
io.localAddress |
string |
“” |
|
io.remoteAddress |
string |
“” |
|
io.localSap |
int |
-1 |
|
io.remoteSap |
int |
-1 |
|
io.stopOperationExtraTime |
double |
-1s |
Extra time after lifecycle stop operation finishes |
io.stopOperationTimeout |
double |
2s |
Timeout value for lifecycle stop operation |
Source code¶
//
// Generates traffic as an IEEE 802.2 LLC application. The traffic
// source and traffic sink modules can be built from queueing model elements.
//
module Ieee8022LlcApp like IApp
{
parameters:
string interfaceTableModule;
*.interfaceTableModule = default(absPath(this.interfaceTableModule));
@application;
@display("i=block/app");
gates:
input socketIn;
output socketOut;
submodules:
source: <default("ActivePacketSource")> like IActivePacketSource if typename != "" {
parameters:
@display("p=200,150");
}
tagger: <default("")> like IPacketFlow {
parameters:
@display("p=200,300");
}
measurementStarter: <default("")> like IPacketFlow {
parameters:
@display("p=200,450");
}
sink: <default("PassivePacketSink")> like IPassivePacketSink if typename != "" {
parameters:
@display("p=500,150");
}
measurementRecorder: <default("")> like IPacketFlow {
parameters:
@display("p=500,450");
}
io: Ieee8022LlcSocketIo {
parameters:
@display("p=400,600");
}
connections allowunconnected:
source.out --> tagger.in if exists(source);
tagger.out --> measurementStarter.in;
measurementStarter.out --> io.trafficIn;
io.socketOut --> socketOut;
socketIn --> io.socketIn;
io.trafficOut --> measurementRecorder.in;
measurementRecorder.out --> sink.in if exists(sink);
}