Package: inet.applications.udpapp
UdpSocketIo
simple moduleThis module provides UDP socket handling for generic applications.
Used in compound modules
Name | Type | Description |
---|---|---|
UdpApp | compound module |
This 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 | ||
localAddress | string | "" | |
localPort | int | -1 | |
destAddress | string | "" | |
destPort | int | ||
timeToLive | int | -1 |
if not -1, set the TTL (IPv4) or Hop Limit (IPv6) field of sent packets to this value |
dontFragment | bool | false |
if true, asks IP to not fragment the message during routing |
dscp | int | -1 |
if not -1, set the DSCP (IPv4/IPv6) field of sent packets to this value |
tos | int | -1 |
if not -1, set the Type Of Service (IPv4) / Traffic Class (IPv6) field of sent packets to this value |
multicastInterface | string | "" |
if not empty, set the multicast output interface option on the socket (interface name expected) |
multicastAddresses | object | [] |
list of multicast addresses that the application socket joins |
receiveBroadcast | bool | false |
if true, makes the socket receive broadcast packets |
joinLocalMulticastGroups | bool | false |
if true, makes the socket receive packets from all multicast groups set on local interfaces |
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 to | function | info |
---|---|---|
MessageDispatcher | inet::MessageDispatcher::arrived | arrived |
Incoming messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
socketIn | Packet | 0 (UdpStatusInd::UDP_I_DATA) | Udp | DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, L4PortInd, NetworkProtocolInd, SocketInd, TosInd, TransportProtocolInd, DirectionTag?, DropEligibleInd?, EncapsulationProtocolInd?, FragmentTag?, MacAddressInd?, PcpInd?, SequenceNumberInd?, StreamInd?, UserPriorityInd?, VlanInd? | |
trafficIn | Packet | 0 | PacketMultiplexer | DirectionTag, PacketProtocolTag | |
trafficIn | Packet | 0 | FlowMeasurementStarter | DirectionTag, PacketProtocolTag | |
trafficIn | Packet | 0 | PacketTagger | DirectionTag, PacketProtocolTag, VlanReq | |
trafficIn | Packet | 0 | MarkovScheduler | DirectionTag, PacketProtocolTag | |
trafficIn | Packet | 0 | ActivePacketSource | DirectionTag, PacketProtocolTag |
Outgoing messages (observed)
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
DispatchProtocolReq | addTagIfAbsent |
SocketInd | findTag, removeTag |
SocketReq | addTagIfAbsent |
Tagging operations (observed)
tagType | tagAction |
---|---|
inet::Ipv4InterfaceData | findTag |
Source code
// // This module provides UDP socket handling for generic applications. // simple UdpSocketIo { parameters: string interfaceTableModule; string localAddress = default(""); int localPort = default(-1); string destAddress = default(""); int destPort; int timeToLive = default(-1); // if not -1, set the TTL (IPv4) or Hop Limit (IPv6) field of sent packets to this value bool dontFragment = default(false); // if true, asks IP to not fragment the message during routing int dscp = default(-1); // if not -1, set the DSCP (IPv4/IPv6) field of sent packets to this value int tos = default(-1); // if not -1, set the Type Of Service (IPv4) / Traffic Class (IPv6) field of sent packets to this value string multicastInterface = default(""); // if not empty, set the multicast output interface option on the socket (interface name expected) object multicastAddresses = default([]); // list of multicast addresses that the application socket joins bool receiveBroadcast = default(false); // if true, makes the socket receive broadcast packets bool joinLocalMulticastGroups = default(false); // if true, makes the socket receive packets from all multicast groups set on local interfaces 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/udpapp/UdpSocketIo.ned