NetworkLayerNodeBase

Package: inet.node.base

compound module NetworkLayerNodeBase

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

Adds network layer capabilities to the node architecture, enabling end-to-end connectivity across different networks.

NetworkLayerNodeBasellc.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++cb.in++ --> nl.out++ipv4.ifIn --> nl.out++ conditional: hasIpv4?ipv4.ifOut --> nl.in++ conditional: hasIpv4?ipv6.ifIn --> nl.out++ conditional: hasIpv6?ipv6.ifOut --> nl.in++ conditional: hasIpv6?generic.ifIn --> nl.out++ conditional: exists(generic)?generic.ifOut --> nl.in++ conditional: exists(generic)?llc.upperLayerOut --> nl.in++ conditional: exists(llc)?llc.upperLayerIn --> nl.out++ conditional: exists(llc)?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) 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) 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) Source: generic: <default("")> like INetworkLayer if hasGn { @display("p=675,375;q=queue"); }#genericnl: inet.common.MessageDispatcher Facilitates the interconnection of applications, protocols, and network interfaces, dispatching m... Source: nl: MessageDispatcher { @display("p=750,450;b=1000,5,,,,1"); }nl

Usage diagram

Inheritance diagram

Known subclasses

Name

Type

Description

TransportLayerNodeBase

compound module

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.

InternetCloud

compound module

InternetCloud models a large network such as part of the Internet or a corporate backbone network with realistic delay, packet loss, and datarate characteristics. It abstracts away the internal structure of the network while preserving the end-to-end behavior that applications would experience.

Extends

Name

Type

Description

LinkLayerNodeBase

compound module

An extension of the basic node infrastructure with link layer functionality. Provides support for various network interfaces and link layer protocols, forming the foundation for network connectivity.

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

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

Source code

//
// An extension of the link layer node base with network layer functionality.
// Provides support for multiple network protocols, including IPv4 and IPv6.
//
// Adds network layer capabilities to the node architecture, enabling
// end-to-end connectivity across different networks.
//
module NetworkLayerNodeBase extends LinkLayerNodeBase
{
    parameters:
        bool hasIpv4 = default(true);
        bool hasIpv6 = default(false);
        bool hasGn = default(false);
        bool forwarding = default(false);
        bool multicastForwarding = default(false);
        *.forwarding = this.forwarding;
        *.multicastForwarding = this.multicastForwarding;
        @figure[networkLayer](type=rectangle; pos=250,308; size=1000,134; fillColor=#00ff00; lineColor=#808080; cornerRadius=5; fillOpacity=0.1);
        @figure[networkLayer.title](type=text; pos=1245,313; anchor=ne; text="network layer");
    submodules:
        ipv4: <default("Ipv4NetworkLayer")> like INetworkLayer if hasIpv4 {
            @display("p=375,375;q=queue");
        }
        ipv6: <default("Ipv6NetworkLayer")> like INetworkLayer if hasIpv6 {
            @display("p=525,375;q=queue");
        }
        generic: <default("")> like INetworkLayer if hasGn {
            @display("p=675,375;q=queue");
        }
        nl: MessageDispatcher {
            @display("p=750,450;b=1000,5,,,,1");
        }
    connections allowunconnected:
        cb.out++ --> nl.in++;   // nl.in[0]: always the link-layer (cb) side
        cb.in++ <-- nl.out++;   // nl.out[0]: always the link-layer (cb) side

        ipv4.ifIn <-- nl.out++ if hasIpv4;
        ipv4.ifOut --> nl.in++ if hasIpv4;

        ipv6.ifIn <-- nl.out++ if hasIpv6;
        ipv6.ifOut --> nl.in++ if hasIpv6;

        generic.ifIn <-- nl.out++ if exists(generic);
        generic.ifOut --> nl.in++ if exists(generic);

        llc.upperLayerOut --> nl.in++ if exists(llc);
        llc.upperLayerIn <-- nl.out++ if exists(llc);
}

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