EthernetSocketIo

Package: inet.applications.ethernet

EthernetSocketIo

simple module

This module provides Ethernet socket handling for generic applications.

Used in compound modules

Name Type Description
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.

Parameters

Name Type Default value Description
interfaceTableModule string

relative module path of the interface table

interface string ""

network interface name

localAddress string ""

local Ethernet MAC address

remoteAddress string ""

remove Ethernet MAC address

stopOperationExtraTime double -1s

extra time after lifecycle stop operation finished

stopOperationTimeout double 2s

timeout value for lifecycle stop operation

Properties

Name Value Description
lifecycleSupport
display i=block/socket

Gates

Name Direction Size Description
trafficIn input
trafficOut output
socketIn input
socketOut output

Signals

Name Type Unit
packetReceived inet::Packet
packetSent inet::Packet

Statistics

Name Title Source Record Unit Interpolation Mode
packetReceived packets received packetReceived count, sum(packetBytes), vector(packetBytes) none
packetSent packets sent packetSent count, sum(packetBytes), vector(packetBytes) none

Direct method calls (observed)

call tofunctioninfo
MessageDispatcherinet::MessageDispatcher::arrivedarrived

Incoming messages (observed)

gatemsgkindctrlsrcModuletags
trafficInPacket0ActivePacketSourceDirectionTag, PacketProtocolTag

Outgoing messages (observed)

gatemsgkindctrldestModuletags
socketOutPacket0PacketMultiplexerDirectionTag, DispatchProtocolReq, EncapsulationProtocolReq, MacAddressReq, PacketProtocolTag, SocketReq

Shared Tagging operations (observed)

tagTypetagAction
DispatchProtocolReqaddTagIfAbsent
EncapsulationProtocolReqaddTagIfAbsent, findTagForUpdate
MacAddressReqaddTag
PacketProtocolTagfindTag
SocketIndfindTag
SocketReqaddTagIfAbsent

Source code

//
// This module provides Ethernet socket handling for generic applications.
//
simple EthernetSocketIo
{
    parameters:
        string interfaceTableModule; // relative module path of the interface table
        string interface = default(""); // network interface name
        string localAddress = default(""); // local Ethernet MAC address
        string remoteAddress = default(""); // remove Ethernet MAC address
        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