EtherAppServer¶
Package: inet.applications.ethernet
simple module EtherAppServer
Server side of the EtherAppClient model – generates packets containing EtherAppResp chunks with the number of bytes requested by the client in corresponding EtherAppReq. It should be connected directly to Ieee8022Llc module.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
compound module |
A simplified network device that communicates directly over Ethernet without higher layer protocols like IP or TCP. It provides a basic host model for Ethernet-only simulations. |
Extends¶
Name |
Type |
Description |
|---|---|---|
simple module |
Base module for all INET simple modules. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
displayStringTextFormat |
string |
“” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
localSAP |
int |
0xf1 |
|
stopOperationExtraTime |
double |
-1s |
Extra time after lifecycle stop operation is finished |
stopOperationTimeout |
double |
2s |
Timeout value for lifecycle stop operation |
Properties¶
Name |
Value |
Description |
|---|---|---|
class |
EtherAppServer |
|
display |
i=block/app |
|
lifecycleSupport |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
in |
input |
||
out |
output |
Signals¶
Name |
Type |
Unit |
Description |
|---|---|---|---|
packetReceived |
|||
packetSent |
Statistics¶
Name |
Title |
Source |
Record |
Unit |
Interpolation Mode |
Description |
|---|---|---|---|---|---|---|
endToEndDelay |
end-to-end delay |
dataAge(packetReceived) |
histogram,vector |
s |
none |
|
packetReceived |
packets received |
packetReceived |
count,”sum(packetBytes)”,”vector(packetBytes)” |
none |
||
packetSent |
packets sent |
packetSent |
count,”sum(packetBytes)”,”vector(packetBytes)” |
none |
Source code¶
//
// Server side of the ~EtherAppClient model -- generates packets containing
// ~EtherAppResp chunks with the number of bytes requested by the client in
// corresponding ~EtherAppReq. It should be connected directly to ~Ieee8022Llc
// module.
//
simple EtherAppServer extends SimpleModule
{
parameters:
@class(EtherAppServer);
int localSAP = default(0xf1);
@lifecycleSupport;
double stopOperationExtraTime @unit(s) = default(-1s); // Extra time after lifecycle stop operation is finished
double stopOperationTimeout @unit(s) = default(2s); // Timeout value for lifecycle stop operation
@display("i=block/app");
@signal[packetSent](type=inet::Packet);
@signal[packetReceived](type=inet::Packet);
@statistic[packetReceived](title="packets received"; source=packetReceived; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
@statistic[packetSent](title="packets sent"; source=packetSent; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
@statistic[endToEndDelay](title="end-to-end delay"; source="dataAge(packetReceived)"; unit=s; record=histogram,vector; interpolationmode=none);
gates:
input in @labels(Ieee802Ctrl/up) @messageKinds(inet::SocketStatusInd);
output out @labels(Ieee802Ctrl/down) @messageKinds(inet::SocketCommandCode);
}