DataService¶
Package: inet.protocolelement.service
compound module DataService
(no description)
Usage diagram¶
Properties¶
Name |
Value |
Description |
|---|---|---|
display |
i=block/layer |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
upperLayerIn |
input |
||
upperLayerOut |
output |
||
lowerLayerIn |
input |
||
lowerLayerOut |
output |
Unassigned submodule parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
aggregator.aggregatorPolicy.displayStringTextFormat |
string |
“” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
aggregator.aggregatorPolicy.minNumSubpackets |
int |
0 |
|
aggregator.aggregatorPolicy.maxNumSubpackets |
int |
||
aggregator.aggregatorPolicy.minAggregatedLength |
int |
0b |
|
aggregator.aggregatorPolicy.maxAggregatedLength |
int |
||
fragmenter.displayStringTextFormat |
string |
“processed {numProcessedPackets} pk ({processedTotalLength})” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
fragmenter.deleteSelf |
bool |
false |
|
fragmenter.headerPosition |
string |
“front” |
|
sequenceNumbering.displayStringTextFormat |
string |
“processed {numProcessedPackets} pk ({processedTotalLength})” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
queue.displayStringTextFormat |
string |
“contains %p pk (%l) pushed %u\npulled %o removed %r dropped %d” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
queue.packetCapacity |
int |
100 |
Maximum number of packets in the queue, no limit by default |
queue.dataCapacity |
int |
-1b |
Maximum total length of packets in the queue, no limit by default |
queue.dropperClass |
string |
“inet::queueing::PacketAtCollectionEndDropper” |
Determines which packets are dropped when the queue is overloaded, packets are not dropped by default; the parameter must be the name of a C++ class which implements the IPacketDropperFunction C++ interface and is registered via Register_Class |
queue.comparatorClass |
string |
“” |
Determines the order of packets in the queue, insertion order by default; the parameter must be the name of a C++ class which implements the IPacketComparatorFunction C++ interface and is registered via Register_Class |
queue.bufferModule |
string |
“” |
Relative module path to the IPacketBuffer module used by this queue, implicit buffer by default |
server.displayStringTextFormat |
string |
“served %p pk (%l)\n%s” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
server.clockModule |
string |
“” |
Relative path of a module that implements IClock(1,:ref:2 <neddoc-msg-inet-iclock>); optional |
server.serveSchedulingPriority |
int |
-1 |
Specifies the FES scheduling priority for the extra event that is pulling the packet, -1 means no extra event |
server.processingTime |
double |
Determines additional processing time per packet |
|
server.processingBitrate |
double |
inf bps |
Determines additional processing time per bit |
deaggregator.displayStringTextFormat |
string |
“processed {numProcessedPackets} pk ({processedTotalLength})” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
deaggregator.deleteSelf |
bool |
false |
|
defragmenter.displayStringTextFormat |
string |
“processed {numProcessedPackets} pk ({processedTotalLength})” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
defragmenter.deleteSelf |
bool |
false |
|
defragmenter.headerPosition |
string |
“front” |
|
reordering.displayStringTextFormat |
string |
“processed {numProcessedPackets} pk ({processedTotalLength})” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
Source code¶
module DataService
{
parameters:
@display("i=block/layer");
gates:
input upperLayerIn;
output upperLayerOut;
input lowerLayerIn;
output lowerLayerOut;
submodules:
aggregator: SubpacketLengthHeaderBasedAggregator {
@display("p=150,100");
}
fragmenter: FragmentNumberHeaderBasedDefragmenter {
@display("p=150,200");
}
sequenceNumbering: SequenceNumbering {
@display("p=150,300");
}
queue: <default("DropTailQueue")> like IPacketQueue {
@display("p=150,400");
}
server: <default("PacketServer")> like IPacketServer {
@display("p=150,500");
}
deaggregator: SubpacketLengthHeaderBasedDeaggregator {
@display("p=450,100");
}
defragmenter: FragmentNumberHeaderBasedDefragmenter {
@display("p=450,200");
}
reordering: Reordering {
@display("p=450,300");
}
connections:
upperLayerIn --> { @display("m=n"); } --> aggregator.in;
aggregator.out --> fragmenter.in;
fragmenter.out --> sequenceNumbering.in;
sequenceNumbering.out --> queue.in;
queue.out --> server.in;
server.out --> { @display("m=s"); } --> lowerLayerOut;
lowerLayerIn --> { @display("m=s"); } --> reordering.in;
reordering.out --> defragmenter.in;
defragmenter.out --> deaggregator.in;
deaggregator.out --> { @display("m=n"); } --> upperLayerOut;
}