TransportLayerNodeBase

Package: inet.node.base

compound module TransportLayerNodeBase

An extension of the network layer node base with transport layer protocols. Provides support for UDP, TCP, and SCTP, enabling end-to-end communication services for applications.

Adds transport layer capabilities to the node architecture, bridging the gap between applications and the network layer. It handles connection management, reliability, flow control, and congestion control depending on the transport protocol used.

TransportLayerNodeBasellc.lowerLayerOut --> cb.in++ inherited from LinkLayerNodeBase conditional: exists(llc)?llc.lowerLayerIn --> cb.out++ inherited from LinkLayerNodeBase conditional: exists(llc)?cb.out++ --> bridging.upperLayerIn inherited from LinkLayerNodeBase conditional: exists(bridging)?bridging.upperLayerOut --> cb.in++ inherited from LinkLayerNodeBase conditional: exists(bridging)?bridging.lowerLayerOut --> bl.in++ inherited from LinkLayerNodeBase conditional: exists(bridging)?bl.out++ --> bridging.lowerLayerIn inherited from LinkLayerNodeBase conditional: exists(bridging)?cb.out++ --> bl.in++ inherited from LinkLayerNodeBase conditional: !exists(bridging)?bl.out++ --> cb.in++ inherited from LinkLayerNodeBase conditional: !exists(bridging)?bl.out++ --> li.in++ inherited from LinkLayerNodeBaseli.out++ --> bl.in++ inherited from LinkLayerNodeBasebl.out++ --> ieee8021q.upperLayerIn inherited from LinkLayerNodeBase conditional: exists(ieee8021q)?ieee8021q.upperLayerOut --> bl.in++ inherited from LinkLayerNodeBase conditional: exists(ieee8021q)?bl.out++ --> ieee8021r.upperLayerIn inherited from LinkLayerNodeBase conditional: exists(ieee8021r)?ieee8021r.upperLayerOut --> bl.in++ inherited from LinkLayerNodeBase conditional: exists(ieee8021r)?bl.out++ --> ethernet.upperLayerIn inherited from LinkLayerNodeBase conditional: exists(ethernet)?ethernet.upperLayerOut --> bl.in++ inherited from LinkLayerNodeBase conditional: exists(ethernet)?ieee8021q.lowerLayerOut --> li.in++ inherited from LinkLayerNodeBase conditional: exists(ieee8021q)?li.out++ --> ieee8021q.lowerLayerIn inherited from LinkLayerNodeBase conditional: exists(ieee8021q)?ieee8021r.lowerLayerOut --> li.in++ inherited from LinkLayerNodeBase conditional: exists(ieee8021r)?li.out++ --> ieee8021r.lowerLayerIn inherited from LinkLayerNodeBase conditional: exists(ieee8021r)?ethernet.lowerLayerOut --> li.in++ inherited from LinkLayerNodeBase conditional: exists(ethernet)?li.out++ --> ethernet.lowerLayerIn inherited from LinkLayerNodeBase conditional: exists(ethernet)?radioIn[i] --> wlan[i].radioIn inherited from LinkLayerNodeBase for i=0..sizeof(radioIn)-1⦀ethg[i] <--> eth[i].phys inherited from LinkLayerNodeBase for i=0..sizeof(ethg)-1⦀pppg[i] <--> ppp[i].phys inherited from LinkLayerNodeBase for i=0..sizeof(pppg)-1⦀li.out++ --> lo[i].upperLayerIn inherited from LinkLayerNodeBase for i=0..numLoInterfaces-1⦀lo[i].upperLayerOut --> li.in++ inherited from LinkLayerNodeBase for i=0..numLoInterfaces-1⦀wlan[i].upperLayerOut --> li.in++ inherited from LinkLayerNodeBase for i=0..sizeof(radioIn)-1⦀wlan[i].upperLayerIn --> li.out++ inherited from LinkLayerNodeBase for i=0..sizeof(radioIn)-1⦀eth[i].upperLayerOut --> li.in++ inherited from LinkLayerNodeBase for i=0..sizeof(ethg)-1⦀eth[i].upperLayerIn --> li.out++ inherited from LinkLayerNodeBase for i=0..sizeof(ethg)-1⦀ppp[i].upperLayerOut --> li.in++ inherited from LinkLayerNodeBase for i=0..sizeof(pppg)-1⦀ppp[i].upperLayerIn --> li.out++ inherited from LinkLayerNodeBase for i=0..sizeof(pppg)-1⦀tun[i].upperLayerOut --> li.in++ inherited from LinkLayerNodeBase for i=0..numTunInterfaces-1⦀tun[i].upperLayerIn --> li.out++ inherited from LinkLayerNodeBase for i=0..numTunInterfaces-1⦀virt[i].upperLayerOut --> li.in++ inherited from LinkLayerNodeBase for i=0..numVirtInterfaces-1⦀virt[i].upperLayerIn --> li.out++ inherited from LinkLayerNodeBase for i=0..numVirtInterfaces-1⦀cb.out++ --> nl.in++ inherited from NetworkLayerNodeBasecb.in++ --> nl.out++ inherited from NetworkLayerNodeBaseipv4.ifIn --> nl.out++ inherited from NetworkLayerNodeBase conditional: hasIpv4?ipv4.ifOut --> nl.in++ inherited from NetworkLayerNodeBase conditional: hasIpv4?ipv6.ifIn --> nl.out++ inherited from NetworkLayerNodeBase conditional: hasIpv6?ipv6.ifOut --> nl.in++ inherited from NetworkLayerNodeBase conditional: hasIpv6?generic.ifIn --> nl.out++ inherited from NetworkLayerNodeBase conditional: exists(generic)?generic.ifOut --> nl.in++ inherited from NetworkLayerNodeBase conditional: exists(generic)?llc.upperLayerOut --> nl.in++ inherited from NetworkLayerNodeBase conditional: exists(llc)?llc.upperLayerIn --> nl.out++ inherited from NetworkLayerNodeBase conditional: exists(llc)?udp.ipOut --> tn.in++ conditional: hasUdp?udp.ipIn --> tn.out++ conditional: hasUdp?tcp.ipOut --> tn.in++ conditional: hasTcp?tcp.ipIn --> tn.out++ conditional: hasTcp?sctp.ipOut --> tn.in++ conditional: hasSctp?tn.out++ --> sctp.ipIn conditional: hasSctp?quic.udpOut --> tn.in++ conditional: hasQuic?tn.out++ --> quic.udpIn conditional: hasQuic?tn.out++ --> ipv4.transportIn conditional: hasIpv4?tn.in++ --> ipv4.transportOut conditional: hasIpv4?tn.out++ --> ipv6.transportIn conditional: hasIpv6?tn.in++ --> ipv6.transportOut conditional: hasIpv6?tn.out++ --> generic.transportIn conditional: hasGn?tn.in++ --> generic.transportOut conditional: hasGn?tn.out++ --> nl.in++tn.in++ --> nl.out++status: inet.common.lifecycle.NodeStatus inherited from NodeBase Keeps track of the status of the network node (up, down, etc.) for other modules, and also displa... Source: status: NodeStatus if hasStatus { @display("p=125,80;is=s"); }statusclock: inet.clock.contract.IClock (like IClock) inherited from NodeBase IClock: Interface for clock models. Source: clock: <default("")> like IClock if typename != "" { @display("p=125,320;is=s"); }clockenergyStorage: inet.power.contract.IEnergyStorage (like IEnergyStorage) inherited from NodeBase IEnergyStorage: The energy storage models describe devices that absorb energy produced by generators, and provide... Source: energyStorage: <default("")> like IEnergyStorage if typename != "" { @display("p=125,400;is=s"); }energyStorageenergyManagement: inet.power.contract.IEnergyManagement (like IEnergyManagement) inherited from NodeBase IEnergyManagement: The energy management models monitor an energy storage, estimate its state, and control the consu... Source: energyManagement: <default("")> like IEnergyManagement if typename != "" { @display("p=125,480;is=s"); }energyManagementenergyGenerator: inet.power.contract.IEnergyGenerator (like IEnergyGenerator) inherited from NodeBase IEnergyGenerator: The energy generator models describe the energy generation process of devices over time. Source: energyGenerator: <default("")> like IEnergyGenerator if typename != "" { @display("p=125,560;is=s"); }energyGeneratormobility: inet.mobility.contract.IMobility (like IMobility) inherited from NodeBase IMobility: The module interface for mobility models. Source: mobility: <default("")> like IMobility if typename != "" { @display("p=125,160;is=s"); }mobilitymeasurer: inet.common.IMeasurer (like IMeasurer) inherited from NodeBase IMeasurer: Interface for all standalone measurement modules. Source: measurer: <default("")> like IMeasurer if typename != "" { @display("p=125,640;is=s"); }measurerenvironment: inet.common.ExternalEnvironment inherited from NodeBase Executes a setup command on the host OS during initialization and another teardown command during... Source: environment: ExternalEnvironment if hasEnvironment { @display("p=125,800;is=s"); }environmentpcapRecorder[numPcapRecorders]: inet.common.packet.recorder.PcapRecorder inherited from LinkLayerNodeBase Records PCAP traces of frames sent/received by other modules within the same host. Source: pcapRecorder[numPcapRecorders]: PcapRecorder { @display("p=125,720;is=s"); }pcapRecorder[numPcapRecorders]interfaceTable: inet.networklayer.common.InterfaceTable inherited from LinkLayerNodeBase Keeps the table of network interfaces. Source: interfaceTable: InterfaceTable { @display("p=125,240;is=s"); }interfaceTablellc: inet.linklayer.contract.IIeee8022Llc (like IIeee8022Llc) inherited from LinkLayerNodeBase Source: llc: <default("")> like IIeee8022Llc if typename != "" { @display("p=375,525"); }llccb: inet.common.MessageDispatcher inherited from LinkLayerNodeBase Facilitates the interconnection of applications, protocols, and network interfaces, dispatching m... Source: cb: MessageDispatcher { @display("p=750,600;b=1000,5"); }cbbridging: inet.protocolelement.contract.IProtocolLayer (like IProtocolLayer) inherited from LinkLayerNodeBase IProtocolLayer: Interface for all protocol layer modules that connect to a higher and to a lower protocol layer,... Source: bridging: <default("")> like IProtocolLayer if typename != "" { @display("p=750,675"); }bridgingbl: inet.common.MessageDispatcher inherited from LinkLayerNodeBase Facilitates the interconnection of applications, protocols, and network interfaces, dispatching m... Source: bl: MessageDispatcher { @display("p=750,750;b=1000,5"); }blethernet: inet.linklayer.ethernet.basic.EthernetEncapsulation (like IEthernetLayer) inherited from LinkLayerNodeBase EthernetEncapsulation: Performs Ethernet II or Ethernet with LLC/SNAP encapsulation/decapsulation. IEthernetLayer: Module interface for Ethernet protocol layer implementations. Source: ethernet: <default(sizeof(ethg) > 0 ? "EthernetEncapsulation" : "")> like IEthernetLayer if typename != "" { @display("p=375,825"); }ethernetieee8021q: inet.linklayer.contract.IIeee8021qLayer (like IIeee8021qLayer) inherited from LinkLayerNodeBase Source: ieee8021q: <default("")> like IIeee8021qLayer if typename != "" { @display("p=525,825"); }ieee8021qieee8021r: inet.linklayer.contract.IIeee8021rLayer (like IIeee8021rLayer) inherited from LinkLayerNodeBase Source: ieee8021r: <default("")> like IIeee8021rLayer if typename != "" { @display("p=675,825"); }ieee8021rli: inet.common.MessageDispatcher inherited from LinkLayerNodeBase Facilitates the interconnection of applications, protocols, and network interfaces, dispatching m... Source: li: MessageDispatcher { @display("p=750,900;b=1000,5,,,,1"); }lilo[numLoInterfaces]: inet.linklayer.loopback.LoopbackInterface (like ILoopbackInterface) inherited from LinkLayerNodeBase LoopbackInterface: Implements a loopback network interface. ILoopbackInterface: Interface for loopback network interfaces. Source: lo[numLoInterfaces]: <default("LoopbackInterface")> like ILoopbackInterface { @display("p=750,975,row,150"); }lo[numLoInterfaces]wlan[numWlanInterfaces]: inet.linklayer.ieee80211.Ieee80211Interface (like IWirelessInterface) inherited from LinkLayerNodeBase Ieee80211Interface: Implements an IEEE 802.11 network interface. IWirelessInterface: Interface for wireless network interfaces. Source: wlan[numWlanInterfaces]: <default("Ieee80211Interface")> like IWirelessInterface { @display("p=375,1000,row,150;q=queue"); }#wlan[numWlanInterfaces]ppp[sizeof(pppg)]: inet.linklayer.ppp.PppInterface (like IPppInterface) inherited from LinkLayerNodeBase PppInterface: Implements a PPP network interface. IPppInterface: Interface for PPP network interfaces. Source: ppp[sizeof(pppg)]: <default("PppInterface")> like IPppInterface { @display("p=300,975,row,150;q=txQueue"); }#ppp[sizeof(pppg)]eth[sizeof(ethg)]: inet.linklayer.ethernet.basic.EthernetInterface (like IEthernetInterface) inherited from LinkLayerNodeBase EthernetInterface: Represents an Ethernet network interface. IEthernetInterface: Interface for Ethernet network interfaces. Source: eth[sizeof(ethg)]: <default("EthernetInterface")> like IEthernetInterface { @display("p=900,975,row,150;q=txQueue"); }#eth[sizeof(ethg)]tun[numTunInterfaces]: inet.linklayer.tun.TunInterface (like ITunnelInterface) inherited from LinkLayerNodeBase TunInterface: Implements a (simulated) TUN network interface. ITunnelInterface: Interface for tunnel network interfaces. Source: tun[numTunInterfaces]: <default("TunInterface")> like ITunnelInterface { @display("p=975,1000,row,150;q=txQueue"); }#tun[numTunInterfaces]virt[numVirtInterfaces]: inet.linklayer.virtual.VirtualInterface (like IVirtualInterface) inherited from LinkLayerNodeBase VirtualInterface: Implements a virtual network interface. IVirtualInterface: Interface for virtual network interfaces. Source: virt[numVirtInterfaces]: <default("VirtualInterface")> like IVirtualInterface { @display("p=975,1000,row,150;q=txQueue"); }#virt[numVirtInterfaces]ipv4: inet.networklayer.ipv4.Ipv4NetworkLayer (like INetworkLayer) inherited from NetworkLayerNodeBase Ipv4NetworkLayer: Network layer of an IPv4 node. Source: ipv4: <default("Ipv4NetworkLayer")> like INetworkLayer if hasIpv4 { @display("p=375,375;q=queue"); }#ipv4ipv6: inet.networklayer.ipv6.Ipv6NetworkLayer (like INetworkLayer) inherited from NetworkLayerNodeBase Ipv6NetworkLayer: Represents a complete IPv6 network layer (L3), to be used within hosts and routers. Source: ipv6: <default("Ipv6NetworkLayer")> like INetworkLayer if hasIpv6 { @display("p=525,375;q=queue"); }#ipv6generic: inet.networklayer.contract.INetworkLayer (like INetworkLayer) inherited from NetworkLayerNodeBase Source: generic: <default("")> like INetworkLayer if hasGn { @display("p=675,375;q=queue"); }#genericnl: inet.common.MessageDispatcher inherited from NetworkLayerNodeBase Facilitates the interconnection of applications, protocols, and network interfaces, dispatching m... Source: nl: MessageDispatcher { @display("p=750,450;b=1000,5,,,,1"); }nludp: inet.transportlayer.udp.Udp (like IUdp) Udp: UDP protocol implementation, for IPv4 (~Ipv4) and IPv6 (~Ipv6). IUdp: UDP protocol interface. Source: udp: <default(firstAvailableOrEmpty("Udp"))> like IUdp if hasUdp { @display("p=375,225"); }udptcp: inet.transportlayer.tcp.Tcp (like ITcp) Tcp: Implements the TCP protocol. ITcp: Interface for TCP protocol implementations. Source: tcp: <default(firstAvailableOrEmpty("Tcp", "TcpLwip", "TcpNsc"))> like ITcp if hasTcp { @display("p=525,225"); }tcpsctp: inet.transportlayer.sctp.Sctp (like ISctp) Sctp: Implements the SCTP protocol. ISctp: Interface for SCTP protocol. Source: sctp: <default(firstAvailableOrEmpty("Sctp"))> like ISctp if hasSctp { @display("p=675,225"); }sctpquic: inet.transportlayer.quic.Quic (like IQuic) Quic: Implements the QUIC protocol. IQuic: QUIC protocol interface. Source: quic: <default(firstAvailableOrEmpty("Quic"))> like IQuic if hasQuic { @display("p=825,226"); }quictn: inet.common.MessageDispatcher Facilitates the interconnection of applications, protocols, and network interfaces, dispatching m... Source: tn: MessageDispatcher { @display("p=750,300;b=1000,5,,,,1"); }tn

Usage diagram

Inheritance diagram

Known subclasses

Name

Type

Description

ApplicationLayerNodeBase

compound module

An extension of the transport layer node base that adds support for applications. Provides the highest level of abstraction for network nodes, completing the full network stack from physical to application layer.

Extends

Name

Type

Description

NetworkLayerNodeBase

compound module

An extension of the link layer node base with network layer functionality. Provides support for multiple network protocols, including IPv4 and IPv6.

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

hasStatus

bool

false

hasEnvironment

bool

false

osgModel

string

“”

3D model for OSG visualization, no 3D model by default

osgModelColor

string

“”

Tint color, no colorization by default

canvasImage

string

“”

Image for canvas visualization, no image by default

canvasImageColor

string

“”

Tint color, no colorization by default

recordPcap

bool

false

numPcapRecorders

int

recordPcap ? 1 : 0

numLoInterfaces

int

1

numWlanInterfaces

int

0

numEthInterfaces

int

0

Minimum number of Ethernet interfaces

numPppInterfaces

int

0

Minimum number of PPP interfaces

numTunInterfaces

int

0

numVirtInterfaces

int

0

fcsMode

string

“declared”

hasIpv4

bool

true

hasIpv6

bool

false

hasGn

bool

false

forwarding

bool

false

multicastForwarding

bool

false

hasUdp

bool

firstAvailableOrEmpty(“Udp”) != “”

hasTcp

bool

firstAvailableOrEmpty(“Tcp”, “TcpLwip”, “TcpNsc”) != “”

hasSctp

bool

false

hasQuic

bool

false

Properties

Name

Value

Description

class

NodeBase

display

bgb=1256,1125

labels

node,ethernet-node,wireless-node

networkNode

Gates

Name

Direction

Size

Description

radioIn [ ]

input

numWlanInterfaces

pppg [ ]

inout

numPppInterfaces

ethg [ ]

inout

numEthInterfaces

Unassigned submodule parameters

Name

Type

Default value

Description

status.displayStringTextFormat

string

“{stateStr}”

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

status.initialStatus

string

“UP”

Initial status of the network node

environment.displayStringTextFormat

string

“”

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

environment.initStage

int

0

Initialization stage for the setup command

environment.globalNamespace

bool

false

Create new network namespaces under /var/run/netns/ (Linux only)

environment.namespace

string

“”

Name of the host OS network namespace (optional) (Linux only)

environment.setupCommand

string

“”

A host OS system command

environment.teardownCommand

string

“”

A host OS system command

pcapRecorder.displayStringTextFormat

string

“rec: %n pks”

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

pcapRecorder.verbose

bool

true

Whether to log packets on the module output

pcapRecorder.recordEmptyPackets

bool

true

Specifies if zero length packets are recorded or not

pcapRecorder.enableConvertingPackets

bool

true

Specifies if converting packets to link type is allowed or not

pcapRecorder.pcapFile

string

“”

The PCAP file to be written, suggested value: pcapFile = “${resultdir}/${configname}-#${runnumber}” + fullpath() + “.pcap”

pcapRecorder.fileFormat

string

“pcapng”

pcapRecorder.snaplen

int

65535

Maximum number of bytes to record per packet

pcapRecorder.timePrecision

int

6

Time precision in recorded file. pcap supports only 6 (usec) or 9 (nanosec), pcapng supports more values (see ‘if_tsresol’ option in pcapng file format).

pcapRecorder.dumpBadFrames

bool

true

Enable dump of frames with hasBitError

pcapRecorder.moduleNamePatterns

string

“wlan[*] eth[*] ppp[*]”

Space-separated list of sibling module names to listen on

pcapRecorder.sendingSignalNames

string

“transmissionEnded”

Space-separated list of outbound packet signals to subscribe to

pcapRecorder.receivingSignalNames

string

“receptionEnded”

Space-separated list of inbound packet signals to subscribe to

pcapRecorder.dumpProtocols

string

“ethernetmac ppp ieee80211mac”

Space-separated list of protocol names as defined in the Protocol class

pcapRecorder.packetFilter

object

“*”

Which packets are considered, matches all packets by default

pcapRecorder.helpers

string

“”

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype

pcapRecorder.alwaysFlush

bool

false

Flush the pcapFile after each write to ensure that all packets are captured in case of a crash

interfaceTable.displayStringTextFormat

string

“{numInterfaces} interfaces”

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

interfaceTable.displayAddresses

bool

false

Whether to display IP addresses on links

cb.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

cb.interfaceTableModule

string

Module path to the InterfaceTable module

cb.forwardServiceRegistration

bool

true

cb.forwardProtocolRegistration

bool

true

cb.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

cb.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

cb.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

bl.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

bl.interfaceTableModule

string

Module path to the InterfaceTable module

bl.forwardServiceRegistration

bool

true

bl.forwardProtocolRegistration

bool

true

bl.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

bl.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

bl.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

ethernet.displayStringTextFormat

string

“passed up: {totalFromMAC}\nsent: {totalFromHigherLayer}”

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

ethernet.registerProtocol

bool

false

FIXME //KLUDGE should redesign place of EthernetEncapsulation and LLC modules

ethernet.interfaceTableModule

string

The path to the InterfaceTable module

ethernet.fcsMode

string

“declared”

ethernet.stopOperationExtraTime

double

-1s

Extra time after the lifecycle stop operation has finished

ethernet.stopOperationTimeout

double

2s

Timeout value for the lifecycle stop operation

li.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

li.interfaceTableModule

string

Module path to the InterfaceTable module

li.forwardServiceRegistration

bool

true

li.forwardProtocolRegistration

bool

true

li.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

li.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

li.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

lo.pcapRecorder.displayStringTextFormat

string

“rec: %n pks”

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

lo.pcapRecorder.verbose

bool

true

Whether to log packets on the module output

lo.pcapRecorder.recordEmptyPackets

bool

true

Specifies if zero length packets are recorded or not

lo.pcapRecorder.enableConvertingPackets

bool

true

Specifies if converting packets to link type is allowed or not

lo.pcapRecorder.pcapFile

string

“”

The PCAP file to be written, suggested value: pcapFile = “${resultdir}/${configname}-#${runnumber}” + fullpath() + “.pcap”

lo.pcapRecorder.fileFormat

string

“pcapng”

lo.pcapRecorder.snaplen

int

65535

Maximum number of bytes to record per packet

lo.pcapRecorder.timePrecision

int

6

Time precision in recorded file. pcap supports only 6 (usec) or 9 (nanosec), pcapng supports more values (see ‘if_tsresol’ option in pcapng file format).

lo.pcapRecorder.dumpBadFrames

bool

true

Enable dump of frames with hasBitError

lo.pcapRecorder.sendingSignalNames

string

“transmissionEnded”

Space-separated list of outbound packet signals to subscribe to

lo.pcapRecorder.receivingSignalNames

string

“receptionEnded”

Space-separated list of inbound packet signals to subscribe to

lo.pcapRecorder.dumpProtocols

string

“ethernetmac ppp ieee80211mac”

Space-separated list of protocol names as defined in the Protocol class

lo.pcapRecorder.packetFilter

object

“*”

Which packets are considered, matches all packets by default

lo.pcapRecorder.helpers

string

“”

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype

lo.pcapRecorder.alwaysFlush

bool

false

Flush the pcapFile after each write to ensure that all packets are captured in case of a crash

lo.lo.displayStringTextFormat

string

“rcv:{numRcvdOK} snt:{numSent}”

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

lo.lo.interfaceTableModule

string

The path to the InterfaceTable module

lo.lo.mtu

int

4470B

wlan.pcapRecorder.displayStringTextFormat

string

“rec: %n pks”

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

wlan.pcapRecorder.verbose

bool

true

Whether to log packets on the module output

wlan.pcapRecorder.recordEmptyPackets

bool

true

Specifies if zero length packets are recorded or not

wlan.pcapRecorder.enableConvertingPackets

bool

true

Specifies if converting packets to link type is allowed or not

wlan.pcapRecorder.pcapFile

string

“”

The PCAP file to be written, suggested value: pcapFile = “${resultdir}/${configname}-#${runnumber}” + fullpath() + “.pcap”

wlan.pcapRecorder.fileFormat

string

“pcapng”

wlan.pcapRecorder.snaplen

int

65535

Maximum number of bytes to record per packet

wlan.pcapRecorder.timePrecision

int

6

Time precision in recorded file. pcap supports only 6 (usec) or 9 (nanosec), pcapng supports more values (see ‘if_tsresol’ option in pcapng file format).

wlan.pcapRecorder.dumpBadFrames

bool

true

Enable dump of frames with hasBitError

wlan.pcapRecorder.sendingSignalNames

string

“transmissionEnded”

Space-separated list of outbound packet signals to subscribe to

wlan.pcapRecorder.receivingSignalNames

string

“receptionEnded”

Space-separated list of inbound packet signals to subscribe to

wlan.pcapRecorder.dumpProtocols

string

“ethernetmac ppp ieee80211mac”

Space-separated list of protocol names as defined in the Protocol class

wlan.pcapRecorder.packetFilter

object

“*”

Which packets are considered, matches all packets by default

wlan.pcapRecorder.helpers

string

“”

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype

wlan.pcapRecorder.alwaysFlush

bool

false

Flush the pcapFile after each write to ensure that all packets are captured in case of a crash

wlan.mib.displayStringTextFormat

string

“Address: {address}{ssidStr}\n{modeStr}{stationTypeStr}{qosStr}{associatedStr}”

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

wlan.agent.displayStringTextFormat

string

“”

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

wlan.agent.interfaceTableModule

string

The path to the InterfaceTable module

wlan.agent.mibModule

string

wlan.agent.activeScan

bool

true

Selects between active and passive scanning

wlan.agent.channelsToScan

string

“”

List of channel numbers to scan (space delimited); empty means all channels

wlan.agent.probeDelay

double

100ms

Delay before sending a probe request during active scanning

wlan.agent.minChannelTime

double

150ms

Min interval to spend on a channel during active scanning

wlan.agent.maxChannelTime

double

300ms

Channel time for passive scanning, and max channel time for active scanning

wlan.agent.authenticationTimeout

double

5s

Timeout for the authentication procedure

wlan.agent.associationTimeout

double

5s

Timeout for the association procedure

wlan.agent.startingTime

double

-1s

Agent starting time.

wlan.agent.defaultSsid

string

“”

List of allowed SSIDs to connect to; leave empty for no filtering

wlan.mgmt.displayStringTextFormat

string

“”

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

wlan.mgmt.interfaceTableModule

string

The path to the InterfaceTable module

wlan.mgmt.numChannels

int

1

Number of channels to scan

wlan.mgmt.mibModule

string

wlan.mgmt.macModule

string

The path to the MAC module

wlan.mac.dcf.channelAccess.pendingQueue.displayStringTextFormat

string

“contains %p pk (%l) pushed %u\npulled %o removed %r dropped %d”

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

wlan.mac.dcf.channelAccess.pendingQueue.packetCapacity

int

100

Maximum number of packets in the queue, no limit by default

wlan.mac.dcf.channelAccess.pendingQueue.dataCapacity

int

-1b

Maximum total length of packets in the queue, no limit by default

wlan.mac.dcf.channelAccess.pendingQueue.dropperClass

string

“inet::queueing::PacketAtCollectionEndDropper”

Determines which packets are dropped when the queue is overloaded, packets are not dropped by default; the parameter must be the name of a C++ class which implements the IPacketDropperFunction C++ interface and is registered via Register_Class

wlan.mac.dcf.channelAccess.pendingQueue.comparatorClass

string

“inet::ieee80211::MgmtOverDataComparator”

Determines the order of packets in the queue, insertion order by default; the parameter must be the name of a C++ class which implements the IPacketComparatorFunction C++ interface and is registered via Register_Class

wlan.mac.dcf.channelAccess.pendingQueue.bufferModule

string

“”

Relative module path to the IPacketBuffer module used by this queue, implicit buffer by default

wlan.mac.dcf.channelAccess.inProgressFrames.displayStringTextFormat

string

“{numInProgress} packets”

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

wlan.mac.dcf.channelAccess.inProgressFrames.pendingQueueModule

string

“^.pendingQueue”

wlan.mac.dcf.channelAccess.inProgressFrames.originatorMacDataServiceModule

string

“^.^.originatorMacDataService”

wlan.mac.dcf.channelAccess.inProgressFrames.ackHandlerModule

string

“^.^.ackHandler”

wlan.mac.dcf.channelAccess.contention.displayStringTextFormat

string

“{fsmState}”

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

wlan.mac.dcf.channelAccess.contention.initialChannelBusy

bool

true

Assume that the channel was busy before the simulation started

wlan.mac.dcf.channelAccess.contention.backoffOptimization

bool

true

We can pretend the frame has arrived into the queue a little bit earlier, and maybe able to start transmitting immediately

wlan.mac.dcf.originatorMacDataService.fragmentationPolicy.displayStringTextFormat

string

“”

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

wlan.mac.dcf.originatorMacDataService.fragmentationPolicy.fragmentationThreshold

int

1500B

wlan.mac.dcf.rateSelection.displayStringTextFormat

string

“”

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

wlan.mac.dcf.rateSelection.multicastFrameBitrate

double

-1bps

wlan.mac.dcf.rateSelection.responseAckFrameBitrate

double

-1bps

wlan.mac.dcf.rateSelection.responseCtsFrameBitrate

double

-1bps

wlan.mac.dcf.rateSelection.dataFrameBitrate

double

-1bps

Fastest

wlan.mac.dcf.rateSelection.dataFrameBandwidth

double

nan Hz

Unspecified by default

wlan.mac.dcf.rateSelection.dataFrameNumSpatialStreams

int

-1

Unspecified by default

wlan.mac.dcf.rateSelection.mgmtFrameBitrate

double

-1bps

Fastest

wlan.mac.dcf.rateSelection.controlFrameBitrate

double

-1bps

wlan.mac.dcf.recoveryProcedure.displayStringTextFormat

string

“”

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

wlan.mac.dcf.recoveryProcedure.shortRetryLimit

int

7

wlan.mac.dcf.recoveryProcedure.longRetryLimit

int

4

wlan.mac.dcf.originatorProtectionMechanism.displayStringTextFormat

string

“”

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

wlan.mac.dcf.originatorProtectionMechanism.rateSelectionModule

string

wlan.mac.dcf.ackHandler.displayStringTextFormat

string

“”

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

wlan.mac.dcf.originatorAckPolicy.displayStringTextFormat

string

“”

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

wlan.mac.dcf.originatorAckPolicy.rateSelectionModule

string

wlan.mac.dcf.originatorAckPolicy.ackTimeout

double

-1s

wlan.mac.dcf.recipientAckPolicy.displayStringTextFormat

string

“”

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

wlan.mac.dcf.recipientAckPolicy.rateSelectionModule

string

wlan.mac.dcf.rtsPolicy.displayStringTextFormat

string

“”

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

wlan.mac.dcf.rtsPolicy.rateSelectionModule

string

wlan.mac.dcf.rtsPolicy.ctsTimeout

double

-1s

wlan.mac.dcf.rtsPolicy.rtsThreshold

int

2346B

wlan.mac.dcf.ctsPolicy.displayStringTextFormat

string

“”

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

wlan.mac.dcf.ctsPolicy.rxModule

string

wlan.mac.dcf.ctsPolicy.rateSelectionModule

string

wlan.mac.hcf.edca.edcaf.pendingQueue.displayStringTextFormat

string

“contains %p pk (%l) pushed %u\npulled %o removed %r dropped %d”

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

wlan.mac.hcf.edca.edcaf.pendingQueue.packetCapacity

int

100

Maximum number of packets in the queue, no limit by default

wlan.mac.hcf.edca.edcaf.pendingQueue.dataCapacity

int

-1b

Maximum total length of packets in the queue, no limit by default

wlan.mac.hcf.edca.edcaf.pendingQueue.dropperClass

string

“inet::queueing::PacketAtCollectionEndDropper”

Determines which packets are dropped when the queue is overloaded, packets are not dropped by default; the parameter must be the name of a C++ class which implements the IPacketDropperFunction C++ interface and is registered via Register_Class

wlan.mac.hcf.edca.edcaf.pendingQueue.comparatorClass

string

“inet::ieee80211::MgmtOverDataComparator”

Determines the order of packets in the queue, insertion order by default; the parameter must be the name of a C++ class which implements the IPacketComparatorFunction C++ interface and is registered via Register_Class

wlan.mac.hcf.edca.edcaf.pendingQueue.bufferModule

string

“”

Relative module path to the IPacketBuffer module used by this queue, implicit buffer by default

wlan.mac.hcf.edca.edcaf.inProgressFrames.displayStringTextFormat

string

“{numInProgress} packets”

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

wlan.mac.hcf.edca.edcaf.inProgressFrames.pendingQueueModule

string

“^.pendingQueue”

wlan.mac.hcf.edca.edcaf.inProgressFrames.originatorMacDataServiceModule

string

“^.^.^.originatorMacDataService”

wlan.mac.hcf.edca.edcaf.inProgressFrames.ackHandlerModule

string

“^.ackHandler”

wlan.mac.hcf.edca.edcaf.contention.displayStringTextFormat

string

“{fsmState}”

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

wlan.mac.hcf.edca.edcaf.contention.initialChannelBusy

bool

true

Assume that the channel was busy before the simulation started

wlan.mac.hcf.edca.edcaf.contention.backoffOptimization

bool

true

We can pretend the frame has arrived into the queue a little bit earlier, and maybe able to start transmitting immediately

wlan.mac.hcf.edca.edcaf.ackHandler.displayStringTextFormat

string

“”

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

wlan.mac.hcf.edca.edcaf.txopProcedure.displayStringTextFormat

string

“”

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

wlan.mac.hcf.edca.edcaf.txopProcedure.txopLimit

double

-1s

wlan.mac.hcf.edca.edcaf.recoveryProcedure.displayStringTextFormat

string

“”

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

wlan.mac.hcf.edca.edcaf.recoveryProcedure.shortRetryLimit

int

7

wlan.mac.hcf.edca.edcaf.recoveryProcedure.longRetryLimit

int

4

wlan.mac.hcf.edca.collisionController.displayStringTextFormat

string

“”

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

wlan.mac.hcf.edca.mgmtAndNonQoSRecoveryProcedure.displayStringTextFormat

string

“”

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

wlan.mac.hcf.edca.mgmtAndNonQoSRecoveryProcedure.shortRetryLimit

int

7

wlan.mac.hcf.edca.mgmtAndNonQoSRecoveryProcedure.longRetryLimit

int

4

wlan.mac.hcf.hcca.displayStringTextFormat

string

“”

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

wlan.mac.hcf.originatorMacDataService.msduAggregationPolicy.displayStringTextFormat

string

“”

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

wlan.mac.hcf.originatorMacDataService.msduAggregationPolicy.subframeNumThreshold

int

-1

Minimum number of subframes needed to compose an A-MSDU. (-1 means it won’t be checked)

wlan.mac.hcf.originatorMacDataService.msduAggregationPolicy.aggregationLengthThreshold

int

-1

The minimum length for an aggregated payload necessary to create an A-MSDU (-1 means it won’t be checked).

wlan.mac.hcf.originatorMacDataService.msduAggregationPolicy.maxAMsduSize

int

4065

-1 means infinity

wlan.mac.hcf.originatorMacDataService.msduAggregationPolicy.qOsCheck

bool

true

Turns on/off the check of the presence of the QoS flag (false means off – this is needed for aggregation in DCF mode).

wlan.mac.hcf.originatorMacDataService.mpduAggregationPolicy.displayStringTextFormat

string

“”

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

wlan.mac.hcf.originatorMacDataService.fragmentationPolicy.displayStringTextFormat

string

“”

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

wlan.mac.hcf.originatorMacDataService.fragmentationPolicy.fragmentationThreshold

int

1500B

wlan.mac.hcf.singleProtectionMechanism.displayStringTextFormat

string

“”

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

wlan.mac.hcf.singleProtectionMechanism.rateSelectionModule

string

wlan.mac.hcf.rateSelection.displayStringTextFormat

string

“”

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

wlan.mac.hcf.rateSelection.multicastFrameBitrate

double

-1bps

wlan.mac.hcf.rateSelection.responseAckFrameBitrate

double

-1bps

wlan.mac.hcf.rateSelection.responseBlockAckFrameBitrate

double

-1bps

wlan.mac.hcf.rateSelection.responseCtsFrameBitrate

double

-1bps

wlan.mac.hcf.rateSelection.dataFrameBitrate

double

-1bps

Fastest

wlan.mac.hcf.rateSelection.dataFrameBandwidth

double

nan Hz

Unspecified by default

wlan.mac.hcf.rateSelection.dataFrameNumSpatialStreams

int

-1

Unspecified by default

wlan.mac.hcf.rateSelection.mgmtFrameBitrate

double

-1bps

Fastest

wlan.mac.hcf.rateSelection.controlFrameBitrate

double

-1bps

wlan.mac.hcf.originatorAckPolicy.displayStringTextFormat

string

“”

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

wlan.mac.hcf.originatorAckPolicy.rateSelectionModule

string

wlan.mac.hcf.originatorAckPolicy.blockAckReqThreshold

int

5

wlan.mac.hcf.originatorAckPolicy.maxBlockAckPolicyFrameLength

int

1000B

wlan.mac.hcf.originatorAckPolicy.blockAckTimeout

double

-1s

wlan.mac.hcf.originatorAckPolicy.ackTimeout

double

-1s

wlan.mac.hcf.recipientAckPolicy.displayStringTextFormat

string

“”

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

wlan.mac.hcf.recipientAckPolicy.rateSelectionModule

string

wlan.mac.hcf.rtsPolicy.displayStringTextFormat

string

“”

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

wlan.mac.hcf.rtsPolicy.rateSelectionModule

string

wlan.mac.hcf.rtsPolicy.ctsTimeout

double

-1s

wlan.mac.hcf.rtsPolicy.rtsThreshold

int

2346B

wlan.mac.hcf.ctsPolicy.displayStringTextFormat

string

“”

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

wlan.mac.hcf.ctsPolicy.rxModule

string

wlan.mac.hcf.ctsPolicy.rateSelectionModule

string

wlan.mac.hcf.originatorBlockAckAgreementPolicy.displayStringTextFormat

string

“”

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

wlan.mac.hcf.originatorBlockAckAgreementPolicy.delayedAckPolicySupported

bool

false

wlan.mac.hcf.originatorBlockAckAgreementPolicy.aMsduSupported

bool

true

wlan.mac.hcf.originatorBlockAckAgreementPolicy.maximumAllowedBufferSize

int

64

wlan.mac.hcf.originatorBlockAckAgreementPolicy.blockAckTimeoutValue

double

0s

0 means that it depends on the originator

wlan.mac.hcf.recipientBlockAckAgreementPolicy.displayStringTextFormat

string

“”

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

wlan.mac.hcf.recipientBlockAckAgreementPolicy.delayedAckPolicySupported

bool

false

wlan.mac.hcf.recipientBlockAckAgreementPolicy.aMsduSupported

bool

true

wlan.mac.hcf.recipientBlockAckAgreementPolicy.maximumAllowedBufferSize

int

64

wlan.mac.hcf.recipientBlockAckAgreementPolicy.blockAckTimeoutValue

double

0s

0 means that it depends on the originator

wlan.mac.ds.displayStringTextFormat

string

“”

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

wlan.mac.ds.mibModule

string

wlan.mac.rx.displayStringTextFormat

string

“{rxStatus}”

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

wlan.mac.tx.displayStringTextFormat

string

“{txFramePrefix}{txState}”

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

wlan.mac.tx.rxModule

string

ppp.pcapRecorder.displayStringTextFormat

string

“rec: %n pks”

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

ppp.pcapRecorder.verbose

bool

true

Whether to log packets on the module output

ppp.pcapRecorder.recordEmptyPackets

bool

true

Specifies if zero length packets are recorded or not

ppp.pcapRecorder.enableConvertingPackets

bool

true

Specifies if converting packets to link type is allowed or not

ppp.pcapRecorder.pcapFile

string

“”

The PCAP file to be written, suggested value: pcapFile = “${resultdir}/${configname}-#${runnumber}” + fullpath() + “.pcap”

ppp.pcapRecorder.fileFormat

string

“pcapng”

ppp.pcapRecorder.snaplen

int

65535

Maximum number of bytes to record per packet

ppp.pcapRecorder.timePrecision

int

6

Time precision in recorded file. pcap supports only 6 (usec) or 9 (nanosec), pcapng supports more values (see ‘if_tsresol’ option in pcapng file format).

ppp.pcapRecorder.dumpBadFrames

bool

true

Enable dump of frames with hasBitError

ppp.pcapRecorder.sendingSignalNames

string

“transmissionEnded”

Space-separated list of outbound packet signals to subscribe to

ppp.pcapRecorder.receivingSignalNames

string

“receptionEnded”

Space-separated list of inbound packet signals to subscribe to

ppp.pcapRecorder.dumpProtocols

string

“ethernetmac ppp ieee80211mac”

Space-separated list of protocol names as defined in the Protocol class

ppp.pcapRecorder.packetFilter

object

“*”

Which packets are considered, matches all packets by default

ppp.pcapRecorder.helpers

string

“”

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype

ppp.pcapRecorder.alwaysFlush

bool

false

Flush the pcapFile after each write to ensure that all packets are captured in case of a crash

ppp.queue.displayStringTextFormat

string

“contains %p pk (%l) pushed %u\npulled %o removed %r dropped %d”

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

ppp.queue.packetCapacity

int

10000

Maximum number of packets in the queue, no limit by default

ppp.queue.dataCapacity

int

-1b

Maximum total length of packets in the queue, no limit by default

ppp.queue.dropperClass

string

“inet::queueing::PacketAtCollectionEndDropper”

Determines which packets are dropped when the queue is overloaded, packets are not dropped by default; the parameter must be the name of a C++ class which implements the IPacketDropperFunction C++ interface and is registered via Register_Class

ppp.queue.comparatorClass

string

“”

Determines the order of packets in the queue, insertion order by default; the parameter must be the name of a C++ class which implements the IPacketComparatorFunction C++ interface and is registered via Register_Class

ppp.queue.bufferModule

string

“”

Relative module path to the IPacketBuffer module used by this queue, implicit buffer by default

ppp.ppp.displayStringTextFormat

string

“rate: %b\nsent: %s, rcvd: %r\nqueue: %q, drop: %d”

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

ppp.ppp.interfaceTableModule

string

The path to the InterfaceTable module

ppp.ppp.sendRawBytes

bool

false

When true packets are serialized into a sequence of bytes before sending out

ppp.ppp.mtu

int

4470B

ppp.ppp.stopOperationExtraTime

double

-1s

Extra time after lifecycle stop operation finished

ppp.ppp.stopOperationTimeout

double

2s

Timeout value for lifecycle stop operation

eth.pcapRecorder.displayStringTextFormat

string

“rec: %n pks”

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

eth.pcapRecorder.verbose

bool

true

Whether to log packets on the module output

eth.pcapRecorder.recordEmptyPackets

bool

true

Specifies if zero length packets are recorded or not

eth.pcapRecorder.enableConvertingPackets

bool

true

Specifies if converting packets to link type is allowed or not

eth.pcapRecorder.pcapFile

string

“”

The PCAP file to be written, suggested value: pcapFile = “${resultdir}/${configname}-#${runnumber}” + fullpath() + “.pcap”

eth.pcapRecorder.fileFormat

string

“pcapng”

eth.pcapRecorder.snaplen

int

65535

Maximum number of bytes to record per packet

eth.pcapRecorder.timePrecision

int

6

Time precision in recorded file. pcap supports only 6 (usec) or 9 (nanosec), pcapng supports more values (see ‘if_tsresol’ option in pcapng file format).

eth.pcapRecorder.dumpBadFrames

bool

true

Enable dump of frames with hasBitError

eth.pcapRecorder.sendingSignalNames

string

“transmissionEnded”

Space-separated list of outbound packet signals to subscribe to

eth.pcapRecorder.receivingSignalNames

string

“receptionEnded”

Space-separated list of inbound packet signals to subscribe to

eth.pcapRecorder.dumpProtocols

string

“ethernetmac ppp ieee80211mac”

Space-separated list of protocol names as defined in the Protocol class

eth.pcapRecorder.packetFilter

object

“*”

Which packets are considered, matches all packets by default

eth.pcapRecorder.helpers

string

“”

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype

eth.pcapRecorder.alwaysFlush

bool

false

Flush the pcapFile after each write to ensure that all packets are captured in case of a crash

tun.pcapRecorder.displayStringTextFormat

string

“rec: %n pks”

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

tun.pcapRecorder.verbose

bool

true

Whether to log packets on the module output

tun.pcapRecorder.recordEmptyPackets

bool

true

Specifies if zero length packets are recorded or not

tun.pcapRecorder.enableConvertingPackets

bool

true

Specifies if converting packets to link type is allowed or not

tun.pcapRecorder.pcapFile

string

“”

The PCAP file to be written, suggested value: pcapFile = “${resultdir}/${configname}-#${runnumber}” + fullpath() + “.pcap”

tun.pcapRecorder.fileFormat

string

“pcapng”

tun.pcapRecorder.snaplen

int

65535

Maximum number of bytes to record per packet

tun.pcapRecorder.timePrecision

int

6

Time precision in recorded file. pcap supports only 6 (usec) or 9 (nanosec), pcapng supports more values (see ‘if_tsresol’ option in pcapng file format).

tun.pcapRecorder.dumpBadFrames

bool

true

Enable dump of frames with hasBitError

tun.pcapRecorder.sendingSignalNames

string

“transmissionEnded”

Space-separated list of outbound packet signals to subscribe to

tun.pcapRecorder.receivingSignalNames

string

“receptionEnded”

Space-separated list of inbound packet signals to subscribe to

tun.pcapRecorder.dumpProtocols

string

“ethernetmac ppp ieee80211mac”

Space-separated list of protocol names as defined in the Protocol class

tun.pcapRecorder.packetFilter

object

“*”

Which packets are considered, matches all packets by default

tun.pcapRecorder.helpers

string

“”

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype

tun.pcapRecorder.alwaysFlush

bool

false

Flush the pcapFile after each write to ensure that all packets are captured in case of a crash

tun.tun.displayStringTextFormat

string

“”

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

tun.tun.interfaceTableModule

string

The path to the InterfaceTable module

tun.tun.mtu

int

1500B

virt.pcapRecorder.displayStringTextFormat

string

“rec: %n pks”

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

virt.pcapRecorder.verbose

bool

true

Whether to log packets on the module output

virt.pcapRecorder.recordEmptyPackets

bool

true

Specifies if zero length packets are recorded or not

virt.pcapRecorder.enableConvertingPackets

bool

true

Specifies if converting packets to link type is allowed or not

virt.pcapRecorder.pcapFile

string

“”

The PCAP file to be written, suggested value: pcapFile = “${resultdir}/${configname}-#${runnumber}” + fullpath() + “.pcap”

virt.pcapRecorder.fileFormat

string

“pcapng”

virt.pcapRecorder.snaplen

int

65535

Maximum number of bytes to record per packet

virt.pcapRecorder.timePrecision

int

6

Time precision in recorded file. pcap supports only 6 (usec) or 9 (nanosec), pcapng supports more values (see ‘if_tsresol’ option in pcapng file format).

virt.pcapRecorder.dumpBadFrames

bool

true

Enable dump of frames with hasBitError

virt.pcapRecorder.sendingSignalNames

string

“transmissionEnded”

Space-separated list of outbound packet signals to subscribe to

virt.pcapRecorder.receivingSignalNames

string

“receptionEnded”

Space-separated list of inbound packet signals to subscribe to

virt.pcapRecorder.dumpProtocols

string

“ethernetmac ppp ieee80211mac”

Space-separated list of protocol names as defined in the Protocol class

virt.pcapRecorder.packetFilter

object

“*”

Which packets are considered, matches all packets by default

virt.pcapRecorder.helpers

string

“”

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype

virt.pcapRecorder.alwaysFlush

bool

false

Flush the pcapFile after each write to ensure that all packets are captured in case of a crash

virt.tunnel.displayStringTextFormat

string

“”

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

virt.tunnel.interfaceTableModule

string

virt.tunnel.realInterface

string

virt.tunnel.protocol

string

vlanId != -1 ? “ieee8021qctag” : “”

virt.tunnel.address

string

“copy”

virt.tunnel.vlanId

int

-1

virt.tunnel.steal

bool

vlanId != -1

ipv4.configurator.displayStringTextFormat

string

“”

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

ipv4.configurator.interfaceTableModule

string

The path to the InterfaceTable module

ipv4.configurator.routingTableModule

string

ipv4.configurator.networkConfiguratorModule

string

“configurator”

The absolute path to the Ipv4NetworkConfigurator; use “” if there is no configurator

ipv4.configurator.configureRoutingTable

bool

true

Add routing entries to the routing table (uses the configurator module)

ipv4.routingTable.displayStringTextFormat

string

“{routingTableStatusText}”

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

ipv4.routingTable.interfaceTableModule

string

The path to the InterfaceTable module

ipv4.routingTable.routerId

string

“auto”

For routers, the router id using IPv4 address dotted

ipv4.routingTable.netmaskRoutes

string

“*”

Maintain netmask routes for interfaces

ipv4.routingTable.forwarding

bool

true

Turns IP forwarding on/off

ipv4.routingTable.multicastForwarding

bool

false

Turns multicast forwarding on/off

ipv4.routingTable.useAdminDist

bool

false

Use Cisco-like administrative distances

ipv4.routingTable.routingFile

string

“”

Routing table file name

ipv4.natTable.displayStringTextFormat

string

“{numNatEntries} entries”

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

ipv4.natTable.networkProtocolModule

string

“^.ip”

ipv4.natTable.config

xml

xml(“<config></config>”)

XML configuration parameters for network address translation

ipv4.up.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

ipv4.up.interfaceTableModule

string

Module path to the InterfaceTable module

ipv4.up.forwardServiceRegistration

bool

true

ipv4.up.forwardProtocolRegistration

bool

true

ipv4.up.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

ipv4.up.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

ipv4.up.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

ipv4.igmp.displayStringTextFormat

string

“”

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

ipv4.igmp.interfaceTableModule

string

The path to the InterfaceTable module

ipv4.igmp.routingTableModule

string

ipv4.igmp.checksumMode

string

“declared”

ipv4.igmp.enabled

bool

true

ipv4.igmp.robustnessVariable

int

2

IGMP is robust to (robustnessVariable-1) packet loss

ipv4.igmp.queryInterval

double

125s

ipv4.igmp.queryResponseInterval

double

10s

ipv4.igmp.groupMembershipInterval

double

(robustnessVariable * queryInterval) + queryResponseInterval

ipv4.igmp.otherQuerierPresentInterval

double

(robustnessVariable * queryInterval) + (queryResponseInterval / 2)

ipv4.igmp.startupQueryInterval

double

queryInterval / 4

ipv4.igmp.startupQueryCount

int

robustnessVariable

ipv4.igmp.lastMemberQueryInterval

double

1s

ipv4.igmp.lastMemberQueryCount

int

robustnessVariable

ipv4.igmp.unsolicitedReportInterval

double

10s

ipv4.icmp.displayStringTextFormat

string

“”

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

ipv4.icmp.interfaceTableModule

string

The path to the InterfaceTable module

ipv4.icmp.routingTableModule

string

ipv4.icmp.checksumMode

string

“declared”

ipv4.icmp.quoteLength

int

8B

Number of bytes from original packet to quote in ICMP reply

ipv4.mp.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

ipv4.mp.interfaceTableModule

string

Module path to the InterfaceTable module

ipv4.mp.forwardServiceRegistration

bool

true

ipv4.mp.forwardProtocolRegistration

bool

true

ipv4.mp.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

ipv4.mp.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

ipv4.mp.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

ipv4.ip.displayStringTextFormat

string

“{ipv4StatusText}”

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

ipv4.ip.interfaceTableModule

string

The path to the InterfaceTable module

ipv4.ip.routingTableModule

string

ipv4.ip.arpModule

string

ipv4.ip.icmpModule

string

ipv4.ip.checksumMode

string

“declared”

ipv4.ip.timeToLive

int

32

ipv4.ip.multicastTimeToLive

int

32

ipv4.ip.fragmentTimeout

double

60s

ipv4.ip.limitedBroadcast

bool

false

Send out limited broadcast packets coming from the higher layer

ipv4.ip.directBroadcastInterfaces

string

“”

List of interfaces where direct broadcast is enabled (by default direct broadcast is disabled on all interfaces)

ipv4.ip.enableLocalOutMulticastRouting

bool

false

Enable using the multicast routing table for determining outgoing interfaces for local out packets

ipv4.ip.enableTimestampOption

bool

false

When enabled, IP inserts a timestamp option into the IP header

ipv4.ip.maxLifetime

double

-1s

Packets older than the limit are discarded

ipv4.arp.displayStringTextFormat

string

“size:{arpCacheSize} sent:{numRequestsSent}\nrepl:{numRepliesSent} fail:{numFailedResolutions}”

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

ipv4.arp.interfaceTableModule

string

The path to the InterfaceTable module

ipv4.arp.routingTableModule

string

ipv4.arp.retryTimeout

double

1s

Number of seconds ARP waits between retries to resolve an IPv4 address

ipv4.arp.retryCount

int

3

Number of times ARP will attempt to resolve an IPv4 address

ipv4.arp.cacheTimeout

double

120s

Number of seconds unused entries in the cache will time out

ipv4.arp.proxyArpInterfaces

string

“*”

List of interfaces that proxy ARP is enabled on (all interfaces by default)

ipv4.ipsec.displayStringTextFormat

string

“IN: ACCEPT: {inAccept} DROP: {inDrop} BYPASS: {inBypass}\n OUT: PROTECT: {outProtect} DROP: {outDrop} BYPASS: {outBypass}”

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

ipv4.ipsec.networkProtocolModule

string

“^.ip”

ipv4.ipsec.networkProtocol

string

“ipv4”

address family this instance protects (set to “ipv6” in Ipv6NetworkLayer)

ipv4.ipsec.interfaceTableModule

string

ipv4.ipsec.spdModule

string

“^.spd”

ipv4.ipsec.sadModule

string

“^.sad”

ipv4.ipsec.spdConfig

xml

ipv4.ipsec.defaultProtection

string

“”

If not “”: value to use where <Protection> element is absent from the configuration

ipv4.ipsec.defaultEspMode

string

“”

If not “”: value to use where <EspMode> element is absent from the configuration

ipv4.ipsec.defaultEncryptionAlg

string

“”

If not “”: value to use where <EncryptionAlg> element is absent from the configuration

ipv4.ipsec.defaultAuthenticationAlg

string

“”

If not “”: value to use where <defaultAuthenticationAlg> element is absent from the configuration

ipv4.ipsec.defaultMaxTfcPadLength

int

0

Value to use where <MaxTfcPadLength> element is absent from the configuration

ipv4.ipsec.ahProtectOutDelay

double

0.0s

ipv4.ipsec.ahProtectInDelay

double

0.0s

ipv4.ipsec.espProtectOutDelay

double

0.0s

ipv4.ipsec.espProtectInDelay

double

0.0s

ipv4.spd.displayStringTextFormat

string

“entries: {numEntries}”

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

ipv4.sad.displayStringTextFormat

string

“entries: {numEntries}”

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

ipv4.lp.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

ipv4.lp.interfaceTableModule

string

Module path to the InterfaceTable module

ipv4.lp.forwardServiceRegistration

bool

true

ipv4.lp.forwardProtocolRegistration

bool

true

ipv4.lp.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

ipv4.lp.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

ipv4.lp.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

ipv6.configurator.displayStringTextFormat

string

“”

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

ipv6.configurator.interfaceTableModule

string

ipv6.configurator.routingTableModule

string

ipv6.configurator.networkConfiguratorModule

string

“”

The absolute path to the Ipv6NetworkConfigurator; use “” if there is no configurator

ipv6.configurator.configureRoutingTable

bool

true

ipv6.routingTable.displayStringTextFormat

string

“{numRoutes} routes\n{numDestCache} destcache entries”

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

ipv6.routingTable.interfaceTableModule

string

The path to the InterfaceTable module

ipv6.routingTable.routes

xml

xml(“<routingTable/>”)

ipv6.routingTable.forwarding

bool

false

ipv6.routingTable.isRouter

bool

this.forwarding

ipv6.routingTable.multicastForwarding

bool

false

ipv6.routingTable.useAdminDist

bool

false

Use Cisco-like administrative distances

ipv6.routingTable.advManagedFlag

bool

false

“Managed address configuration” (M) flag in RAs

ipv6.routingTable.advOtherConfigFlag

bool

false

“Other configuration” (O) flag in RAs

ipv6.routingTable.advLinkMtu

int

1280

MTU option in RAs (1280 = IPv6 minimum MTU, 0 = don’t include)

ipv6.routingTable.advCurHopLimit

int

30

Cur Hop Limit field in RAs (0 = unspecified)

ipv6.routingTable.advDefaultLifetime

double

-1s

Router Lifetime in RAs (-1 = auto: 3*maxRtrAdvInterval)

ipv6.up.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

ipv6.up.interfaceTableModule

string

Module path to the InterfaceTable module

ipv6.up.forwardServiceRegistration

bool

true

ipv6.up.forwardProtocolRegistration

bool

true

ipv6.up.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

ipv6.up.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

ipv6.up.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

ipv6.icmpv6.displayStringTextFormat

string

“”

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

ipv6.icmpv6.interfaceTableModule

string

The path to the InterfaceTable module

ipv6.icmpv6.checksumMode

string

“declared”

ipv6.icmpv6.mldModule

string

“”

Path to the MLD module, or “” if MLD is not enabled; MLD messages are dropped when empty

ipv6.lp.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

ipv6.lp.interfaceTableModule

string

Module path to the InterfaceTable module

ipv6.lp.forwardServiceRegistration

bool

true

ipv6.lp.forwardProtocolRegistration

bool

true

ipv6.lp.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

ipv6.lp.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

ipv6.lp.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

ipv6.neighbourDiscovery.displayStringTextFormat

string

“”

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

ipv6.neighbourDiscovery.interfaceTableModule

string

The path to the InterfaceTable module

ipv6.neighbourDiscovery.checksumMode

string

“declared”

ipv6.neighbourDiscovery.icmpv6Module

string

ipv6.neighbourDiscovery.mipv6Module

string

ipv6.neighbourDiscovery.routingTableModule

string

ipv6.neighbourDiscovery.minIntervalBetweenRAs

double

200s

RFC 4861: MinRtrAdvInterval (0.33 * MaxRtrAdvInterval)

ipv6.neighbourDiscovery.maxIntervalBetweenRAs

double

600s

RFC 4861: MaxRtrAdvInterval

ipv6.neighbourDiscovery.advReachableTime

double

3600s

advertised reachable time in RAs; hosts use it as base for NUD

ipv6.neighbourDiscovery.dupAddrDetectTransmits

int

1

RFC 4862 Section 5.1: number of NS sent for DAD (0 = disable DAD)

ipv6.neighbourDiscovery.optimisticDad

bool

false

RFC 4429 Optimistic DAD: if true, an autoconfigured address may be used as a source address while DAD is still in progress; if false (RFC 4862), packets that would use it are deferred until DAD completes

ipv6.neighbourDiscovery.detectL2Movement

bool

true

if true (default), (re)start Router Discovery (send Router Solicitations) whenever an interface associates at the link layer (e.g. a wireless handover to a new access point); lets a mobile node detect movement and obtain a new care-of address immediately, instead of relying on frequent unsolicited Router Advertisements (cf. MIPv6 fast RAs). Set to false to restore the legacy behaviour (movement detected only from periodic Router Advertisements)

ipv6.neighbourDiscovery.retransTimer

double

1s

RFC 4861 Section 10: delay between retransmitted NS messages

ipv6.neighbourDiscovery.baseReachableTime

double

30s

RFC 4861 Section 10: base value for computing random ReachableTime

ipv6.neighbourDiscovery.routerBootupTime

double

uniform(0s, 0.3s)

random startup delay before a router assigns its link-local address; routers boot faster than hosts so that RAs are available by the time hosts solicit

ipv6.neighbourDiscovery.hostBootupTime

double

uniform(0.4s, 1s)

random startup delay before a host assigns its link-local address

ipv6.ipv6.displayStringTextFormat

string

“{ipv6StatusText}”

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

ipv6.ipv6.interfaceTableModule

string

The path to the InterfaceTable module

ipv6.ipv6.routingTableModule

string

ipv6.ipv6.ipv6NeighbourDiscoveryModule

string

ipv6.ipv6.icmpv6Module

string

ipv6.ipv6.procDelay

double

0s

ipv6.ipv6.sendRedirects

bool

true

RFC 4861 Section 8.2: when a router forwards a packet back out the interface it arrived on, send the source an ICMPv6 Redirect. Disable on wireless multi-hop / ad-hoc networks (e.g. MANET routing), where the geographic next hop is not directly reachable by the source, so redirects are useless and trigger a storm.

ipv6.ipsec.displayStringTextFormat

string

“IN: ACCEPT: {inAccept} DROP: {inDrop} BYPASS: {inBypass}\n OUT: PROTECT: {outProtect} DROP: {outDrop} BYPASS: {outBypass}”

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

ipv6.ipsec.interfaceTableModule

string

ipv6.ipsec.spdModule

string

“^.spd”

ipv6.ipsec.sadModule

string

“^.sad”

ipv6.ipsec.spdConfig

xml

ipv6.ipsec.defaultProtection

string

“”

If not “”: value to use where <Protection> element is absent from the configuration

ipv6.ipsec.defaultEspMode

string

“”

If not “”: value to use where <EspMode> element is absent from the configuration

ipv6.ipsec.defaultEncryptionAlg

string

“”

If not “”: value to use where <EncryptionAlg> element is absent from the configuration

ipv6.ipsec.defaultAuthenticationAlg

string

“”

If not “”: value to use where <defaultAuthenticationAlg> element is absent from the configuration

ipv6.ipsec.defaultMaxTfcPadLength

int

0

Value to use where <MaxTfcPadLength> element is absent from the configuration

ipv6.ipsec.ahProtectOutDelay

double

0.0s

ipv6.ipsec.ahProtectInDelay

double

0.0s

ipv6.ipsec.espProtectOutDelay

double

0.0s

ipv6.ipsec.espProtectInDelay

double

0.0s

ipv6.spd.displayStringTextFormat

string

“entries: {numEntries}”

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

ipv6.sad.displayStringTextFormat

string

“entries: {numEntries}”

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

ipv6.mipv6.displayStringTextFormat

string

“”

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

ipv6.mipv6.interfaceTableModule

string

The path to the InterfaceTable module

ipv6.mipv6.ipv6NeighbourDiscoveryModule

string

ipv6.mipv6.bindingUpdateListModule

string

ipv6.mipv6.bindingCacheModule

string

ipv6.mipv6.isHomeAgent

bool

ipv6.mipv6.isMobileNode

bool

ipv6.mipv6.maxHaBindingLifeTime

double

3600s

max binding lifetime for HA registration

ipv6.mipv6.maxRrBindingLifeTime

double

420s

max binding lifetime for CN (route optimization)

ipv6.mipv6.useRouteOptimization

bool

true

whether a mobile node route-optimizes with correspondent nodes (RFC 3775); if false, their traffic always uses the bidirectional home-agent tunnel

ipv6.buList.displayStringTextFormat

string

“”

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

ipv6.bindingCache.displayStringTextFormat

string

“”

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

ipv6.pmipv6.displayStringTextFormat

string

“”

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

ipv6.pmipv6.interfaceTableModule

string

path to the InterfaceTable module

ipv6.pmipv6.ipv6NeighbourDiscoveryModule

string

path to the Ipv6NeighbourDiscovery module

ipv6.pmipv6.isLocalMobilityAnchor

bool

false

(the IPv6 routing table is resolved automatically)

ipv6.pmipv6.isMobileAccessGateway

bool

false

ipv6.pmipv6.localMobilityAnchorAddress

string

“”

MAG: the address of the LMA to register mobile nodes with

ipv6.pmipv6.mobileNodeProfiles

xml

xml(“<mobileNodes/>”)

MAG: mobile-node policy profiles, one per access interface, e.g. <mobileNodes> <mobileNode accessInterface=”wlan0” id=”mn1@example.com” homeNetworkPrefix=”2001:db8:1::” prefixLength=”64”/> </mobileNodes> (accessInterface may be omitted to match any access interface)

ipv6.pmipv6.bindingLifetime

double

3600s

lifetime requested in Proxy Binding Updates

ipv6.pmipv6.homeNetworkPrefixAdvValidLifetime

double

3600s

MAG: valid lifetime of the advertised home network prefix

ipv6.pmipv6.homeNetworkPrefixAdvPreferredLifetime

double

1800s

MAG: preferred lifetime of the advertised home network prefix

ipv6.mld.displayStringTextFormat

string

“”

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

ipv6.mld.interfaceTableModule

string

path to the InterfaceTable module

ipv6.mld.routingTableModule

string

path to the Ipv6RoutingTable module

ipv6.mld.checksumMode

string

“declared”

how the ICMPv6 checksum is handled

ipv6.mld.enabled

bool

true

when false, MLD is inert on this node (see above)

ipv6.mld.unsolicitedReportInterval

double

10s

host: delay before the repeated Report after a join

ipv6.mld.robustnessVariable

int

2

loss tolerance; only supplies the defaults of the three params marked (RV) below

ipv6.mld.queryInterval

double

125s

querier: interval between periodic General Queries

ipv6.mld.queryResponseInterval

double

10s

querier: max delay a host may wait before answering a General Query

ipv6.mld.multicastListenerInterval

double

(robustnessVariable * queryInterval) + queryResponseInterval

querier: how long a group stays “has listeners” without a new Report (RV)

ipv6.mld.startupQueryInterval

double

queryInterval / 4

querier: interval between the initial General Queries at startup

ipv6.mld.startupQueryCount

int

robustnessVariable

querier: number of General Queries sent at startup (RV)

ipv6.mld.lastListenerQueryInterval

double

1s

querier: interval between the group-specific Queries sent after a Done

ipv6.mld.lastListenerQueryCount

int

robustnessVariable

querier: number of group-specific Queries sent after a Done (RV)

nl.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

nl.interfaceTableModule

string

Module path to the InterfaceTable module

nl.forwardServiceRegistration

bool

true

nl.forwardProtocolRegistration

bool

true

nl.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

nl.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

nl.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

udp.displayStringTextFormat

string

“passed up: {numPassedUp} pks\nsent: {numSent} pks{udpDroppedText}”

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

udp.interfaceTableModule

string

The path to the InterfaceTable module

udp.checksumMode

string

“declared”

udp.defaultMulticastLoop

bool

true

tcp.displayStringTextFormat

string

“”

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

tcp.checksumMode

string

“declared”

tcp.advertisedWindow

int

14 * this.mss

In bytes, corresponds with the maximal receiver buffer capacity (Note: normally, NIC queues should be at least this size)

tcp.delayedAcksEnabled

bool

false

Delayed ACK algorithm (RFC 1122) enabled/disabled

tcp.nagleEnabled

bool

true

Nagle’s algorithm (RFC 896) enabled/disabled

tcp.limitedTransmitEnabled

bool

false

Limited Transmit algorithm (RFC 3042) enabled/disabled (can be used for TcpReno/TcpTahoe/TcpNewReno/TcpNoCongestionControl)

tcp.increasedIWEnabled

bool

false

Increased Initial Window (RFC 3390) enabled/disabled

tcp.sackSupport

bool

false

Selective Acknowledgment (RFC 2018, 2883, 3517) support (header option) (SACK will be enabled for a connection if both endpoints support it)

tcp.windowScalingSupport

bool

false

Window Scale (RFC 1323) support (header option) (WS will be enabled for a connection if both endpoints support it)

tcp.windowScalingFactor

int

-1

Window Scaling Factor given as a shift count. Valid values are 0..14, and -1 for automatic selection (it chooses the smallest shift count that makes advertisedWindow representable in 16 bits)

tcp.timestampSupport

bool

false

Timestamps (RFC 1323) support (header option) (TS will be enabled for a connection if both endpoints support it)

tcp.mss

int

536

Maximum Segment Size (header option). Default 536 per RFC 1122.

tcp.msl

int

120s

Maximum Segment Lifetime

tcp.tcpAlgorithmClass

string

“TcpReno”

tcp.dupthresh

int

3

Used for TcpTahoe, TcpReno, and SACK (RFC 3517) DO NOT change unless you really know what you are doing

tcp.initialSsthresh

int

0xFFFFFFFF

Initial value for Slow Start threshold used in TahoeRenoFamily. The initial value of ssthresh SHOULD be set arbitrarily high (e.g., to the size of the largest possible advertised window) Without user interaction there is no limit…

tcp.stopOperationExtraTime

double

0s

Extra time after lifecycle stop operation finished

tcp.stopOperationTimeout

double

2s

Timeout value for lifecycle stop operation

tcp.ecnWillingness

bool

false

True if willing to use ECN

tcp.dctcpGamma

double

0.0625

A fixed estimation gain for calculating dctcp_alpha (RFC 8257 4.2)

tcp.pmtudEnabled

bool

false

Path MTU Discovery (RFC 1191, RFC 1981) enabled/disabled

tcp.pmtudTimeout

double

600s

Time after which the original MSS is restored to probe for increased path MTU (RFC 1191, Section 6.3)

sctp.displayStringTextFormat

string

“”

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

sctp.interfaceTableModule

string

sctp.routingTableModule

string

sctp.checksumMode

string

“declared”

sctp.numGapReports

int

3

sctp.rtoInitial

double

3s

sctp.rtoMin

double

1s

sctp.rtoMax

double

60s

sctp.rtoAlpha

double

0.125

sctp.rtoBeta

double

0.250

sctp.maxBurst

int

4

sctp.maxBurstVariant

string

“maxBurst”

sctp.initialWindow

int

0

sctp.assocMaxRetrans

int

10

sctp.pathMaxRetrans

int

5

sctp.maxInitRetrans

int

8

sctp.sackPeriod

double

200ms

sctp.sackFrequency

int

2

sctp.reactivatePrimaryPath

bool

false

sctp.sendQueueLimit

int

0

sctp.validCookieLifetime

double

10s

sctp.enableHeartbeats

bool

true

sctp.hbInterval

double

30s

sctp.sendHeartbeatsOnActivePaths

bool

false

sctp.nagleEnabled

bool

true

sctp.naglePoint

int

1468

sctp.fragPoint

int

1452

Size of a message that has to be fragmented, i.e. maximum size of a fragment

sctp.fastRecoverySupported

bool

true

sctp.sctpAlgorithmClass

string

“SctpAlg”

sctp.ccModule

int

0

RFC4960=0

sctp.osbWithHeader

bool

false

sctp.RTXMethod

int

0

0=Once after 3 Sacks; 1=once per RTT; 2=Switch off Fast Retransmit; 3=Always after 3 Sacks

sctp.ssModule

int

0

ROUND_ROBIN=0

sctp.arwnd

int

65535

sctp.swsLimit

int

3000

Limit for SWS

sctp.udpEncapsEnabled

bool

false

sctp.natFriendly

bool

false

sctp.bytesToAddPerRcvdChunk

int

0

For flow control

sctp.bytesToAddPerPeerChunk

int

0

For flow control

sctp.tellArwnd

bool

false

For flow control

sctp.messageAcceptLimit

int

0

For flow control

sctp.fairStart

double

0s

sctp.fairStop

double

0s

sctp.streamsToPaths

string

“”

sctp.startEndToEndDelay

int

0

sctp.stopEndToEndDelay

int

10

sctp.throughputInterval

double

1

sctp.auth

bool

false

sctp.chunks

string

“”

sctp.padding

bool

false

sctp.addIP

bool

false

sctp.addTime

double

0s

sctp.addAddress

string

“”

sctp.addIpType

string

“0”

SET_PRIMARY_ADDRESS=49156,ADD_IP_ADDRESS=49153,DELETE_IP_ADDRESS=49154

sctp.packetDrop

bool

false

sctp.sackNow

bool

false

sctp.highSpeedCC

bool

false

sctp.checkSackSeqNumber

bool

false

sctp.nrSack

bool

false

sctp.disableReneging

bool

false

sctp.gapReportLimit

int

100000000

sctp.gapListOptimizationVariant

string

“none”

sctp.smartOverfullSACKHandling

bool

false

sctp.allowQoSTracking

bool

false

sctp.qosTrackingInterval

double

1.0s

sctp.cmtSendAllVariant

string

“normal”

sctp.cmtRetransmissionVariant

string

“normal”

sctp.cmtCUCVariant

string

“normal”

sctp.cmtBufferSplitVariant

string

“none”

sctp.cmtBufferSplittingUsesOSB

bool

false

sctp.cmtUseSFR

bool

true

sctp.cmtUseDAC

bool

true

sctp.cmtUseFRC

bool

true

sctp.cmtSmartT3Reset

bool

true

sctp.cmtSmartFastRTX

bool

true

sctp.cmtSmartReneging

bool

false

sctp.cmtSlowPathRTTUpdate

bool

false

sctp.cmtChunkReschedulingVariant

string

“none”

sctp.cmtChunkReschedulingThreshold

double

0.5

sctp.cmtMovedChunksReduceCwnd

bool

true

sctp.movedChunkFastRTXFactor

double

2.0

sctp.cmtSackPath

string

“standard”

sctp.strictCwndBooking

bool

false

sctp.cmtCCVariant

string

“off”

CMT Congestion Control Variant off = use over every path the default RFC4960 CC (New Reno) lia = First resource pooling congestion control RFC6356 adapted for SCTP - https://datatracker.ietf.org/doc/rfc6356/ olia = alternative MPTCP CC, adapted for SCTP- https://tools.ietf.org/html/draft-khalili-mptcp-congestion-control-05 cmtrpv1 = First resource pooling based CC for SCTP - https://www.tdr.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/AINA2010.pdf cmtrpv2 = Updated version of cmtrpv1 - https://www.tdr.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/ConTEL2011.pdf

sctp.cmtCCPathGroups

string

“”

sctp.rpPathBlocking

bool

false

sctp.rpScaleBlockingTimeout

bool

false

sctp.rpMinCwnd

int

1

quic.displayStringTextFormat

string

“”

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

quic.routingTableModule

string

Set by StandardHost.

quic.sendZeroRttTokenAsServer

bool

false

quic.congestionControl

string

“NewReno”

Sets the congestion control algorithm (NewReno or No).

quic.accurateIncreaseInNewRenoCongestionAvoidance

bool

true

For NewReno in Congestion Avoidance, if true, increases cwnd after cwnd-acked bytes; if false, increases cwnd on every acked packet by acked_bytes/cwnd.

quic.sendQueueLimit

int

64MB

Sets the limit of the send queue in bytes.

quic.sendQueueLowWaterRatio

double

.4

Defines the send queue low water mark relative to the limit.

quic.initialMaxData

int

15MB

Connection level flow control credit. Used as own and peer’s value.

quic.initialMaxStreamData

int

6MB

Stream level flow control credit for any stream (unidirectional, bidirectional local and remote). Used as own and peer’s value.

quic.maxDataFrameThreshold

double

0.5*initialMaxData

Defines when MaxDataFrame in ConnectionFlowControl will be send.

quic.maxStreamDataFrameThreshold

double

0.5*initialMaxStreamData

Defines when MaxStreamDataFrame in StreamFlowControl will be send.

quic.roundConsumedDataValue

bool

false

If true, FlowControlResponder rounds consumedData in streamRcvBuffer to the next packetSize.

quic.sendMaxDataFramesImmediately

bool

false

If true, a MAX_(STREAM)_DATA frame is sent immediately, after generation. Otherwise, sending the frame is delayed until the sending process starts due to another event.

quic.bundleAckForNonAckElicitingPackets

bool

false

If true, bundles ack for non-ack-eliciting packets in an outgoing packet.

quic.numReceivedAckElicitingsBeforeAck

int

2

Number of ack eliciting packets a receiver waits for, before it sends an ACK, immediately.

quic.useIBit

bool

false

If true, an ACK frame is sent immediately upon an ack-eliciting packet with the I-Bit set.

quic.useDplpmtud

bool

false

If true, uses DPLPMTUD (RFC8899) to determine the PMTU.

quic.maxPmtu

int

65535B

With useDplpmtud, it is used as upper limit for the PMTU search. Without useDplpmtud, the PMTU is set to the minimum of the MTU of the outgoing interface and this value.

quic.dplpmtudMinPmtu

int

0

Specifies the minimum PMTU to use (if 0, it uses 1200 B for IPv4 or 1280 B for IPv6 as minimum PMTU).

quic.dplpmtudMaxProbes

int

3

Specifies the number of probe packet sent for one candidate before given up.

quic.dplpmtudUsePtb

bool

true

If true, uses ICMP Packet Too Big (PTB) messages for DPLPMTUD.

quic.dplpmtudCandidateSequence

string

“OptBinary”

Specifies the sequence of candidates used for the search algorithm of DPLPMTUD (Up, Down, OptUp, Binary, OptBinary, Jump).

quic.skipPacketNumberForDplpmtudProbePackets

bool

false

Specifies whether to skip a packet number for a DPLPMTUD probe packet in order to avoid ack delay.

quic.useCwndForParallelProbes

int

0

If 0, no parallel probe packets; if 1, uses the availbale cwnd to send additional probe packets and if 2 prefers to send probe packets over other packets.

quic.sendDataDuringInitalDplpmtudBase

bool

true

If false, waits for DPLPMTUD switching initially to SEARCH before start sending application data.

quic.dplpmtudUsePmtuValidator

bool

true

If true, activates the PMTU Validator that trys to detect when the current PMTU estimation is larger than the actual PMTU.

quic.pmtuValidatorLostPacketsThreshold

int

2

Specifies the number of lost data packets before assuming a decreased PMTU.

quic.pmtuValidatorTimeThreshold

double

-1s

Specifies the time threshold between two lost packets. If negative, pmtuValidatorSrttFactorThreshold is used instead.

quic.pmtuValidatorSrttFactorThreshold

int

1

If pmtuValidatorTimeThreshold is negative, this number multiplied by SRTT is used instead.

quic.pmtuValidatorInvalidOnPersistentCongestion

int

1

If 0, disabled. If 1, the PMTU validator uses persistent congeation as signal for a decreased PMTU. If 2, only two consecutive persisten congestions used as signal. If 3, …

quic.reducePacketTimeThreshold

double

0s

Specifies after which time with no acks, packets with reduced size are sent. If zero, packet size reduction is disabled. If negative, reducePacketPtoFactorThreshold is used instead.

quic.reducePacketPtoFactorThreshold

int

3

If reducePacketTimeThreshold is negative, this number multiplied by PTO is used instead.

tn.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

tn.interfaceTableModule

string

Module path to the InterfaceTable module

tn.forwardServiceRegistration

bool

true

tn.forwardProtocolRegistration

bool

true

tn.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

tn.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

tn.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

Source code

//
// An extension of the network layer node base with transport layer protocols.
// Provides support for UDP, TCP, and SCTP, enabling end-to-end communication
// services for applications.
//
// Adds transport layer capabilities to the node architecture, bridging
// the gap between applications and the network layer. It handles connection management,
// reliability, flow control, and congestion control depending on the transport
// protocol used.
//
module TransportLayerNodeBase extends NetworkLayerNodeBase
{
    parameters:
        bool hasUdp = default(firstAvailableOrEmpty("Udp") != "");
        bool hasTcp = default(firstAvailableOrEmpty("Tcp", "TcpLwip", "TcpNsc") != "");
        bool hasSctp = default(false);
        bool hasQuic = default(false);
        @figure[transportLayer](type=rectangle; pos=250,158; size=1000,134; fillColor=#ff0000; lineColor=#808080; cornerRadius=5; fillOpacity=0.1);
        @figure[transportLayer.title](type=text; pos=1245,163; anchor=ne; text="transport layer");
    submodules:
        udp: <default(firstAvailableOrEmpty("Udp"))> like IUdp if hasUdp {
            @display("p=375,225");
        }
        tcp: <default(firstAvailableOrEmpty("Tcp", "TcpLwip", "TcpNsc"))> like ITcp if hasTcp {
            @display("p=525,225");
        }
        sctp: <default(firstAvailableOrEmpty("Sctp"))> like ISctp if hasSctp {
            @display("p=675,225");
        }
        quic: <default(firstAvailableOrEmpty("Quic"))> like IQuic if hasQuic {
            @display("p=825,226");
        }
        tn: MessageDispatcher {
            @display("p=750,300;b=1000,5,,,,1");
        }
    connections allowunconnected:
        udp.ipOut --> tn.in++ if hasUdp;
        udp.ipIn <-- tn.out++ if hasUdp;

        tcp.ipOut --> tn.in++ if hasTcp;
        tcp.ipIn <-- tn.out++ if hasTcp;

        sctp.ipOut --> tn.in++ if hasSctp;
        tn.out++ --> sctp.ipIn if hasSctp;

        quic.udpOut --> tn.in++ if hasQuic;
        tn.out++ --> quic.udpIn if hasQuic;

        tn.out++ --> ipv4.transportIn if hasIpv4;
        tn.in++ <-- ipv4.transportOut if hasIpv4;

        tn.out++ --> ipv6.transportIn if hasIpv6;
        tn.in++ <-- ipv6.transportOut if hasIpv6;

        tn.out++ --> generic.transportIn if hasGn;
        tn.in++ <-- generic.transportOut if hasGn;

        tn.out++ --> nl.in++;
        tn.in++ <-- nl.out++;
}

File: src/inet/node/base/TransportLayerNodeBase.ned