EthernetApp

Package: inet.applications.ethernet

EthernetApp

compound module

This module generates traffic as an Ethernet application. The traffic source and traffic sink modules can be built from queueing model elements.

IActivePacketSource IPacketFlow IPacketFlow IPassivePacketSink IPacketFlow EthernetSocketIo

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.

Known subclasses

Name Type Description
EthernetSinkApp compound module

This module implements an Ethernet application that only receives packets.

EthernetSourceApp compound module

This module implements an Ethernet application that only sends packets.

Parameters

Name Type Default value Description
interfaceTableModule string

relative module path of the interface table

Properties

Name Value Description
application
display i=block/app

Gates

Name Direction Size Description
socketIn input
socketOut output

Unassigned submodule parameters

Name Type Default value Description
io.interfaceTableModule string

relative module path of the interface table

io.interface string ""

network interface name

io.localAddress string ""

local Ethernet MAC address

io.remoteAddress string ""

remove Ethernet MAC address

io.stopOperationExtraTime double -1s

extra time after lifecycle stop operation finished

io.stopOperationTimeout double 2s

timeout value for lifecycle stop operation

Source code

//
// This module generates traffic as an Ethernet application. The traffic source
// and traffic sink modules can be built from queueing model elements.
//
module EthernetApp like IApp
{
    parameters:
        string interfaceTableModule; // relative module path of the interface table
        *.interfaceTableModule = default(absPath(this.interfaceTableModule));
        @application;
        @display("i=block/app");
    gates:
        input socketIn;
        output socketOut;
    submodules:
        source: <default("ActivePacketSource")> like IActivePacketSource if typename != "" {
            parameters:
                @display("p=200,150");
        }
        tagger: <default("")> like IPacketFlow {
            parameters:
                @display("p=200,300");
        }
        measurementStarter: <default("")> like IPacketFlow {
            parameters:
                @display("p=200,450");
        }
        sink: <default("PassivePacketSink")> like IPassivePacketSink if typename != "" {
            parameters:
                @display("p=500,150");
        }
        measurementRecorder: <default("")> like IPacketFlow {
            parameters:
                @display("p=500,450");
        }
        io: EthernetSocketIo {
            parameters:
                @display("p=400,600");
        }
    connections allowunconnected:
        source.out --> tagger.in if exists(source);
        tagger.out --> measurementStarter.in;
        measurementStarter.out --> io.trafficIn;
        io.socketOut --> socketOut;

        socketIn --> io.socketIn;
        io.trafficOut --> measurementRecorder.in;
        measurementRecorder.out --> sink.in if exists(sink);
}
File: src/inet/applications/ethernet/EthernetApp.ned