EthernetSocketIo

Package: inet.applications.ethernet

EthernetSocketIo

simple module

C++ definition

Provides Ethernet socket handling for generic applications.

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

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

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

interfaceTableModule string

Relative module path of the interface table

interface string ""

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

protocol string ""

Bind the socket to this protocol if specified

localAddress string ""

Local Ethernet MAC address

remoteAddress string ""

Remote Ethernet MAC address

steal bool false

Steal packets

stopOperationExtraTime double -1s

Extra time after lifecycle stop operation finished

stopOperationTimeout double 2s

Timeout value for lifecycle stop operation

Properties

Name Value Description
class EthernetSocketIo
lifecycleSupport
display i=block/socket

Gates

Name Direction Size Description
trafficIn input
trafficOut output
socketIn input
socketOut 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

Source code

//
// Provides Ethernet socket handling for generic applications.
//
simple EthernetSocketIo extends SimpleModule
{
    parameters:
        @class(EthernetSocketIo);
        string interfaceTableModule; // Relative module path of the interface table
        string interface = default(""); // Network interface name
        string protocol = default(""); // Bind the socket to this protocol if specified
        string localAddress = default(""); // Local Ethernet MAC address
        string remoteAddress = default(""); // Remote Ethernet MAC address
        bool steal = default(false); // Steal packets
        double stopOperationExtraTime @unit(s) = default(-1s);    // Extra time after lifecycle stop operation finished
        double stopOperationTimeout @unit(s) = default(2s);    // Timeout value for lifecycle stop operation
        @lifecycleSupport();
        @display("i=block/socket");
        @signal[packetSent](type=inet::Packet);
        @signal[packetReceived](type=inet::Packet);
        @statistic[packetSent](title="packets sent"; source=packetSent; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[packetReceived](title="packets received"; source=packetReceived; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
    gates:
        input trafficIn;
        output trafficOut;
        input socketIn;
        output socketOut;
}
File: src/inet/applications/ethernet/EthernetSocketIo.ned