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.

inet.applications.ethernet.EtherAppServerEtherAppServersimple

Usage diagram

Inheritance 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.

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

display

i=block/app

lifecycleSupport

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

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);
}

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