EtherAppServer

Package: inet.applications.ethernet

EtherAppServer

simple module

C++ definition

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.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Used in compound modules

Name Type Description
EthernetHost 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.

SinkClient compound module (no description)
SinkNode compound module (no description)
ThroughputServer compound module (no description)
ThroughputServer compound module (no description)

Extends

Name Type Description
SimpleModule 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
lifecycleSupport
display i=block/app

Gates

Name Direction Size Description
in input
out output

Signals

Name Type Unit Description
packetReceived inet::Packet
packetSent inet::Packet

Statistics

Name Title Source Record Unit Interpolation Mode Description
packetReceived packets received packetReceived count, sum(packetBytes), vector(packetBytes) none
packetSent packets sent packetSent count, sum(packetBytes), vector(packetBytes) none
endToEndDelay end-to-end delay dataAge(packetReceived) histogram, vector s 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);
}

File: src/inet/applications/ethernet/EtherAppServer.ned