Simple Module EtherAppSrv

Package: inet.applications.ethernet
File: src/inet/applications/ethernet/EtherAppSrv.ned

C++ definition

Server side of the EtherCli model -- generates EtherAppResp packets with the number of bytes requested by the client in EtherAppReq. It should be connected directly to EtherLLC or a Ieee802NicXXX module.

EtherAppSrv

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

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
EtherHost compound module

An example host with one Ethernet port and a traffic generator that generates request-reply traffic directly over Ethernet. This host model does not contain higher layer protocols (IP, TCP). By default it is configured to use half-duplex MAC (CSMA/CD).

Parameters:

Name Type Default value Description
registerSAP bool

whether to sent IEEE802CTRL_REGISTER_DSAP on startup

localSAP int 0xf1

Properties:

Name Value Description
display i=block/app

Gates:

Name Direction Size Description
in input
out output

Signals:

Name Type Unit
sentPk cPacket
rcvdPk cPacket

Statistics:

Name Title Source Record Unit Interpolation Mode
sentPk packets sent sentPk count, sum(packetBytes), vector(packetBytes) none
rcvdPk packets received rcvdPk count, sum(packetBytes), vector(packetBytes) none
endToEndDelay end-to-end delay messageAge(rcvdPk) histogram, vector s none

Source code:

//
// Server side of the EtherCli model -- generates ~EtherAppResp packets
// with the number of bytes requested by the client in ~EtherAppReq.
// It should be connected directly to ~EtherLLC or a Ieee802NicXXX module.
//
simple EtherAppSrv
{
    parameters:
        bool registerSAP; // whether to sent IEEE802CTRL_REGISTER_DSAP on startup
        int localSAP = default(0xf1);
        @display("i=block/app");
        @signal[sentPk](type=cPacket);
        @signal[rcvdPk](type=cPacket);
        @statistic[rcvdPk](title="packets received"; source=rcvdPk; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[sentPk](title="packets sent"; source=sentPk; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[endToEndDelay](title="end-to-end delay"; source="messageAge(rcvdPk)"; unit=s; record=histogram,vector; interpolationmode=none);
    gates:
        input in @labels(Ieee802Ctrl/up);
        output out @labels(Ieee802Ctrl/down);
}