EthernetApp

Package: inet.applications.ethernet

EthernetApp

compound module

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

source : like IActivePacketSource

ActivePacketSource: An active packet source which pushes packets into the connected module.

IActivePacketSource: Interface for active packet source modules.

Source:
source: <default("ActivePacketSource")> like IActivePacketSource if typename != "" {
    parameters:
        @display("p=200,150");
} tagger : like IPacketFlow

IPacketFlow: Interface for packet flows.

Source:
tagger: <default("")> like IPacketFlow {
    parameters:
        @display("p=200,300");
} measurementStarter : like IPacketFlow

IPacketFlow: Interface for packet flows.

Source:
measurementStarter: <default("")> like IPacketFlow {
    parameters:
        @display("p=200,450");
} sink : like IPassivePacketSink

PassivePacketSink: A passive packet sink which is pushed with packets by the connected packet producer.

IPassivePacketSink: Interface for passive packet sink modules.

Source:
sink: <default("PassivePacketSink")> like IPassivePacketSink if typename != "" {
    parameters:
        @display("p=500,150");
} measurementRecorder : like IPacketFlow

IPacketFlow: Interface for packet flows.

Source:
measurementRecorder: <default("")> like IPacketFlow {
    parameters:
        @display("p=500,450");
} io : EthernetSocketIo

Provides Ethernet socket handling for generic applications.

Source:
io: EthernetSocketIo {
    parameters:
        @display("p=400,600");
}

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

Implements an Ethernet application that only receives packets.

EthernetSourceApp compound 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.displayStringTextFormat string ""

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

io.interfaceTableModule string

Relative module path of the interface table

io.interface string ""

Network(1,2,3,4) interface name

io.protocol string ""

Bind the socket to this protocol if specified

io.localAddress string ""

Local Ethernet MAC address

io.remoteAddress string ""

Remote Ethernet MAC address

io.steal bool false

Steal packets

io.stopOperationExtraTime double -1s

Extra time after lifecycle stop operation finished

io.stopOperationTimeout double 2s

Timeout value for lifecycle stop operation

Source code

//
// 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