UdpSourceApp

Package: inet.applications.udpapp

compound module UdpSourceApp

Implements a UDP application that only sends packets.

UdpSourceAppsource.out --> tagger.in inherited from UdpApp conditional: exists(source)?tagger.out --> measurementStarter.in inherited from UdpAppmeasurementStarter.out --> io.trafficIn inherited from UdpAppio.socketOut --> socketOut inherited from UdpAppsocketIn --> io.socketIn inherited from UdpAppio.trafficOut --> measurementRecorder.in inherited from UdpAppmeasurementRecorder.out --> sink.in inherited from UdpApp conditional: exists(sink)?source: inet.queueing.source.ActivePacketSource (like IActivePacketSource) inherited from UdpApp 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"); }sourcetagger: inet.queueing.contract.IPacketFlow (like IPacketFlow) inherited from UdpApp IPacketFlow: Interface for packet flows. Source: tagger: <default("")> like IPacketFlow { parameters: @display("p=200,300"); }taggermeasurementStarter: inet.queueing.contract.IPacketFlow (like IPacketFlow) inherited from UdpApp IPacketFlow: Interface for packet flows. Source: measurementStarter: <default("")> like IPacketFlow { parameters: @display("p=200,450"); }measurementStartersink: inet.queueing.sink.PassivePacketSink (like IPassivePacketSink) inherited from UdpApp 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"); }sinkmeasurementRecorder: inet.queueing.contract.IPacketFlow (like IPacketFlow) inherited from UdpApp IPacketFlow: Interface for packet flows. Source: measurementRecorder: <default("")> like IPacketFlow { parameters: @display("p=500,450"); }measurementRecorderio: inet.applications.udpapp.UdpSocketIo inherited from UdpApp Provides UDP socket handling for generic applications. Source: io: UdpSocketIo { parameters: @display("p=350,600"); }io

Inheritance diagram

Extends

Name

Type

Description

UdpApp

compound module

Generates traffic for a UDP application. The traffic source and traffic sink modules can be built from queueing model elements.

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

source.displayStringTextFormat

string

“created %p pk (%l)”

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

source.packetNameFormat

string

“%a-%c”

See directives in module documentation

source.packetRepresentation

string

“byteCount”

Determines the chunk of the packet data

source.packetProtocol

string

“unknown”

source.packetLength

int

source.packetData

int

-1

source.attachCreationTimeTag

bool

true

source.attachIdentityTag

bool

true

source.attachDirectionTag

bool

true

source.clockModule

string

“”

Relative path of a module that implements IClock(1,:ref:2 <neddoc-msg-inet-iclock>); optional

source.initialProductionOffset

double

-1s

Initial duration before which packets are not produced. When negative, then produce packet in initialize()

source.productionInterval

double

Elapsed time between subsequent packets pushed to the connected packet consumer

source.scheduleForAbsoluteTime

bool

true

When a clock is used, “relative” means that setting the clock will not affect the simulation time of the event

sink.displayStringTextFormat

string

“received %p pk (%l)”

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

sink.clockModule

string

“”

Relative path of a module that implements IClock(1,:ref:2 <neddoc-msg-inet-iclock>); optional

sink.initialConsumptionOffset

double

0s

Initial duration before which packets are not consumed

sink.consumptionInterval

double

0s

Elapsed time between subsequent packets allowed to be pushed by the connected packet producer, 0 means any number of packets can be pushed at the same simulation time

sink.scheduleForAbsoluteTime

bool

true

When a clock is used, “relative” means that setting the clock will not affect the simulation time of the event

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

//
// Implements a UDP application that only sends packets.
//
module UdpSourceApp extends UdpApp
{
    parameters:
        sink.typename = "";
}

File: src/inet/applications/udpapp/UdpSourceApp.ned