UdpApp

Package: inet.applications.udpapp

UdpApp

compound module

Generates traffic for a UDP 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 : UdpSocketIo

Provides UDP socket handling for generic applications.

Source:
io: UdpSocketIo {
    parameters:
        @display("p=350,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
UdpRequestResponseApp compound module

A generic request/response-based server application. For each request it receives, it generates different traffic based on the data the request contains. The client application can be any source that is capable of generating packets with different data. The first byte of the packet data determines the response traffic, which can be configured to produce complex streams of packets with various data and timing distributions.

UdpSinkApp compound module

Implements a UDP application that only receives packets.

UdpSourceApp compound module

Implements a UDP application that only sends packets.

Parameters

Name Type Default value Description
interfaceTableModule string

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 "rcvd: {numReceived} pks\nsent: {numSent} pks"

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

io.interfaceTableModule string
io.localAddress string ""
io.localPort int -1
io.destAddress string ""
io.destPort int
io.timeToLive int -1

If not -1, set the TTL (IPv4) or Hop Limit (IPv6) field of sent packets to this value

io.dontFragment bool false

If true, ask IP to not fragment the message during routing

io.dscp int -1

If not -1, set the DSCP (IPv4/IPv6) field of sent packets to this value

io.tos int -1

If not -1, set the Type Of Service (IPv4) / Traffic Class (IPv6) field of sent packets to this value

io.multicastInterface string ""

If not empty, set the multicast output interface option on the socket (interface name expected)

io.multicastAddresses object []

List of multicast addresses that the application socket joins

io.receiveBroadcast bool false

If true, make the socket receive broadcast packets

io.joinLocalMulticastGroups bool false

If true, make the socket receive packets from all multicast groups set on local interfaces

io.stopOperationExtraTime double -1s

Extra time after lifecycle stop operation finishes

io.stopOperationTimeout double 2s

Timeout value for lifecycle stop operation

Source code

//
// Generates traffic for a UDP application. The traffic source and
// traffic sink modules can be built from queueing model elements.
//
module UdpApp like IApp
{
    parameters:
        string interfaceTableModule;
        *.interfaceTableModule = default(absPath(".interfaceTable"));
        @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: UdpSocketIo {
            parameters:
                @display("p=350,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/udpapp/UdpApp.ned