Network91

Package: inet.tutorials.protocol

Network91

network

(no description)

client : Host

Source:
client: Host {
    @display("p=100,100");
} router1 : Router

Source:
router1: Router {
    @display("p=300,100");
} router2 : Router

Source:
router2: Router {
    @display("p=500,100");
} router3 : Router

Source:
router3: Router {
    @display("p=400,300");
} server : Host

Source:
server: Host {
    @display("p=700,300");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Properties

Name Value Description
isNetwork

Unassigned submodule parameters

Name Type Default value Description
client.interfaceTable.displayStringTextFormat string ""

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

client.interfaceTable.displayAddresses bool false

Whether to display IP addresses on links

client.forwardingService.d1.displayStringTextFormat string "processed %p pk (%l)"

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

client.forwardingService.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

client.forwardingService.d1.forwardServiceRegistration bool true
client.forwardingService.d1.forwardProtocolRegistration bool true
client.forwardingService.d1.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

client.forwardingService.d1.serviceMapping object {}

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

client.forwardingService.d1.protocolMapping object {}

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

client.forwardingService.forwarding.displayStringTextFormat string ""

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

client.forwardingService.forwarding.address string ""
client.forwardingService.sendWithHopLimit.displayStringTextFormat string ""

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

client.forwardingService.sendWithHopLimit.hopLimit int
client.forwardingService.receiveWithHopLimit.displayStringTextFormat string ""

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

client.dataService.fragmenter.displayStringTextFormat string "processed %p pk (%l)"

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

client.dataService.fragmenter.deleteSelf bool false
client.dataService.fragmenter.headerPosition string "front"
client.dataService.sequenceNumbering.displayStringTextFormat string "processed %p pk (%l)"

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

client.dataService.deaggregator.displayStringTextFormat string "processed %p pk (%l)"

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

client.dataService.deaggregator.deleteSelf bool false
client.dataService.defragmenter.displayStringTextFormat string "processed %p pk (%l)"

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

client.dataService.defragmenter.deleteSelf bool false
client.dataService.defragmenter.headerPosition string "front"
client.dataService.reordering.displayStringTextFormat string "processed %p pk (%l)"

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

client.d1.displayStringTextFormat string "processed %p pk (%l)"

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

client.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

client.d1.forwardServiceRegistration bool true
client.d1.forwardProtocolRegistration bool true
client.d1.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

client.d1.serviceMapping object {}

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

client.d1.protocolMapping object {}

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

client.interface.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

client.interface.pcapRecorder.verbose bool true

Whether to log packets on the module output

client.interface.pcapRecorder.recordEmptyPackets bool true

Specifies if zero length packets are recorded or not

client.interface.pcapRecorder.enableConvertingPackets bool true

Specifies if converting packets to link type is allowed or not

client.interface.pcapRecorder.pcapFile string ""

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

client.interface.pcapRecorder.fileFormat string "pcapng"
client.interface.pcapRecorder.snaplen int 65535

Maximum number of bytes to record per packet

client.interface.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).

client.interface.pcapRecorder.dumpBadFrames bool true

Enable dump of frames with hasBitError

client.interface.pcapRecorder.sendingSignalNames string "transmissionEnded"

Space-separated list of outbound packet signals to subscribe to

client.interface.pcapRecorder.receivingSignalNames string "receptionEnded"

Space-separated list of inbound packet signals to subscribe to

client.interface.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

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

client.interface.pcapRecorder.packetFilter object "*"

Which packets are considered, matches all packets by default

client.interface.pcapRecorder.helpers string ""

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

client.interface.pcapRecorder.alwaysFlush bool false

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

client.interface.sendToMacAddress.displayStringTextFormat string ""

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

client.interface.sendToMacAddress.address string ""
client.interface.resending.displayStringTextFormat string "processed %p pk (%l)"

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

client.interface.resending.numRetries int
client.interface.sendWithAcknowledge.displayStringTextFormat string ""

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

client.interface.sendWithAcknowledge.acknowledgeTimeout double
client.interface.m1.displayStringTextFormat string "passed %p pk (%l)"

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

client.interface.m1.forwardServiceRegistration bool true
client.interface.m1.forwardProtocolRegistration bool true
client.interface.sendWithProtocol.displayStringTextFormat string ""

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

client.interface.fcsInserter.displayStringTextFormat string "processed %p pk (%l)"

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

client.interface.fcsInserter.checksumMode string "declared"
client.interface.fcsInserter.headerPosition string "front"
client.interface.transmitter.displayStringTextFormat string "processed %p pk (%l)"

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

client.interface.transmitter.clockModule string ""

Relative path of a module that implements IClock(1,2); optional

client.interface.transmitter.datarate double
client.interface.receiveAtMacAddress.displayStringTextFormat string ""

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

client.interface.receiveAtMacAddress.address string
client.interface.receiveWithAcknowledge.displayStringTextFormat string ""

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

client.interface.d1.displayStringTextFormat string "processed %p pk (%l)"

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

client.interface.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

client.interface.d1.forwardServiceRegistration bool true
client.interface.d1.forwardProtocolRegistration bool true
client.interface.d1.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

client.interface.d1.serviceMapping object {}

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

client.interface.d1.protocolMapping object {}

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

client.interface.receiveWithProtocol.displayStringTextFormat string ""

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

client.interface.fcsChecker.displayStringTextFormat string "dropped %d/%p pk (%k/%l)"

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

client.interface.fcsChecker.backpressure bool false
client.interface.fcsChecker.headerPosition string "front"
router1.interfaceTable.displayStringTextFormat string ""

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

router1.interfaceTable.displayAddresses bool false

Whether to display IP addresses on links

router1.forwardingService.d1.displayStringTextFormat string "processed %p pk (%l)"

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

router1.forwardingService.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

router1.forwardingService.d1.forwardServiceRegistration bool true
router1.forwardingService.d1.forwardProtocolRegistration bool true
router1.forwardingService.d1.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

router1.forwardingService.d1.serviceMapping object {}

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

router1.forwardingService.d1.protocolMapping object {}

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

router1.forwardingService.forwarding.displayStringTextFormat string ""

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

router1.forwardingService.forwarding.address string ""
router1.forwardingService.sendWithHopLimit.displayStringTextFormat string ""

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

router1.forwardingService.sendWithHopLimit.hopLimit int
router1.forwardingService.receiveWithHopLimit.displayStringTextFormat string ""

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

router1.dataService.fragmenter.displayStringTextFormat string "processed %p pk (%l)"

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

router1.dataService.fragmenter.deleteSelf bool false
router1.dataService.fragmenter.headerPosition string "front"
router1.dataService.sequenceNumbering.displayStringTextFormat string "processed %p pk (%l)"

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

router1.dataService.deaggregator.displayStringTextFormat string "processed %p pk (%l)"

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

router1.dataService.deaggregator.deleteSelf bool false
router1.dataService.defragmenter.displayStringTextFormat string "processed %p pk (%l)"

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

router1.dataService.defragmenter.deleteSelf bool false
router1.dataService.defragmenter.headerPosition string "front"
router1.dataService.reordering.displayStringTextFormat string "processed %p pk (%l)"

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

router1.d1.displayStringTextFormat string "processed %p pk (%l)"

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

router1.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

router1.d1.forwardServiceRegistration bool true
router1.d1.forwardProtocolRegistration bool true
router1.d1.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

router1.d1.serviceMapping object {}

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

router1.d1.protocolMapping object {}

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

router1.interface.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

router1.interface.pcapRecorder.verbose bool true

Whether to log packets on the module output

router1.interface.pcapRecorder.recordEmptyPackets bool true

Specifies if zero length packets are recorded or not

router1.interface.pcapRecorder.enableConvertingPackets bool true

Specifies if converting packets to link type is allowed or not

router1.interface.pcapRecorder.pcapFile string ""

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

router1.interface.pcapRecorder.fileFormat string "pcapng"
router1.interface.pcapRecorder.snaplen int 65535

Maximum number of bytes to record per packet

router1.interface.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).

router1.interface.pcapRecorder.dumpBadFrames bool true

Enable dump of frames with hasBitError

router1.interface.pcapRecorder.sendingSignalNames string "transmissionEnded"

Space-separated list of outbound packet signals to subscribe to

router1.interface.pcapRecorder.receivingSignalNames string "receptionEnded"

Space-separated list of inbound packet signals to subscribe to

router1.interface.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

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

router1.interface.pcapRecorder.packetFilter object "*"

Which packets are considered, matches all packets by default

router1.interface.pcapRecorder.helpers string ""

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

router1.interface.pcapRecorder.alwaysFlush bool false

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

router1.interface.sendToMacAddress.displayStringTextFormat string ""

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

router1.interface.sendToMacAddress.address string ""
router1.interface.resending.displayStringTextFormat string "processed %p pk (%l)"

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

router1.interface.resending.numRetries int
router1.interface.sendWithAcknowledge.displayStringTextFormat string ""

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

router1.interface.sendWithAcknowledge.acknowledgeTimeout double
router1.interface.m1.displayStringTextFormat string "passed %p pk (%l)"

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

router1.interface.m1.forwardServiceRegistration bool true
router1.interface.m1.forwardProtocolRegistration bool true
router1.interface.sendWithProtocol.displayStringTextFormat string ""

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

router1.interface.fcsInserter.displayStringTextFormat string "processed %p pk (%l)"

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

router1.interface.fcsInserter.checksumMode string "declared"
router1.interface.fcsInserter.headerPosition string "front"
router1.interface.transmitter.displayStringTextFormat string "processed %p pk (%l)"

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

router1.interface.transmitter.clockModule string ""

Relative path of a module that implements IClock(1,2); optional

router1.interface.transmitter.datarate double
router1.interface.receiveAtMacAddress.displayStringTextFormat string ""

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

router1.interface.receiveAtMacAddress.address string
router1.interface.receiveWithAcknowledge.displayStringTextFormat string ""

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

router1.interface.d1.displayStringTextFormat string "processed %p pk (%l)"

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

router1.interface.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

router1.interface.d1.forwardServiceRegistration bool true
router1.interface.d1.forwardProtocolRegistration bool true
router1.interface.d1.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

router1.interface.d1.serviceMapping object {}

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

router1.interface.d1.protocolMapping object {}

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

router1.interface.receiveWithProtocol.displayStringTextFormat string ""

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

router1.interface.fcsChecker.displayStringTextFormat string "dropped %d/%p pk (%k/%l)"

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

router1.interface.fcsChecker.backpressure bool false
router1.interface.fcsChecker.headerPosition string "front"
router2.interfaceTable.displayStringTextFormat string ""

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

router2.interfaceTable.displayAddresses bool false

Whether to display IP addresses on links

router2.forwardingService.d1.displayStringTextFormat string "processed %p pk (%l)"

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

router2.forwardingService.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

router2.forwardingService.d1.forwardServiceRegistration bool true
router2.forwardingService.d1.forwardProtocolRegistration bool true
router2.forwardingService.d1.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

router2.forwardingService.d1.serviceMapping object {}

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

router2.forwardingService.d1.protocolMapping object {}

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

router2.forwardingService.forwarding.displayStringTextFormat string ""

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

router2.forwardingService.forwarding.address string ""
router2.forwardingService.sendWithHopLimit.displayStringTextFormat string ""

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

router2.forwardingService.sendWithHopLimit.hopLimit int
router2.forwardingService.receiveWithHopLimit.displayStringTextFormat string ""

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

router2.dataService.fragmenter.displayStringTextFormat string "processed %p pk (%l)"

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

router2.dataService.fragmenter.deleteSelf bool false
router2.dataService.fragmenter.headerPosition string "front"
router2.dataService.sequenceNumbering.displayStringTextFormat string "processed %p pk (%l)"

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

router2.dataService.deaggregator.displayStringTextFormat string "processed %p pk (%l)"

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

router2.dataService.deaggregator.deleteSelf bool false
router2.dataService.defragmenter.displayStringTextFormat string "processed %p pk (%l)"

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

router2.dataService.defragmenter.deleteSelf bool false
router2.dataService.defragmenter.headerPosition string "front"
router2.dataService.reordering.displayStringTextFormat string "processed %p pk (%l)"

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

router2.d1.displayStringTextFormat string "processed %p pk (%l)"

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

router2.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

router2.d1.forwardServiceRegistration bool true
router2.d1.forwardProtocolRegistration bool true
router2.d1.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

router2.d1.serviceMapping object {}

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

router2.d1.protocolMapping object {}

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

router2.interface.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

router2.interface.pcapRecorder.verbose bool true

Whether to log packets on the module output

router2.interface.pcapRecorder.recordEmptyPackets bool true

Specifies if zero length packets are recorded or not

router2.interface.pcapRecorder.enableConvertingPackets bool true

Specifies if converting packets to link type is allowed or not

router2.interface.pcapRecorder.pcapFile string ""

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

router2.interface.pcapRecorder.fileFormat string "pcapng"
router2.interface.pcapRecorder.snaplen int 65535

Maximum number of bytes to record per packet

router2.interface.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).

router2.interface.pcapRecorder.dumpBadFrames bool true

Enable dump of frames with hasBitError

router2.interface.pcapRecorder.sendingSignalNames string "transmissionEnded"

Space-separated list of outbound packet signals to subscribe to

router2.interface.pcapRecorder.receivingSignalNames string "receptionEnded"

Space-separated list of inbound packet signals to subscribe to

router2.interface.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

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

router2.interface.pcapRecorder.packetFilter object "*"

Which packets are considered, matches all packets by default

router2.interface.pcapRecorder.helpers string ""

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

router2.interface.pcapRecorder.alwaysFlush bool false

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

router2.interface.sendToMacAddress.displayStringTextFormat string ""

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

router2.interface.sendToMacAddress.address string ""
router2.interface.resending.displayStringTextFormat string "processed %p pk (%l)"

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

router2.interface.resending.numRetries int
router2.interface.sendWithAcknowledge.displayStringTextFormat string ""

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

router2.interface.sendWithAcknowledge.acknowledgeTimeout double
router2.interface.m1.displayStringTextFormat string "passed %p pk (%l)"

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

router2.interface.m1.forwardServiceRegistration bool true
router2.interface.m1.forwardProtocolRegistration bool true
router2.interface.sendWithProtocol.displayStringTextFormat string ""

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

router2.interface.fcsInserter.displayStringTextFormat string "processed %p pk (%l)"

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

router2.interface.fcsInserter.checksumMode string "declared"
router2.interface.fcsInserter.headerPosition string "front"
router2.interface.transmitter.displayStringTextFormat string "processed %p pk (%l)"

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

router2.interface.transmitter.clockModule string ""

Relative path of a module that implements IClock(1,2); optional

router2.interface.transmitter.datarate double
router2.interface.receiveAtMacAddress.displayStringTextFormat string ""

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

router2.interface.receiveAtMacAddress.address string
router2.interface.receiveWithAcknowledge.displayStringTextFormat string ""

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

router2.interface.d1.displayStringTextFormat string "processed %p pk (%l)"

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

router2.interface.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

router2.interface.d1.forwardServiceRegistration bool true
router2.interface.d1.forwardProtocolRegistration bool true
router2.interface.d1.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

router2.interface.d1.serviceMapping object {}

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

router2.interface.d1.protocolMapping object {}

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

router2.interface.receiveWithProtocol.displayStringTextFormat string ""

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

router2.interface.fcsChecker.displayStringTextFormat string "dropped %d/%p pk (%k/%l)"

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

router2.interface.fcsChecker.backpressure bool false
router2.interface.fcsChecker.headerPosition string "front"
router3.interfaceTable.displayStringTextFormat string ""

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

router3.interfaceTable.displayAddresses bool false

Whether to display IP addresses on links

router3.forwardingService.d1.displayStringTextFormat string "processed %p pk (%l)"

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

router3.forwardingService.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

router3.forwardingService.d1.forwardServiceRegistration bool true
router3.forwardingService.d1.forwardProtocolRegistration bool true
router3.forwardingService.d1.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

router3.forwardingService.d1.serviceMapping object {}

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

router3.forwardingService.d1.protocolMapping object {}

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

router3.forwardingService.forwarding.displayStringTextFormat string ""

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

router3.forwardingService.forwarding.address string ""
router3.forwardingService.sendWithHopLimit.displayStringTextFormat string ""

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

router3.forwardingService.sendWithHopLimit.hopLimit int
router3.forwardingService.receiveWithHopLimit.displayStringTextFormat string ""

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

router3.dataService.fragmenter.displayStringTextFormat string "processed %p pk (%l)"

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

router3.dataService.fragmenter.deleteSelf bool false
router3.dataService.fragmenter.headerPosition string "front"
router3.dataService.sequenceNumbering.displayStringTextFormat string "processed %p pk (%l)"

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

router3.dataService.deaggregator.displayStringTextFormat string "processed %p pk (%l)"

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

router3.dataService.deaggregator.deleteSelf bool false
router3.dataService.defragmenter.displayStringTextFormat string "processed %p pk (%l)"

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

router3.dataService.defragmenter.deleteSelf bool false
router3.dataService.defragmenter.headerPosition string "front"
router3.dataService.reordering.displayStringTextFormat string "processed %p pk (%l)"

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

router3.d1.displayStringTextFormat string "processed %p pk (%l)"

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

router3.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

router3.d1.forwardServiceRegistration bool true
router3.d1.forwardProtocolRegistration bool true
router3.d1.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

router3.d1.serviceMapping object {}

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

router3.d1.protocolMapping object {}

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

router3.interface.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

router3.interface.pcapRecorder.verbose bool true

Whether to log packets on the module output

router3.interface.pcapRecorder.recordEmptyPackets bool true

Specifies if zero length packets are recorded or not

router3.interface.pcapRecorder.enableConvertingPackets bool true

Specifies if converting packets to link type is allowed or not

router3.interface.pcapRecorder.pcapFile string ""

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

router3.interface.pcapRecorder.fileFormat string "pcapng"
router3.interface.pcapRecorder.snaplen int 65535

Maximum number of bytes to record per packet

router3.interface.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).

router3.interface.pcapRecorder.dumpBadFrames bool true

Enable dump of frames with hasBitError

router3.interface.pcapRecorder.sendingSignalNames string "transmissionEnded"

Space-separated list of outbound packet signals to subscribe to

router3.interface.pcapRecorder.receivingSignalNames string "receptionEnded"

Space-separated list of inbound packet signals to subscribe to

router3.interface.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

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

router3.interface.pcapRecorder.packetFilter object "*"

Which packets are considered, matches all packets by default

router3.interface.pcapRecorder.helpers string ""

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

router3.interface.pcapRecorder.alwaysFlush bool false

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

router3.interface.sendToMacAddress.displayStringTextFormat string ""

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

router3.interface.sendToMacAddress.address string ""
router3.interface.resending.displayStringTextFormat string "processed %p pk (%l)"

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

router3.interface.resending.numRetries int
router3.interface.sendWithAcknowledge.displayStringTextFormat string ""

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

router3.interface.sendWithAcknowledge.acknowledgeTimeout double
router3.interface.m1.displayStringTextFormat string "passed %p pk (%l)"

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

router3.interface.m1.forwardServiceRegistration bool true
router3.interface.m1.forwardProtocolRegistration bool true
router3.interface.sendWithProtocol.displayStringTextFormat string ""

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

router3.interface.fcsInserter.displayStringTextFormat string "processed %p pk (%l)"

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

router3.interface.fcsInserter.checksumMode string "declared"
router3.interface.fcsInserter.headerPosition string "front"
router3.interface.transmitter.displayStringTextFormat string "processed %p pk (%l)"

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

router3.interface.transmitter.clockModule string ""

Relative path of a module that implements IClock(1,2); optional

router3.interface.transmitter.datarate double
router3.interface.receiveAtMacAddress.displayStringTextFormat string ""

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

router3.interface.receiveAtMacAddress.address string
router3.interface.receiveWithAcknowledge.displayStringTextFormat string ""

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

router3.interface.d1.displayStringTextFormat string "processed %p pk (%l)"

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

router3.interface.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

router3.interface.d1.forwardServiceRegistration bool true
router3.interface.d1.forwardProtocolRegistration bool true
router3.interface.d1.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

router3.interface.d1.serviceMapping object {}

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

router3.interface.d1.protocolMapping object {}

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

router3.interface.receiveWithProtocol.displayStringTextFormat string ""

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

router3.interface.fcsChecker.displayStringTextFormat string "dropped %d/%p pk (%k/%l)"

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

router3.interface.fcsChecker.backpressure bool false
router3.interface.fcsChecker.headerPosition string "front"
server.interfaceTable.displayStringTextFormat string ""

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

server.interfaceTable.displayAddresses bool false

Whether to display IP addresses on links

server.forwardingService.d1.displayStringTextFormat string "processed %p pk (%l)"

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

server.forwardingService.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

server.forwardingService.d1.forwardServiceRegistration bool true
server.forwardingService.d1.forwardProtocolRegistration bool true
server.forwardingService.d1.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

server.forwardingService.d1.serviceMapping object {}

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

server.forwardingService.d1.protocolMapping object {}

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

server.forwardingService.forwarding.displayStringTextFormat string ""

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

server.forwardingService.forwarding.address string ""
server.forwardingService.sendWithHopLimit.displayStringTextFormat string ""

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

server.forwardingService.sendWithHopLimit.hopLimit int
server.forwardingService.receiveWithHopLimit.displayStringTextFormat string ""

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

server.dataService.fragmenter.displayStringTextFormat string "processed %p pk (%l)"

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

server.dataService.fragmenter.deleteSelf bool false
server.dataService.fragmenter.headerPosition string "front"
server.dataService.sequenceNumbering.displayStringTextFormat string "processed %p pk (%l)"

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

server.dataService.deaggregator.displayStringTextFormat string "processed %p pk (%l)"

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

server.dataService.deaggregator.deleteSelf bool false
server.dataService.defragmenter.displayStringTextFormat string "processed %p pk (%l)"

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

server.dataService.defragmenter.deleteSelf bool false
server.dataService.defragmenter.headerPosition string "front"
server.dataService.reordering.displayStringTextFormat string "processed %p pk (%l)"

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

server.d1.displayStringTextFormat string "processed %p pk (%l)"

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

server.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

server.d1.forwardServiceRegistration bool true
server.d1.forwardProtocolRegistration bool true
server.d1.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

server.d1.serviceMapping object {}

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

server.d1.protocolMapping object {}

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

server.interface.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

server.interface.pcapRecorder.verbose bool true

Whether to log packets on the module output

server.interface.pcapRecorder.recordEmptyPackets bool true

Specifies if zero length packets are recorded or not

server.interface.pcapRecorder.enableConvertingPackets bool true

Specifies if converting packets to link type is allowed or not

server.interface.pcapRecorder.pcapFile string ""

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

server.interface.pcapRecorder.fileFormat string "pcapng"
server.interface.pcapRecorder.snaplen int 65535

Maximum number of bytes to record per packet

server.interface.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).

server.interface.pcapRecorder.dumpBadFrames bool true

Enable dump of frames with hasBitError

server.interface.pcapRecorder.sendingSignalNames string "transmissionEnded"

Space-separated list of outbound packet signals to subscribe to

server.interface.pcapRecorder.receivingSignalNames string "receptionEnded"

Space-separated list of inbound packet signals to subscribe to

server.interface.pcapRecorder.dumpProtocols string "ethernetmac ppp ieee80211mac"

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

server.interface.pcapRecorder.packetFilter object "*"

Which packets are considered, matches all packets by default

server.interface.pcapRecorder.helpers string ""

Usable PcapRecorder::IHelper helpers for accept packettype and store/convert packet as specified linktype currently available: "inet::AckingMacToEthernetPcapRecorderHelper"

server.interface.pcapRecorder.alwaysFlush bool false

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

server.interface.sendToMacAddress.displayStringTextFormat string ""

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

server.interface.sendToMacAddress.address string ""
server.interface.resending.displayStringTextFormat string "processed %p pk (%l)"

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

server.interface.resending.numRetries int
server.interface.sendWithAcknowledge.displayStringTextFormat string ""

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

server.interface.sendWithAcknowledge.acknowledgeTimeout double
server.interface.m1.displayStringTextFormat string "passed %p pk (%l)"

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

server.interface.m1.forwardServiceRegistration bool true
server.interface.m1.forwardProtocolRegistration bool true
server.interface.sendWithProtocol.displayStringTextFormat string ""

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

server.interface.fcsInserter.displayStringTextFormat string "processed %p pk (%l)"

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

server.interface.fcsInserter.checksumMode string "declared"
server.interface.fcsInserter.headerPosition string "front"
server.interface.transmitter.displayStringTextFormat string "processed %p pk (%l)"

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

server.interface.transmitter.clockModule string ""

Relative path of a module that implements IClock(1,2); optional

server.interface.transmitter.datarate double
server.interface.receiveAtMacAddress.displayStringTextFormat string ""

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

server.interface.receiveAtMacAddress.address string
server.interface.receiveWithAcknowledge.displayStringTextFormat string ""

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

server.interface.d1.displayStringTextFormat string "processed %p pk (%l)"

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

server.interface.d1.interfaceTableModule string

Module path to the ~InterfaceTable module

server.interface.d1.forwardServiceRegistration bool true
server.interface.d1.forwardProtocolRegistration bool true
server.interface.d1.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

server.interface.d1.serviceMapping object {}

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

server.interface.d1.protocolMapping object {}

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

server.interface.receiveWithProtocol.displayStringTextFormat string ""

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

server.interface.fcsChecker.displayStringTextFormat string "dropped %d/%p pk (%k/%l)"

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

server.interface.fcsChecker.backpressure bool false
server.interface.fcsChecker.headerPosition string "front"

Source code

network Network91
{
    submodules:
        client: Host {
            @display("p=100,100");
        }
        router1: Router {
            @display("p=300,100");
        }
        router2: Router {
            @display("p=500,100");
        }
        router3: Router {
            @display("p=400,300");
        }
        server: Host {
            @display("p=700,300");
        }
    connections:
        client.g++ <--> {  delay = 1ms; } <--> router1.g++;
        router1.g++ <--> {  delay = 1ms; } <--> router2.g++;
        router1.g++ <--> {  delay = 1ms; } <--> router3.g++;
        router2.g++ <--> {  delay = 1ms; } <--> router3.g++;
        router3.g++ <--> {  delay = 1ms; } <--> server.g++;
}
File: tutorials/protocol/Network91.ned