Packages

Packages

inet.applications.clock

Name Type Description
SimpleClockSynchronizer simple module

This module periodically synchronizes the slave clock to the master clock with the specified accuracy. The synchronization happens directly using C++ methods calls and without any packet exchange. This is primarily useful when the overhead of the time synchronization protocol messages can be safely ignored.

inet.applications.common

Name Type Description
SinkApp compound module

This module implements a generic sink application.

SourceApp compound module

This module implements a generic source application.

inet.applications.contract

Name Type Description
IApp module interface

Generic application interface.

inet.applications.dhcp

Name Type Description
DhcpClient simple module

Implements the DHCP client protocol. DHCP (Dynamic Host Configuration Protocol), described in RFC 2131, provides configuration parameters to Internet hosts. Requires UDP.

DhcpServer simple module

Implements the DHCP server protocol. DHCP (Dynamic Host Configuration Protocol), described in RFC 2131, provides configuration parameters to Internet hosts. Requires UDP.

inet.applications.ethernet

Name Type Description
EtherAppClient simple module

A simple traffic generator for the Ethernet model and the 802.11 model, and generally for any L2 model that accepts Ieee802SapReq tags on the packets. It generates packets containing EtherAppReq chunks. It should be connected directly to Ieee8022Llc.

EtherAppServer simple module

Server side of the EtherAppClient model -- generates packets containing EtherAppResp chunks with the number of bytes requested by the client in corresponding EtherAppReq. It should be connected directly to Ieee8022Llc module.

EthernetApp compound module

This module generates traffic as an Ethernet application. The traffic source and traffic sink modules can be built from queueing model elements.

EthernetSinkApp compound module

This module implements an Ethernet application that only receives packets.

EthernetSocketIo simple module

This module provides Ethernet socket handling for generic applications.

EthernetSourceApp compound module

This module implements an Ethernet application that only sends packets.

EtherTrafGen simple module

A simple traffic generator for the Ethernet model and the 802.11 model, and generally for any L2 model that accepts Ieee802SapReq tag on packets. It should be connected directly to Ieee8022Llc module.

inet.applications.generic

Name Type Description
IIpvxTrafficGenerator module interface

Module interface for modules that generate traffic directly over IP. Compatible with both Ipv4 and Ipv6.

IpvxTrafGen simple module

Sends IP or IPv6 datagrams to the given address at the given sendInterval. The sendInterval can be a constant or a random value (e.g. exponential(1)). If the destAddresses parameter contains more than one address, one of them is randomly for each packet. An address may be given in the dotted decimal notation (or, for IPv6, in the usual notation with colons), or with the module name. (The L3AddressResolver class is used to resolve the address.) To disable the model, set destAddresses to "".

IpvxTrafSink simple module

Consumes and prints packets received from the IP module. Compatible with both Ipv4 and Ipv6.

inet.applications.ieee8022

Name Type Description
Ieee8022LlcApp compound module

This module generates traffic as an IEEE 802.2 LLC application. The traffic source and traffic sink modules can be built from queueing model elements.

Ieee8022LlcSinkApp compound module

This module implements an IEEE 802.2 LLC application that only receives packets.

Ieee8022LlcSocketIo simple module

This module provides IEEE 802.2 LLC socket handling for generic applications.

Ieee8022LlcSourceApp compound module

This module implements an IEEE 802.2 LLC application that only sends packets.

inet.applications.ipapp

Name Type Description
IpApp compound module

This module generates traffic for a IP application. The traffic source and traffic sink modules can be built from queueing model elements.

IpSinkApp compound module

This module implements a IP application that only receives packets.

IpSocketIo simple module

This module provides IP socket handling for generic applications.

IpSourceApp compound module

This module implements a IP application that only sends packets.

inet.applications.netperfmeter

Name Type Description
NetPerfMeter simple module

Application model for comparing the performance of various transport protocols.

inet.applications.pingapp

Name Type Description
PingApp simple module

Generates ping requests to several hosts (or rather, network interfaces), and calculates the packet loss and round trip times of the replies. It works exactly like 'ping' except that it is possible to specify several destination addresses as a space separated list of IP addresses or module names. (The L3AddressResolver class is used to resolve the address.) Specifying '*' allows pinging ALL configured network interfaces in the whole simulation. This is useful to check if a host can reach ALL other hosts in the network (i.e. routing tables were set up properly).

inet.applications.rtpapp

Name Type Description
RtpApplication simple module

An application which uses RTP. It acts as a sender if the parameter fileName is set, and as a receiver if the parameter is empty.

inet.applications.sctpapp

Name Type Description
SctpClient simple module

Client app for SCTP-based request-reply protocols. Handles a single session (and SCTP connection) at a time.

SctpNatPeer simple module (no description)
SctpNatServer simple module (no description)
SctpPeer simple module (no description)
SctpServer simple module

Server app for SCTP-based request-reply protocols. Handles a single session (and SCTP connection) at a time.

inet.applications.tcpapp

Name Type Description
TcpBasicClientApp simple module

Client for a generic request-response style protocol over TCP. May be used as a rough model of HTTP or FTP users. Compatible with both IPv4 (Ipv4) and IPv6 (Ipv6).

TcpClientApp compound module

This module is a generic TCP client application. The traffic source and traffic sink modules can be built from queueing model elements.

TcpClientSocketIo simple module

This module provides TCP client socket handling for generic TCP applications.

TcpEchoApp simple module

Accepts any number of incoming TCP connections, and sends back the messages that arrive on them, The lengths of the messages are multiplied by echoFactor before sending them back (echoFactor=1 will result in sending back the same message unmodified.) The reply can also be delayed by a constant time (echoDelay parameter).

TcpEchoAppThread simple module

Thread for TcpEchoApp

TcpGenericServerApp simple module

Generic server application for modelling TCP-based request-reply style protocols or applications.

TcpRequestResponseApp compound module

This module is a generic request/response based server application. For each request it receives, it generates a different traffic based on the data the request contains. The client application can be any source that is capable of generating packets with different data. The first byte of the packet data determines the response traffic, which can be configured to produce complex streams of packets with various data and timing distributions.

TcpServerApp compound module

This module is a generic TCP server application with a TCP server listener that creates TCP server connections.

TcpServerConnection compound module

This module is a generic TCP server connection. The traffic source and traffic sink modules can be built from queueing model elements.

TcpServerHostApp simple module

This module hosts TCP-based server applications. It dynamically creates and launches a new "thread" object for each incoming connection.

TcpServerListener simple module

This module accepts/rejects TCP connections and creates TCP server connections as part of a generic TCP server application.

TcpServerSocketIo simple module

This module provides TCP server socket handling for generic TCP applications.

TcpSessionApp simple module

Single-connection TCP application: it opens a connection, sends the given number of bytes, and closes. Sending may be one-off, or may be controlled by a "script" which is a series of (time, number of bytes) pairs. May act either as client or as server. Compatible with both IPv4 (Ipv4) and IPv6 (Ipv6).

TcpSinkApp compound module

Accepts any number of incoming TCP connections, and discards whatever arrives on them. Compatible with both Ipv4 and Ipv6.

TcpSinkAppThread simple module (no description)
TelnetApp simple module

Models Telnet sessions with a specific user behaviour. The server app should be TcpGenericServerApp. Compatible with both Ipv4 and Ipv6.

TelnetClientApp compound module

This client application contains a configurable pre-composed telnet traffic source and traffic sink.

TelnetServerApp compound module

This server application accepts and creates telnet server connections.

TelnetServerConnection compound module

This module contains a configurable pre-composed telnet traffic source and traffic sink as part of a telnet server application.

inet.applications.tunapp

Name Type Description
TunLoopbackApp simple module (no description)
TunnelApp simple module (no description)

inet.applications.udpapp

Name Type Description
UdpApp compound module

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

UdpBasicApp simple module

Sends UDP packets to the given IP address at the given interval. Compatible with both Ipv4 and Ipv6.

UdpBasicBurst simple module

Sends UDP packets to the given IP address(es) in bursts, or acts as a packet sink. Compatible with both IPv4 (Ipv4) and IPv6 (Ipv6).

UdpEchoApp simple module

Listens on an UDP port, and sends back each received packet to its sender. Note: when used together with UdpBasicApp, UdpBasicApp's "received packet lifetime" statistic will record round-trip times.

UdpRequestResponseApp compound module

This module is a generic request/response based server application. For each request it receives, it generates a different traffic based on the data the request contains. The client application can be any source that is capable of generating packets with different data. The first byte of the packet data determines the response traffic, which can be configured to produce complex streams of packets with various data and timing distributions.

UdpSink simple module

Consumes and prints packets received from the Udp module.

UdpSinkApp compound module

This module implements a UDP application that only receives packets.

UdpSocketIo simple module

This module provides UDP socket handling for generic applications.

UdpSourceApp compound module

This module implements a UDP application that only sends packets.

UdpVideoStreamClient simple module

Video streaming client.

UdpVideoStreamServer simple module

Video stream server. To be used with UdpVideoStreamClient.

inet.applications.voip

Name Type Description
SimpleVoipReceiver simple module

Receives a VoIP stream generated by a SimpleVoipSender, and records statistics. The most important statistic is MOS (Mean Opinion Score, a value between 1 and 5, representing a human user's view of the voice quality), computed using the E Model defined in the ITU-T G.107 standard. The parameters starting with "emodel_" correspond to the parameters of the E model.

SimpleVoipSender simple module

Implements a simple VoIP source. It is a constant bitrate source, with talkspurt support added. Packets do not contain actual voice data. Connection setup/teardown is not modelled. The peer must be a SimpleVoipReceiver.

inet.applications.voipstream

Name Type Description
VoipStreamReceiver simple module

VoipStreamReceiver listens on an UDP port, and expects to receive VoIP packets on it. The received voice is then saved into a result audio file that can be compared with the original for further evaluation. VoIP packets are numbered, and out-of-order packets are discarded (the corresponding voice interval will be recorded as silence into the file). VoIP packets that miss their deadlines will similarly be discarded. It is assumed that the audio is played back with delay (by default 20ms), which allows some jitter for the incoming packets. The resulting audio file is closed when the simulation completes (i.e. in the OMNeT++ finish() function). Only one voice session ("call") may be underway at a time.

VoipStreamSender simple module

VoipStreamSender accepts an audio file and a destination IP address/port as input, and will transmit the file's contents as voice traffic over UDP n times (by default once). For transmission, the audio is resampled at the specified frequency and depth, and encoded with the specified codec at the specified bit rate, and chopped into packets that each carry specified number of milliseconds of voice. Those values come from module parameters. Packets that are all silence (all samples are below a given threshold in absolute value) are transmitted as special "silence" packets. The module does not simulate any particular VoIP protocol (e.g. RTP), but instead accepts a "header size" parameter that can be set accordingly.

inet.clock.base

Name Type Description
ClockBase compound module

This is a base module for clocks.

DriftingOscillatorBase simple module

This is a base module for oscillators that drift relative to the nominal tick length over time.

OscillatorBase simple module

This is a base module for oscillators.

inet.clock.contract

Name Type Description
IClock module interface

This module interface is implemented by clock models. Clocks are typically modules, and are used by other modules via direct C++ method calls.

IOscillator module interface

This module interface is implemented by oscillator models. Oscillators are typically simple modules, and are used by other modules via direct C++ method calls.

inet.clock.model

Name Type Description
IdealClock compound module

Models a clock where the clock time is identical to the simulation time.

MultiClock compound module

This module contains several subclocks and also implements the clock module interface itself. It exposes the currently active clock to its users. The active clock can be changed programmatically. This module is primarily useful for multi domain gPTP time synchronization.

OscillatorBasedClock compound module (no description)
SettableClock compound module

Models a clock which can be set to a different clock time. The clock time can be set from C++ or using a <set-clock module="..." time="..."/> command in a ScenarioManager script.

inet.clock.oscillator

Name Type Description
ConstantDriftOscillator simple module

This module generates ticks periodically using a constant drift in the clock speed. The first tick is at the simulation time of the module initialization optionally shifted with an offset. The constant drift can be set from C++ or using a <set-oscillator module="..." drift-rate="..." tick-offset=".."/> command in a ScenarioManager script.

IdealOscillator simple module

This module generates ticks periodically with a constant tick length.

RandomDriftOscillator simple module

This oscillator changes drift rate over time. The drift rate is the sum of a distribution that is evaluated periodically and a random walk process.

inet.common

Name Type Description
IHook module interface

Generic module that can be inserted in some points in the model

IMeasurer module interface

This module interface is implemented by all standalone measurement modules. These measurement modules can be used in various places such as network interfaces, network nodes, subnetworks or even the whole network. They most often collect statistical results by subscribing to signals of other modules and by doing their calculation internally.

LayeredProtocolBase simple module

Module base for different layered protocols.

MessageDispatcher simple module

This module connects multiple applications, protocols and interfaces with each other and automatically dispatches messages and packets between them. It allows many different configurations from layered architectures where message dispatchers separate different communication layers to centralized architectures where a single message dispatcher is connected to all components.

ResidenceTimeMeasurer simple module

This module measures the residence time of packet data in network nodes. The measurement is done by tracking every bit individually using their unique identity. For each bit the measurement starts when the incoming enclosing packet reception ends (or starts) in the network node. Similarly, for each bit the measurement ends when the outgoing enclosing packet transmission starts (or ends) in the network node.

inet.common.geometry.common

Name Type Description
IGeographicCoordinateSystem module interface

This module interface is used by geographic coordinate systems. A geographic coordinate system maps scene coordinates to geographic coordinates, and vice versa.

OsgGeographicCoordinateSystem simple module

This module provides an accurate geographic coordinate system using the built-in OSG API.

SimpleGeographicCoordinateSystem simple module

This module provides a very simple and less accurate geographic coordinate system without using OSG. It doesn't support orientation.

inet.common.lifecycle

Name Type Description
NodeStatus simple module

Keeps track of the status of network node (up, down, etc.) for other modules, and also displays it as a small overlay icon on this module and on the module of the network node.

inet.common.misc

Name Type Description
MessageChecker simple module

Module that allows checking fields of messages.

SignalSource simple module

Emits double-valued signals in the specified interval. May be used for testing indicator figures.

ThruputMeter simple module

Thruput measurement utility module.

ThruputMeteringChannel channel

This channels adds support for thruput metering to the datarate channel. A cDatarateChannel extended with throughput calculation. Values are displayed on the link, using the connection's "t=" or "tt=" display string tag.

inet.common.packet.recorder

Name Type Description
PcapRecorder simple module

Records PCAP traces of frames sent/received by other modules within the same host. By default, it records frames sent/received by L2 modules of StandardHost and Router. The output filename is expected in the pcapFile parameter. The PcapRecorder module can also print tcpdump-like textual information to on the log (EV); this functionality can be controlled by the verbose parameter.

inet.common.scenario

Name Type Description
ScenarioManager simple module

ScenarioManager is for setting up and controlling simulation experiments. You can schedule certain events to take place at specified times, like changing a parameter value, changing the bit error rate of a connection, removing or adding connections, removing or adding routes in a routing table, etc, so that you can observe the transient behaviour.

inet.emulation.common

Name Type Description
ExtInterface compound module

This module provides a base module for external network interfaces.

inet.emulation.linklayer.ethernet

Name Type Description
ExtEthernetSocket simple module

This module provides a bidirectional connection to an ethernet socket of the host computer which is running the simulation. It writes the packets arrived on 'upperLayerIn' gate to the specified real socket, and sends out packets arrived from the real socket on 'upperLayerOut' gate.

ExtEthernetTapDevice simple module

This module provides a bidirectional connection to a real TAP device of the host computer which is running the simulation. It writes the packets arrived on 'lowerLayerIn' gate to the specified real TAP device, and sends out packets arrived from real TAP device on 'lowerLayerOut' gate.

ExtLowerEthernetInterface compound module

This module provides an Ethernet network interface suitable for emulation. The lower part of the network interface is realized in the real world using a real ethernet socket of the host computer which is running the simulation.

ExtUpperEthernetInterface compound module

This module provides an Ethernet network interface suitable for emulation. The upper part of the network interface is realized in the real world using a real TAP device of the host computer which is running the simulation.

inet.emulation.linklayer.ieee80211

Name Type Description
ExtUpperIeee80211Interface compound module

This module provides an IEEE 802.11 network interface suitable for emulation. The upper part of the network interface is realized in the real world using a real TAP device of the host computer which is running the simulation.

inet.emulation.networklayer.ipv4

Name Type Description
ExtIpv4Socket simple module

This module provides a bidirectional connection to an IPv4 socket of the host computer which is running the simulation. It writes the packets arrived on 'upperLayerIn' gate to the specified real socket, and sends out packets arrived from the real socket on 'upperLayerOut' gate.

ExtIpv4TunDevice simple module

This module provides a bidirectional connection to a real TUN device of the host computer which is running the simulation. It writes the packets arrived on 'lowerLayerIn' gate to the specified real TUN device, and sends out packets arrived from real TAP device on 'lowerLayerOut' gate.

ExtLowerIpv4 compound module (no description)
ExtLowerIpv4NetworkLayer compound module (no description)
ExtUpperIpv4 compound module (no description)
ExtUpperIpv4NetworkLayer compound module (no description)
Ipv4Encap simple module (no description)

inet.emulation.transportlayer.udp

Name Type Description
ExtLowerUdp simple module

This module provides UDP protocol services suitable for emulation. The lower part of the UDP protocol is realized in the real world using real UDP sockets of the host computer which is running the simulation.

inet.environment.common

Name Type Description
PhysicalEnvironment compound module

The propagation of communication signals, the movement of communicating agents, or battery exhaustion depend on the surrounding physical environment. For example, signals can be absorbed by objects, can pass through objects, can be refracted by surfaces, can be reflected from surfaces, etc.

inet.environment.contract

Name Type Description
IGround module interface (no description)
IObjectCache module interface

An object cache is a data structure that is used by the physical environment to store physical objects.

IPhysicalEnvironment module interface (no description)

inet.environment.ground

Name Type Description
FlatGround compound module (no description)
OsgEarthGround compound module (no description)

inet.environment.objectcache

Name Type Description
BvhObjectCache compound module

This object cache model organizes closely positioned physical objects into a tree data structure.

GridObjectCache compound module

This object cache model stores physical objects in a spatial grid. Each cell maintains a list of intersecting physical objects. The grid is aligned with the coordinate axes and it has a configurable cell size in all dimensions. The cell size parameters take precedence over the cell count parameters.

inet.linklayer.acking

Name Type Description
AckingMac compound module

This module implements a trivial MAC protocol for use in AckingWirelessInterface.

AckingWirelessInterface compound module

This module implements a highly abstracted wireless network interface (NIC) that uses a trivial MAC protocol. It offers simplicity for scenarios where Layer 1 and 2 effects can be completely ignored, for example testing the basic functionality of a wireless ad-hoc routing protocol.

inet.linklayer.base

Name Type Description
MacProtocolBase simple module

Module base for different MAC protocols.

MacRelayUnitBase simple module (no description)

inet.linklayer.bmac

Name Type Description
BMac compound module

Implementation of B-MAC (called also Berkeley MAC, Low Power Listening or LPL). See C++ documentation for details.

BMacInterface compound module

This module implements a wireless network interface using the B-MAC protocol.

inet.linklayer.common

Name Type Description
ExampleQosClassifier simple module

An example QoS classifier that assigns a User Priority based on the transport protocol and port numbers.

IIeee8021dQosClassifier module interface

Interface for 802.1d QoS classifiers. For each packet, the classifier computes a 802.1d User Priority (UP) value, and sets in on the Iee802Ctrl control info before sending out the packet on the "out" gate.

OmittedIeee8021dQosClassifier compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

QosClassifier simple module

This module classifies packets and assigns a User Priority based on the IP protocol or the transport protocol port numbers.

RandomQosClassifier simple module

A QoS classifier that assigns a random User Priority. This is useful for testing purposes.

WirelessInterface compound module

This module implements a generic wireless network interface.

inet.linklayer.configurator

Name Type Description
FailureProtectionConfigurator simple module

This module provides Time-Sensitive Networking (TSN) configuration using other configurators. One is used to provie the stream redundancy (stream splitting and stream merging) configuration, the other one ise used to provide the gate scheduling configuration.

L2NetworkConfigurator simple module

This module allows to configure network scenarios at layer 2. The Stp and Rstp related parameters such as link cost, port priority and the "is-edge" flag can be configured with XML files.

L2NodeConfigurator simple module

This module has one instance per network node, and it acts like a bridge between the node and the network's global configurator module, L2NetworkConfigurator.

MacForwardingTableConfigurator simple module

This module configures the forwarding database (MAC address table) of all network nodes in the network based on the automatically discovered network topology. The configurator uses the shortest path algorithm to determine the outgoing network interface for all network nodes and all destination network interfaces. The effect of this configuration is that the network can use the GlobalArp module and completely eliminate the ARP protocol messages.

StreamRedundancyConfigurator simple module

This module provides Time-Sensitive Networking (TSN) static stream redundancy configuration. The module automatically configures all the necessary modules related to stream splitting, stream merging and stream filtering in all network nodes. The configuration parameter specifies the streams with a set of path fragments.

inet.linklayer.configurator.gatescheduling.base

Name Type Description
GateScheduleConfiguratorBase simple module

This module serves as a basis for gate scheduling configurator modules. It provides methods for derived modules to easily extract the input parameters from the network topology and also to carry out the actual configuration of the resulting schedule. The schedule is automatically configured in all of the PeriodicGate submodules of all queue submodules in the network interface MAC layer submodules. Besides, the application start offsets are also configured. This allows the derived modules to focus on the implementation of the actual scheduling algorithm.

inet.linklayer.configurator.gatescheduling.common

Name Type Description
AlwaysOpenGateScheduleConfigurator simple module

This module provides a trivial gate scheduling algorithm that makes all gates in the network to be open all the time.

EagerGateScheduleConfigurator simple module

This module provides a gate scheduling algorithm that eagerly reserves time slots for the configured streams in the order of their priority (0 being the lowest). The allocation makes sure that only one gate (traffic category) is open in all network interfaces at any given moment of time. This strategy may result in wasting to much time of the gate cycle and thus end up failing.

TSNschedGateScheduleConfigurator simple module

This module provides a gate scheduling configurator that uses the TSNsched tool that is available at https://github.com/ACassimiro/TSNsched Tested revision: 3f3bf663d196ec6c03e81a1e1392d4aefd158e3e

inet.linklayer.configurator.gatescheduling.contract

Name Type Description
IGateScheduleConfigurator module interface

This module interface is implemented by gate scheduling configurator modules. A gate scheduling configurator is responsible for configuring all PeriodicGate modules of all traffic categories in all network interfaces in the network.

inet.linklayer.configurator.gatescheduling.z3

Name Type Description
Z3GateScheduleConfigurator simple module

This module provides a gate scheduling algorithm that uses the open source z3 SAT solver from Microsoft. In order to be able to use this module, the corresponding 'Z3 Gate Scheduling Configurator' feature must be enabled and the libz3-dev package must be installed.

inet.linklayer.contract

Name Type Description
IEtherMac module interface

Interface for Ethernet MAC implementations. All Ethernet MAC implementations should implement this (i.e. declared as: EthernetCsmaMac like IEtherMac). The existing implementations are these: EthernetCsmaMac and EthernetMac.

IEthernetInterface module interface

This module interface is implemented by Ethernet network interfaces.

IExternalInterface module interface

This module interface is implemnted by external network interfaces.

ILinkLayer module interface

This module interface provides an abstraction for both upper and lower interfaces of different link layers.

ILinkLayerLower module interface

This module interface provides an abstraction for the lower interface of different link layers.

ILinkLayerUpper module interface

This module interface provides an abstraction for the upper interface of different link layers.

ILoopbackInterface module interface

This module interface is implemented by loopback network interfaces.

IMacForwardingTable module interface

Interface for MAC address tables

IMacProtocol module interface

This interface provides an abstraction for different MAC protocols.

IMacRelayUnit module interface

Module interface for modules providing Ethernet switch functionality. These modules handle the mapping between ports and MAC addresses, and forward frames to appropriate ports.

INetworkInterface module interface

This module interface is implemnted by network interfaces.

IPppInterface module interface

This module interface is implemented by PPP network interfaces.

ISpanningTree module interface

Module interface for Spanning Tree protocols

ITunnelInterface module interface

This module interface is implemnted by tunnel network interfaces.

IVirtualInterface module interface

This module interface is implemnted by virtual network interfaces.

IWiredInterface module interface

This module interface is implemented by wired network interfaces.

IWirelessInterface module interface

This module interface is implemented by wireless network interfaces.

inet.linklayer.csmaca

Name Type Description
CsmaCaInterface compound module

Module interface for CSMA/MA network interfaces.

CsmaCaMac compound module

Implements an imaginary CSMA/CA-based MAC protocol with optional acknowledgements and a retry mechanism. With the appropriate settings, it can approximate basic 802.11b ad-hoc mode operation.

inet.linklayer.ethernet

Name Type Description
EthernetInterface compound module

This module represents an Ethernet network interface.

LayeredEthernetInterface compound module

This module implements an Ethernet network interface.

inet.linklayer.ethernet.basic

Name Type Description
EthernetCsmaMac compound module

Ethernet MAC layer. MAC performs transmission and reception of frames. See the IEtherMac for the Ethernet MAC layer general informations. Doesn't do encapsulation/decapsulation; see Ieee8022Llc and EthernetEncapsulation for that.

EthernetEncapsulation simple module

Performs Ethernet II or Ethernet with LLC/SNAP encapsulation/decapsulation.

EthernetMac compound module

Ethernet MAC which supports full-duplex operation ONLY. See the IEtherMac for general informations.

OmittedEthernetEncapsulation compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

inet.linklayer.ethernet.common

Name Type Description
BridgingLayer compound module

This module provides various layer 2 services such as packet forwarding, interface selection, virtual LAN handling, stream handling.

DirectionReverserLayer compound module

This module provides a layer that combines the decision for local delivery with the service of reversing the direction of an incoming packet to outgoing for packet forwarding.

EthernetFrameClassifier simple module

Classifier that forwards Ethernet PAUSE frames to the pauseOut gate, and other frames to the defaultOut gate.

EthernetQosQueue compound module

Queue module that gives the PAUSE frames a higher priority, and can be parametrized with an IPacketQueue for serving the data frames.

EthernetQosRedQueue compound module

Queue module that gives the PAUSE frames a higher priority, and using Random Early Detection algorithm on data frames, and can be parametrized with an IPacketQueue for serving the data frames.

EthernetQueue compound module

Queue module that gives the PAUSE frames a higher priority.

InterfaceRelayLayer compound module

This module combines the interface MAC address learning from incoming packets with the outgoing interface selection for outgoing packets into a single layer.

MacForwardingTable simple module

This module handles the mapping between ports and MAC addresses.

MacRelayUnit simple module (no description)
PacketDirectionReverser simple module

This module is part of the layer 2 architecture. It turns an incoming packet into an outgoing packet simply by removing all attached indication tags and turning some of them into an attached request tag on the packet.

RelayInterfaceLearner simple module

This module extracts the source MAC address of the packet passing through and stores the mapping from this MAC address to the incoming network interface in the MAC address table (forwarding information database).

RelayInterfaceSelector simple module

This module selects the outgoing interface for the packet passing through from the MAC address table (forwarding information database) based on the destination MAC address. The selected interface is attached to the packet in an InterfaceReq. The packet may be duplicated if multiple interfaces are found.

inet.linklayer.ethernet.contract

Name Type Description
IEthernetLayer module interface (no description)
IEthernetMacLayer module interface (no description)

inet.linklayer.ethernet.modular

Name Type Description
EthernetAddressChecker simple module (no description)
EthernetAddressInserter simple module (no description)
EthernetCutthroughBarrier simple module (no description)
EthernetCutthroughInterface compound module

This module represents an Ethernet network interface with cut-through support.

EthernetCutthroughLayer compound module (no description)
EthernetCutthroughSink simple module (no description)
EthernetCutthroughSource simple module (no description)
EthernetFcsChecker simple module (no description)
EthernetFcsInserter simple module (no description)
EthernetFragmentFcsChecker simple module (no description)
EthernetFragmentFcsInserter simple module (no description)
EthernetFragmentingMacLayer compound module (no description)
EthernetGatingQueue compound module (no description)
EthernetLayer compound module (no description)
EthernetMacHeaderChecker simple module (no description)
EthernetMacHeaderInserter simple module (no description)
EthernetMacLayer compound module (no description)
EthernetPauseCommandProcessor simple module (no description)
EthernetPreemptingMacLayer compound module (no description)
EthernetPriorityQueue compound module (no description)
EthernetSocketCommandProcessor simple module (no description)
EthernetSocketPacketProcessor simple module (no description)
EthernetSocketTable simple module (no description)
EthernetStreamingMacLayer compound module (no description)
EthernetTypeOrLengthChecker simple module (no description)
EthernetTypeOrLengthInserter simple module (no description)

inet.linklayer.ieee80211

Name Type Description
Ieee80211Interface compound module

This module implements an IEEE 802.11 network interface. It implements a large subset of the IEEE 802.11 standard, and may use radio models and wireless signal representations of varying levels of detail. It is also extremely configurable, and its component structure makes it easy to experiment with various details of the protocol.

IIeee80211Mac module interface

Module interface for the IEEE 802.11 MAC module type.

inet.linklayer.ieee80211.llc

Name Type Description
Ieee80211LlcEpd simple module

An LLC implementation that encapsulates packets with the IEEE 802 EtherType Protocol Discrimination (EPD) header, as defined in the section 9.2 EtherTypes of the IEEE Std 802-2014 standard. See Ieee802EpdHeader.

Ieee80211LlcLpd simple module

An LLC implementation that encapsulates packets in an LLC header, using IEEE 802 LPD-style encoding.

IIeee80211Llc module interface (no description)

inet.linklayer.ieee80211.mac

Name Type Description
Ds simple module

Implements the DS (Distribution Service) for IEEE 802.11, which is responsible for distributing correctly received frames to the higher layer, to the wireless LAN, etc.

Ieee80211Mac compound module

Implementation of the 802.11 MAC protocol. This module is intended to be used in combination with the Ieee80211Radio module as the physical layer.

Rx simple module

Responsible for checking frames received over the radio for errors, for managing the NAV, and for notifying other processes about the channel state (free or busy).

Tx simple module

Responsible for unconditionally transmitting a frame after waiting for a specified inter-frame space. This is the default implementation of ITx.

inet.linklayer.ieee80211.mac.aggregation

Name Type Description
BasicMpduAggregationPolicy simple module

Implements an MPDU aggregation policy which never aggregates frames.

BasicMsduAggregationPolicy simple module

Implements a basic MSDU aggregation policy, controlled by parameters such as the minimum number of subframes needed to compose an A-MSDU, the minimum length for the aggregated payload, the maximum A-MSDU size, etc.

inet.linklayer.ieee80211.mac.blockack

Name Type Description
OriginatorBlockAckAgreementHandler simple module (no description)
OriginatorBlockAckAgreementPolicy simple module

Implements the default originator block ACK agreement policy

RecipientBlockAckAgreementHandler simple module (no description)
RecipientBlockAckAgreementPolicy simple module

Implements the default recipient block ACK agreement policy.

inet.linklayer.ieee80211.mac.channelaccess

Name Type Description
Dcaf compound module

Implements the DCAF (Distributed Channel Access Function) for IEEE 802.11.

Edca compound module

Implements EDCA (Enhanced Distributed Channel Access) for IEEE 802.11. The implementation allows for a configurable number of access categories, not just four as defined by the standard.

Edcaf compound module

Implements EDCAF (Enhanced Distributed Channel Access Function) for IEEE 802.11. EDCAF represents one access category within EDCA.

Hcca simple module

Implements HCCA (Hybrid Coordination Function Controlled Channel Access) for IEEE 802.11.

inet.linklayer.ieee80211.mac.contention

Name Type Description
Contention simple module

The default implementation of IContention.

EdcaCollisionController simple module

A collision controller used with EDCA. It detects and reports internal collisions among Edcaf instances.

inet.linklayer.ieee80211.mac.contract

Name Type Description
ICollisionController module interface

Interface for collision controllers. A collision controller is used with EDCA, and it detects and reports internal collisions among Edcaf instances.

IContention module interface

Interface for modules that implement contention-based channel access. For each frame, Contention listens on the channel for a DIFS (AIFS) period then for a random backoff period before transitting the frame, and defers when busy channel is sensed. After receiving a corrupted frame, EIFS is used instead of the original DIFS (AIFS).

ICtsPolicy module interface

Interface for CTS policies.

IDcf module interface

Interface for modules that implement the DCF (Distributed Coordination Function) for IEEE 802.11.

IDs module interface

Interface for modules that implement the frame Distribution Service for IEEE 802.11. The job of the Distribution Service is deciding what to do with correctly received frames. They may be discarded (e.g. on address mismatch), sent up to higher layers, and/or transmitted back on the wireless LAN after switching addresses.

IFragmentationPolicy module interface

Interface for fragmentation policies.

IHcf module interface

Interface for modules that implement the HCF (Hybrid Coordination Function) for IEEE 802.11.

IMpduAggregationPolicy module interface

Interface for MPDU aggregation policies.

IMsduAggregationPolicy module interface

Interface for MSDU aggregation policies.

IOriginatorAckPolicy module interface

Interface for originator ACK policies. This policy tells whether an ACK is expected for a transmitted frame, and also determines the ACK timeout.

IOriginatorBlockAckAgreementPolicy module interface

Interface for originator Block ACK agreement policies.

IOriginatorQosAckPolicy module interface

Interface for originator QoS ACK policies.

IRateControl module interface

Interface for auto rate control modules.

IRateSelection module interface

Interface for frame rate selection modules. Rate selection decides what bit rate (or MCS) should be used for frames of various types, such as control frames, management frames and data frames.

IRecipientAckPolicy module interface

Interface for recipient ACK policies. This policy chooses between no ACK, normal ACK and Block ACK for received frames.

IRecipientBlockAckAgreementPolicy module interface

Interface for recipient Block ACK agreement policies.

IRecipientQosAckPolicy module interface

Interface for recipient QoS ACK policies.

IRtsPolicy module interface

Interface for RTS policies.

IRx module interface

Interface for Rx processes. The Rx process checks received frames for errors, manages the NAV, and notifies other processes about the channel state (free or busy). The channel is free only if it is free according to both the physical (CCA) and the virtual (NAV-based) carrier sense algorithms. Correctly received frames are sent up to upper layers, corrupted frames are discarded.

ITx module interface

Interface for processes that unconditionally transmit a frame after waiting for a specified inter-frame space (usually SIFS). Such processes can be used to transmit frames where no contention is needed, e.g. ACK, CTS, or the second and further frames of a TXOP.

inet.linklayer.ieee80211.mac.coordinationfunction

Name Type Description
Dcf compound module

Implements the DCF (Distributed Coordination Function) for IEEE 802.11.

Hcf compound module

Implements the HCF (Hybrid Coordination Function) for IEEE 802.11.

Mcf compound module

IEEE 802.11 Mesh Coordination Function

Pcf compound module

IEEE 802.11 Point Coordination Function

inet.linklayer.ieee80211.mac.fragmentation

Name Type Description
BasicFragmentationPolicy simple module

Implements a basic fragmentation policy, which employs a fragmentation frame size threshold.

inet.linklayer.ieee80211.mac.originator

Name Type Description
AckHandler simple module (no description)
NonQosRecoveryProcedure simple module (no description)
OriginatorAckPolicy simple module

Implements the default originator ACK policy for non-QoS stations.

OriginatorMacDataService compound module (no description)
OriginatorQosAckPolicy simple module

Implements the default originator ACK policy for QoS stations.

OriginatorQosMacDataService compound module (no description)
QosAckHandler simple module (no description)
QosRecoveryProcedure simple module (no description)
QosRtsPolicy simple module

Implements the default RTS policy for QoS stations.

RtsPolicy simple module

Implements the default RTS policy.

TxopProcedure simple module (no description)

inet.linklayer.ieee80211.mac.protectionmechanism

Name Type Description
OriginatorProtectionMechanism simple module (no description)
SingleProtectionMechanism simple module (no description)

inet.linklayer.ieee80211.mac.queue

Name Type Description
CompoundPendingQueue compound module (no description)
InProgressFrames simple module
PendingQueue simple module (no description)

inet.linklayer.ieee80211.mac.ratecontrol

Name Type Description
AarfRateControl simple module

Implements the Adaptive ARF (AARF) rate control mechanism, which was initially described in IEEE 802.11 Rate Adaptation: A Practical Approach, by M. Lacage, M.H. Manshaei, and T. Turletti, 2004.

ArfRateControl simple module

Implements the Auto Rate Fallback (ARF) adaptive rate control mechanism.

OnoeRateControl simple module

Implements ONOE, a credit-based rate control algorithm originally developed by Atheros.

inet.linklayer.ieee80211.mac.rateselection

Name Type Description
QosRateSelection simple module (no description)
RateSelection simple module

Implements the default rate selection algorithm. Rate selection decides what bit rate (or MCS) should be used for control frames, management frames and data frames.

inet.linklayer.ieee80211.mac.recipient

Name Type Description
CtsPolicy simple module

Implements the default CTS policy.

QosCtsPolicy simple module

Implements the default CTS policy for QoS stations.

RecipientAckPolicy simple module

Implements the default recipient ACK policy.

RecipientMacDataService compound module (no description)
RecipientQosAckPolicy simple module

Implements the default recipient ACK policy for QoS stations.

RecipientQosMacDataService compound module (no description)

inet.linklayer.ieee80211.mgmt

Name Type Description
Ieee80211AgentSta simple module

Used in 802.11 infrastructure mode: in a station (STA), this module controls channel scanning, association and handovers, by sending commands (e.g. Ieee80211Prim_ScanRequest) to the management module (Ieee80211MgmtSta).

Ieee80211MgmtAdhoc simple module

IEEE 802.11 management module used for ad-hoc mode. This implementation never sends control or management frames, and discards any such frame received. Distributed beacon generation is not modeled.

Ieee80211MgmtAp simple module

Used in 802.11 infrastructure mode in an access point (AP).

Ieee80211MgmtApSimplified simple module

Used in 802.11 infrastructure mode in an access point (AP).

Ieee80211MgmtSta simple module

Used in 802.11 infrastructure mode: handles management frames for a station (STA).

Ieee80211MgmtStaSimplified simple module

Used in 802.11 infrastructure mode for a station (STA).

IIeee80211Agent module interface (no description)
IIeee80211Mgmt module interface

Module interface for all IEEE 802.11 management module types. It exists to specify what gates a management module should have in order to be usable within Ieee80211Interface.

inet.linklayer.ieee80211.mib

Name Type Description
Ieee80211Mib simple module (no description)

inet.linklayer.ieee80211.portal

Name Type Description
Ieee80211Portal simple module (no description)

inet.linklayer.ieee802154

Name Type Description
Ieee802154Mac compound module

Generic CSMA protocol supporting Mac-ACKs as well as constant, linear or exponential backoff times.

Ieee802154NarrowbandInterface compound module

This module implements an IEEE 802.15.4 narrowband network interface.

Ieee802154NarrowbandMac compound module (no description)
Ieee802154UwbIrInterface compound module

This module implements an IEEE 802.15.4 UWB-IR network interface.

inet.linklayer.ieee8021ae

Name Type Description
Ieee8021aeTagEpdHeaderChecker simple module

TODO this module is incomplete

Ieee8021aeTagEpdHeaderInserter simple module

TODO this module is incomplete

IIeee8021aeTagEpdHeaderChecker module interface (no description)
IIeee8021aeTagEpdHeaderInserter module interface (no description)

inet.linklayer.ieee8021as

Name Type Description
Gptp simple module

This module implements the IEEE 802.1as protocol also known as gPTP. It measures link delays to neighboring gPTP network nodes periodically. The slave and master ports specify where are the connected gPTP network nodes and their roles in the time synchronization domain. The time synchronization is done periodically and the clock module is set.

GptpBridge compound module

This module implements a gPTP bridge network node.

GptpEndstation compound module

This module implements a gPTP end station that contains a clock module and a gPTP protocol.

GptpMaster compound module

This module provide a gPTP master network node.

GptpSlave compound module

This module provide a gPTP slave network node.

MultiDomainGptp compound module

This module combines multiple Gptp modules, one per time domain into a multi time domain time synchronization module. Each gPTP time domain is automatically configured to use the corresponding subclock of the clock passed in to this module.

inet.linklayer.ieee8021d.relay

Name Type Description
Ieee8021dRelay simple module

This modul forwards frames (EtherFrame) based on their destination MAC addresses to appropriate ports.

inet.linklayer.ieee8021d.rstp

Name Type Description
Rstp simple module

Implements the Rapid Spanning Tree Protocol (IEEE 802.D-2004) for IEC 48-bit MAC addresses. It is a complete implementation except it doesn't fall back to STP when peers don't support RSTP.

inet.linklayer.ieee8021d.stp

Name Type Description
Stp simple module

The Spanning Tree Protocol (STP) is a network protocol that ensures a loop-free topology for any bridged Ethernet local area network. The basic function of STP is to prevent bridge loops and the broadcast radiation that results from them. Spanning tree also allows a network design to include spare (redundant) links to provide automatic backup paths if an active link fails, without the danger of bridge loops, or the need for manual enabling/disabling of these backup links.

inet.linklayer.ieee8021d.tester

Name Type Description
StpTester simple module

Network tester module. Shows if a network topology is loopfree, all nodes are connected or it has tree topology.

inet.linklayer.ieee8021q

Name Type Description
DualIeee8021qFilter compound module

This module combines two meters and their corresponding filters per path. This is primarily useful for combining a token bucket based metering with an asynchronous packet shaper. Note that the asynchronous packet shaper also has parts in the network interface queue module.

Ieee8021qAsynchronousShaper compound module

This module implements the IEEE 802.1Q asynchronous shaper.

Ieee8021qCreditBasedGate simple module

This module is a packet gate that can be used to implement the IEEE 802.1q credit based shaper algorithm in combination with a packet queue.

Ieee8021qCreditBasedShaper compound module

This module implements the IEEE 802.1Q credit-based shaper.

Ieee8021qFilter compound module

This module implements the IEEE 802.1Q per-stream filtering and policing. The relationship between streams, gates and meters is not one-to-one. The number of streams, gates and meters can be different and the module will take care about the connections between the submodules based on the streamFilterTable parameter.

Ieee8021qLayer compound module (no description)
Ieee8021qProtocol compound module

This module implements the IEEE 802.1Q protocol encapsulation/decapsulation. It also provides socket support so applications can use the protocol directly.

Ieee8021qSocketCommandProcessor simple module (no description)
Ieee8021qSocketPacketProcessor simple module (no description)
Ieee8021qSocketTable simple module (no description)
Ieee8021qTagEpdHeaderChecker simple module (no description)
Ieee8021qTagEpdHeaderInserter simple module (no description)
Ieee8021qTagTpidHeaderChecker simple module (no description)
Ieee8021qTagTpidHeaderInserter simple module (no description)
Ieee8021qTimeAwareShaper compound module

This module implements the IEEE 802.1Q time aware shaper.

IIeee8021qLayer module interface (no description)
IIeee8021qTagEpdHeaderChecker module interface (no description)
IIeee8021qTagEpdHeaderInserter module interface (no description)
IIeee8021qTagTpidHeaderChecker module interface (no description)
IIeee8021qTagTpidHeaderInserter module interface (no description)
OmittedIeee8021qTagEpdHeaderChecker compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OmittedIeee8021qTagEpdHeaderInserter compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OmittedIeee8021qTagTpidHeaderChecker compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OmittedIeee8021qTagTpidHeaderInserter compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

PcpClassifier simple module

This module classifies packets based on the attached PCP value [0, 7]. The PCP is determined by a PcpReq or a PcpInd or both. The output gate index is the ith value in the pcpToGateIndex parameter.

PcpTrafficClassClassifier compound module

This module classifies packets based on the attached PCP value [0, 7]. The PCP is determined by a PcpReq or a PcpInd or both. The output gate index is the value found in the mapping matrix using the PCP value as the row index and the number of connected consumers (traffic categories) as the column index.

SimpleIeee8021qFilter compound module

This module implements a simplified version of the IEEE 802.1Q per-stream filtering and policing. Each filtered stream has its own path where metering and filtering happens independently of any other stream.

StreamFilterLayer compound module

This module combines two packet filters into a protocol layer so that it can be used in a layered compound module. There are separate submodules for ingress and egress traffic, but in most cases only the ingress filter is used.

StreamPolicyLayer compound module (no description)

inet.linklayer.ieee8021r

Name Type Description
Ieee8021rLayer compound module (no description)
Ieee8021rProtocol compound module

This module implements the IEEE 802.1r protocol encapsulation/decapsulation.

Ieee8021rTagEpdHeaderChecker simple module (no description)
Ieee8021rTagEpdHeaderInserter simple module (no description)
IIeee8021rLayer module interface (no description)
IIeee8021rTagEpdHeaderChecker module interface (no description)
IIeee8021rTagEpdHeaderInserter module interface (no description)

inet.linklayer.ieee8022

Name Type Description
Ieee8022Llc simple module (no description)
Ieee8022LlcChecker simple module (no description)
Ieee8022LlcInserter simple module (no description)
Ieee8022LlcLayer compound module (no description)
Ieee8022LlcSocketCommandProcessor simple module (no description)
Ieee8022LlcSocketPacketProcessor simple module (no description)
Ieee8022LlcSocketTable simple module (no description)
Ieee8022SnapChecker simple module (no description)
Ieee8022SnapInserter simple module (no description)
IIeee8022Llc module interface (no description)
IIeee8022LlcChecker module interface (no description)
IIeee8022LlcInserter module interface (no description)
IIeee8022LlcLayer module interface (no description)
IIeee8022SnapChecker module interface (no description)
IIeee8022SnapInserter module interface (no description)
OmittedIeee8022Llc compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OmittedIeee8022LlcChecker compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OmittedIeee8022LlcInserter compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OmittedIeee8022LlcLayer compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OmittedIeee8022SnapChecker compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OmittedIeee8022SnapInserter compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

inet.linklayer.lmac

Name Type Description
LMac compound module

Implementation of L-MAC (Lightweight Medium Access Protocol for Wireless Sensor Networks).

LMacInterface compound module

This module implements a wireless network interface using the L-MAC protocol.

inet.linklayer.loopback

Name Type Description
Loopback simple module

Loopback interface module implementation.

LoopbackInterface compound module

This module implements a loopback network interface.

inet.linklayer.ppp

Name Type Description
Ppp simple module

PPP implementation.

PppInterface compound module

This module implements a PPP network interface.

inet.linklayer.shortcut

Name Type Description
ShortcutInterface compound module

This module implements a simpistic network interface that uses a shortcut to the receiver at the MAC layer.

ShortcutMac simple module

This module implements a simple shortcut to peer MAC protocol that completely bypasses the physical layer. Packets received from the upper layer protocols are never lost. The MAC protocol directly sends packets to the destination MAC protocol without any physical layer processing. Physical layer overhead is simply simulated by overhead bits, overhead transmission duration and a propagation delay.

inet.linklayer.tun

Name Type Description
Tun simple module (no description)
TunInterface compound module

This module implements a TUN network interface.

inet.linklayer.virtual

Name Type Description
VirtualInterface compound module

This module implements a virtual network interface.

VirtualTunnel simple module (no description)

inet.linklayer.vlan

Name Type Description
VlanIndFilter simple module

This module filters out packets based on the attached VlanInd tag.

VlanPolicyLayer compound module (no description)
VlanReqFilter simple module

This module filters out packets based on the attached VlanReq tag.

VlanReqMapper simple module

This module updates the VlanReq tag on packets.

inet.linklayer.xmac

Name Type Description
XMac compound module

Implementation of X-MAC. See C++ documentation for details.

XMacInterface compound module

This module implements a wireless network interface using the X-MAC protocol.

inet.mobility.base

Name Type Description
MobilityBase simple module

Abstract base module for mobility models.

MovingMobilityBase simple module

Abstract base module for mobility models.

inet.mobility.contract

Name Type Description
IMobility module interface

The module interface for mobility models.

inet.mobility.group

Name Type Description
MoBanCoordinator simple module

This is the coordinator module of the MoBAN mobility model. It should be instantiated in the top level simulation network in MiXiM, once per WBAN. The coordinator module is the main module that provides the group mobility and correlation between nodes in a WBAN. In the initialization phase, it reads three user defined input files which are the postures specification file, a configuration file which includes all required parameter for specific distributions, and the previously logged mobility pattern, if it is requested to use a logged pattern. Note that all WBAN instances may use the same input files if they are exactly in the same situation.

MoBanLocal simple module

This is the local mobility module of MoBAN. It should be instantiated in each node that belongs to a WBAN. The NED parameter "coordinatorIndex" determine to which WBAN (MoBanCoordinator) it belongs. The current implementation uses the Random Walk Mobility Model (RWMM) for individual (local) movement with a sphere around the node, with given speed and sphere radius of the current posture. The reference point of the node it the current posture, the sphere radius, and the speed is given by the corresponding coordinator. RWMM determines the location of node at ant time relative to the given reference point.

inet.mobility.single

Name Type Description
AnsimMobility simple module

Uses the <position_change> elements of the ANSim tool's trace file.

AttachedMobility simple module

This module provides a mobility that is attached to another mobility at a given offset. The position, velocity and acceleration are all affectred by the respective quantites and the orientation of the mobility where this one is attached.

BonnMotionMobility simple module

Uses the native file format of BonnMotion.

ChiangMobility simple module

Uses a probabilistic transition matrix to change the state of motion. In this model, the state of the mobile node in each direction (x and y) can be:

CircleMobility simple module

Moves the node around a circle.

FacingMobility simple module

This module provides orientation towards the target mobility model as seen from the source mobility model.

GaussMarkovMobility simple module

Uses a Gauss-Markov model to control the randomness in the movement. Totally random walk (Brownian motion) is obtained by setting alpha=0, while alpha=1 results a linear motion.

LinearMobility simple module

This is a linear mobility model with speed, angle and acceleration parameters. Angle only changes when the mobile node hits a wall: then it reflects off the wall at the same angle.

MassMobility simple module

This is a random mobility model for a mobile host with a mass. It is the one used in "Optimized Smooth Handoffs in Mobile IP" by Perkins &Wang.

Ns2MotionMobility simple module
RandomWaypointMobility simple module

Implements the Random Waypoint mobility model.

RectangleMobility simple module

Moves the node around a rectangle.

SuperpositioningMobility compound module

This mobility module combines the trajectory of several other mobility modules using superposition. In other words, the position, velocity and acceleration is the sum of the respective quantities of all submodules.

TractorMobility simple module

Moves a tractor through a field with a certain amount of rows. Since the tractor also moves around the field, the tractor travels the number of rows PLUS one rows. Consider the following piece of ascii-art for rows=2.

TurtleMobility simple module

A LOGO-style movement model, with the script coming from XML. It can be useful for describing random as well as deterministic scenarios.

VehicleMobility simple module (no description)

inet.mobility.static

Name Type Description
StaticConcentricMobility simple module

Places all hosts on concentric circles

StaticGridMobility simple module

Places all hosts in a rectangular grid. The usable area (constraint area minus margins on each side) is split into smaller cells (with separationX,separationY size). Hosts are placed in the middle of each cell. By default, the number of columns and rows follow the aspect ratio of the usable area. By default stepX and stepY are calculated based on the number of columns and rows.

StaticLinearMobility simple module

Mobility model which places all hosts at constant distances in a line with an orientation

StationaryMobility simple module

This mobility module does nothing; it can be used for stationary nodes.

inet.networklayer.arp.ipv4

Name Type Description
Arp simple module

Implements the Address Resolution Protocol for IPv4 and IEEE 802 6-byte MAC addresses.

GlobalArp simple module

This module provides global address resolution without exchanging packets.

inet.networklayer.base

Name Type Description
NetworkProtocolBase simple module

Module base for different network protocols.

inet.networklayer.common

Name Type Description
EchoProtocol simple module

This module provides a mechanism to test network layer connectivity using echo request/response messages similar to that of ICMP.

InterfaceTable simple module

Keeps the table of network interfaces.

NetfilterInfoHook simple module (no description)
NetworkInterface compound module

This module serves as the base module for all network interfaces.

SimpleNetworkLayer compound module

This module provides a simple network layer.

inet.networklayer.configurator.base

Name Type Description
L3NetworkConfiguratorBase simple module

This module serves as a base module for layer 3 network configurators.

NetworkConfiguratorBase simple module (no description)

inet.networklayer.configurator.contract

Name Type Description
IIpv4NodeConfigurator module interface (no description)
IL3NetworkConfigurator module interface

This module interface is implemented by all layer 3 network configurators.

INetworkConfigurator module interface

This module interface is implemented by all network wide configurator modules.

inet.networklayer.configurator.ipv4

Name Type Description
HostAutoConfigurator simple module

HostAutoConfigurator automatically assigns IP addresses and sets up routing table. It has to be added into each host.

Ipv4FlatNetworkConfigurator simple module

Configures IPv4 addresses and routing tables for a "flat" network, "flat" meaning that all hosts and routers will have the same network address and will only differ in the host part.

Ipv4NetworkConfigurator simple module

This module assigns IPv4 addresses and sets up static routing for an IPv4 network. It assigns per-interface IP addresses, strives to take subnets into account, and can also optimize the generated routing tables by merging routing entries.

Ipv4NodeConfigurator simple module

This module has one instance per network node, and it acts like a bridge between the node and the network's global configurator module, Ipv4NetworkConfigurator.

inet.networklayer.configurator.ipv6

Name Type Description
Ipv6FlatNetworkConfigurator simple module

Configures Ipv6 addresses and routing tables for a "flat" network, "flat" meaning that all hosts and routers will have the same network address and will only differ in the host part.

inet.networklayer.configurator.nexthop

Name Type Description
NextHopNetworkConfigurator simple module

Adds routes to a NextHopRoutingTable similarly how Ipv4NetworkConfigurator adds static routes to Ipv4RoutingTable.

inet.networklayer.contract

Name Type Description
IArp module interface (no description)
IIpv6Tunneling module interface

IPv6 Tunnel Manager

INetworkLayer module interface (no description)
INetworkLayerLower module interface (no description)
INetworkLayerUpper module interface

This module interface provides an abstraction for different network layers.

INetworkProtocol module interface

This interface provides an abstraction for different network protocols.

IRoutingTable module interface

This module interface provides an abstraction for different routing tables.

IxMIPv6Support module interface

Module interface for xMIPv6 (where x = F, H, F-H).

inet.networklayer.diffserv

Name Type Description
AFxyQueue compound module

This is an example queue, that implements one class of the Assured Forwarding PHB group (RFC 2597).

BehaviorAggregateClassifier simple module

This module reads the DSCP (lower six bits of ToS/TrafficClass) from the received datagram, and forwards the datagram to the corresponding output gate.

DiffservQueue compound module

This is an example queue, that can be used in interfaces of DS core and edge nodes to support the AFxy (RFC 2597) and EF (RFC 3246) PHBs.

DscpMarker simple module

This module sets the DSCP field (lower six bit of Tos/TrafficClass) of IP datagrams to the value specified by the dscps parameter.

MultiFieldClassifier simple module

This classifier contains a list of filters that identifies the flows and determines their classes. Each filter can match the source and destination address, IP protocol number, source and destination ports, or ToS of the datagram. The first matching filter determines the index of the out gate. If no matching filter is found, then the packet will be sent through the defaultOut gate.

PacketMeterBase simple module (no description)
SingleRateThreeColorMeter simple module

This module implements a Single Rate Three Color Meter (RFC 2697).

TokenBucketMeter simple module

Simple token bucket meter.

TwoRateThreeColorMeter simple module

This module implements a Two Rate Three Color Meter (RFC 2698).

inet.networklayer.flooding

Name Type Description
Flooding simple module

A simple flooding protocol for network-level broadcast.

inet.networklayer.icmpv6

Name Type Description
Icmpv6 simple module

ICMPv6 implementation.

Ipv6NeighbourDiscovery simple module

Implements IPv6 Neighbour Discovery.

inet.networklayer.internetcloud

Name Type Description
ICloudDelayer module interface

Delay module interface for InternetCloud.

MatrixCloudDelayer simple module

Delay module for InternetCloud. This is essentially equivalent to a full graph with edges being differently configured DatarateChannels. It delays and/or drops incoming packets based on rules specified in an xml configuration.

inet.networklayer.ipv4

Name Type Description
Icmp simple module

ICMP implementation.

Igmpv2 simple module

Imlementation of IGMPv2 protocol. Multicast routers use IGMP to learn which groups have members on each of their attached physical networks.

Igmpv3 simple module (no description)
IIgmp module interface

Module interface for IGMP modules.

IIpv4 module interface (no description)
Ipv4 simple module

Implements the IPv4 protocol. The protocol header is represented by the Ipv4Header message class.

Ipv4NatTable simple module

Stores the network address translation table.

Ipv4NetworkLayer compound module

Network layer of an IPv4 node.

Ipv4RoutingTable simple module

Stores the routing table. (Per-interface configuration is stored in InterfaceTable.)

RoutingTableRecorder simple module

Records changes in the routing tables (Ipv4RoutingTable) and interface tables (InterfaceTable) of all hosts and routers. The filename has to be specified in the routinglog-file configuration option that this module registers.

inet.networklayer.ipv6

Name Type Description
Ipv6 simple module

Implements the IPv6 protocol.

Ipv6NetworkLayer compound module

Represents an IPv6 network layer (L3).

Ipv6RoutingTable simple module

IPv6 Routing Table and Neighbour Discovery data structures. NOTE: This component MUST be named as "routingTable6" inside a StandardHost/Router etc. in order to be accessible by the Ipv6 and other modules

inet.networklayer.ipv6tunneling

Name Type Description
Ipv6Tunneling simple module

IPv6 Tunnel Manager

inet.networklayer.ldp

Name Type Description
Ldp simple module

Handles and processes LDP messages.

inet.networklayer.mpls

Name Type Description
IIngressClassifier module interface

Module interface for ingress packet classifiers for MPLS.

LibTable simple module

Stores the LIB (Label Information Base), accessed by Mpls and its associated control protocols (RsvpTe, Ldp) via direct C++ method calls.

Mpls simple module

Implements the MPLS protocol.

inet.networklayer.nexthop

Name Type Description
NextHopForwarding simple module

This module is a simplified next hop forwarding that routes datagrams using different kind of network addresses.

NextHopNetworkLayer compound module

This module provides a network layer for the next hop forwarding.

NextHopRoutingTable simple module

This module stores next hop routes used by the next hop forwarding protocol.

inet.networklayer.probabilistic

Name Type Description
AdaptiveProbabilisticBroadcast simple module

Multi-hop ad-hoc data dissemination protocol based on probabilistic broadcast, with adaptive parameters.

ProbabilisticBroadcast simple module

Multi-hop ad-hoc data dissemination protocol based on probabilistic broadcast.

inet.networklayer.rsvpte

Name Type Description
RsvpClassifier simple module

Table-base ingress classifier.

RsvpTe simple module

Implements RSVP-TE, a signalling protocol for MPLS. The module processes RSVP-TE messages, installs labels and does the reservation along LSP paths.

inet.networklayer.ted

Name Type Description
LinkStateRouting simple module

This module implements a very minimalistic link state routing protocol. Apart from the basic topology information, the current link usage is distributed to all participants in the network (by means of flooding).

Ted simple module

Traffic Engineering Database. Stores network topology with detailed link information, including total and reserved bandwidths.

inet.networklayer.wiseroute

Name Type Description
WiseRoute simple module

Wiseroute is a simple loop-free routing algorithm that builds a routing tree from a central network point, designed for sensor networks and convergecast traffic.

WiseRouteNetworkLayer compound module

This module provides a simple network layer.

inet.networklayer.xmipv6

Name Type Description
BindingCache simple module

xMIPv6 Data structure for the HA and CN(s) only.

BindingUpdateList simple module

xMIPv6 Data structure for the Mobile Node

xMIPv6 simple module

Implements xMIPv6 (where x = F, H, F-H).

xMIPv6Support compound module

Implements xMIPv6 (where x = F, H, F-H).

inet.networks.base

Name Type Description
Ieee80211NetworkBase network (no description)
NetworkBase network (no description)
TsnNetworkBase network

This module serves as a network base module for Time-Sensitive Networking (TSN).

WiredNetworkBase network (no description)
WirelessNetworkBase network (no description)

inet.networks.ethernet

Name Type Description
DumbbellNetwork network (no description)
LinearNetwork network (no description)

inet.networks.tsn

Name Type Description
TsnDumbbellNetwork network (no description)
TsnLinearNetwork network (no description)

inet.node.aodv

Name Type Description
AodvRouter compound module

It models a WirelessHost extended with Aodv submodule.

inet.node.base

Name Type Description
ApplicationLayerNodeBase compound module (no description)
LinkLayerNodeBase compound module (no description)
NetworkLayerNodeBase compound module (no description)
NodeBase compound module

This module contains the most basic infrastructure for network nodes that is not strictly communication protocol related.

TransportLayerNodeBase compound module (no description)

inet.node.bgp

Name Type Description
BgpRouter compound module

IP router with BGPv4 and OSPFv4 support.

inet.node.contract

Name Type Description
IEthernetNetworkNode module interface

This is the module interface for all Ethernet node types in a network.

INetworkNode module interface

Contains the common interface for all node types in a network.

inet.node.dsdv

Name Type Description
DsdvRouter compound module

A DSDV router.

inet.node.dymo

Name Type Description
DymoRouter compound module (no description)

inet.node.eigrp

Name Type Description
EigrpRouter compound module (no description)

inet.node.ethernet

Name Type Description
Eth100G channel

100 gigabit/sec Ethernet link

Eth100M channel

100 megabit/sec Ethernet link

Eth10G channel

10 gigabit/sec Ethernet link

Eth10M channel

10 megabit/sec Ethernet link

Eth1G channel

1 gigabit/sec Ethernet link

Eth200G channel

200 gigabit/sec Ethernet link

Eth400G channel

400 gigabit/sec Ethernet link

Eth40G channel

40 gigabit/sec Ethernet link

EthernetHost compound module

An example host with one Ethernet port and a traffic generator that generates request-reply traffic directly over Ethernet. This host model does not contain higher layer protocols (IP, TCP). By default it is configured to use half-duplex MAC (CSMA/CD).

EthernetHub simple module

An Ethernet hub model.

EthernetLink channel

Base for Ethernet link types. Propagation delay can be specified with the length of the cable, i.e. in meters instead of nanoseconds or microseconds.

EthernetSwitch compound module

Model of an Ethernet switch.

inet.node.gpsr

Name Type Description
GpsrRouter compound module (no description)

inet.node.inet

Name Type Description
AdhocHost compound module

A wireless host containing routing, mobility and energy components. Supports IPv4 network protocol, TCP, UDP, and SCTP as transport protocol. This is a typical mobile node which can participate in adhoc routing and may have TCP/UDP applications installed. Supports ICMP (ping) too.

ManetRouter compound module (no description)
MulticastRouter compound module (no description)
Router compound module

IPv4 router that supports wireless, Ethernet, PPP and external interfaces. By default, no wireless and external interfaces are added; the number of Ethernet and PPP ports depends on the external connections.

SensorNode compound module

This module implements a wireless sensor node. It has one 802.15.4 wireless interface and an energy storage module by default.

StandardHost compound module

IPv4 host with SCTP, TCP, UDP layers and applications. IP forwarding is disabled by default (see forwarding).

WirelessHost compound module

Models a host with (default) one wireless (802.11) card in infrastructure mode. This module is basically a StandardHost with an Ieee80211Interface with mgmt.typename = Ieee80211MgmtSta added. It should be used in conjunction with AccessPoint, or any other AP model which contains Ieee80211Interface with mgmt.typename = Ieee80211MgmtAp.

inet.node.internetcloud

Name Type Description
InternetCloud compound module

This module is an IPv4 router that can delay or drop packets (while retaining their order) based on which interface card the packet arrived on and on which interface it is leaving the cloud. The delayer module is replaceable.

inet.node.ipv6

Name Type Description
Router6 compound module

IPv6 router.

StandardHost6 compound module

IPv6 host with TCP, SCTP and UDP layers and applications. see StandardHost for configuration.

inet.node.mpls

Name Type Description
LdpMplsRouter compound module

An LDP-capable router.

RsvpMplsRouter compound module

An RSVP-TE capable router.

inet.node.ospfv2

Name Type Description
OspfRouter compound module

An OSPFv2 router.

inet.node.ospfv3

Name Type Description
Ospfv3Router compound module

An OSPFv3 router.

inet.node.rip

Name Type Description
RipRouter compound module

An RIPv2 router.

inet.node.rtp

Name Type Description
RtpHost compound module (no description)

inet.node.tsn

Name Type Description
TsnClock compound module

This module represents a hardware device containing a high precision hardware clock. The device also contains a gPTP protocol implementation and acts as a gPTP master node in the network.

TsnDevice compound module

This module represents a Time-Sensitive Networking (TSN) hardware end device that supports time synchronization, per-stream filtering and policing, scheduling and traffic shaping, frame replication and elimination, frame preemption for Ethernet networks. All TSN features are optional and they can be combined with other Ethernet features.

TsnSwitch compound module

This module represents a Time-Sensitive Networking (TSN) switch that supports time synchronization, per-stream filtering and policing, scheduling and traffic shaping, frame replication and elimination, frame preemption and cut-through switching for Ethernet networks. All TSN features are optional and they can be combined with other Ethernet features.

inet.node.wireless

Name Type Description
AccessPoint compound module

A generic access point supporting multiple wireless radios, and multiple ethernet ports. The type of the ethernet MAC, relay unit and wireless card can be specified as parameters.

Probe compound module (no description)

inet.node.xmipv6

Name Type Description
CorrespondentNode6 compound module

An IPv6 host with MIPv6 support and contains a Binding Cache which gets updated with every BU received.

HomeAgent6 compound module

IPv6 router configured to operate as a Home Agent in a network supporting MIPv6.

MobileHost6 compound module

MIPv6 host with TCP, UDP layers and applications.

WirelessHost6 compound module

IPv6 compatible node with MIPv6 support. Models a host with one wireless (802.11b) card in infrastructure mode, supports handovers and MIPv6 protocol.

inet.physicallayer.wired.common

Name Type Description
WireJunction simple module

Models a generic wiring hub.

inet.physicallayer.wired.ethernet

Name Type Description
EthernetFragmentPhyHeaderChecker simple module (no description)
EthernetFragmentPhyHeaderInserter simple module (no description)
EthernetPhy simple module (no description)
EthernetPhyHeaderChecker simple module (no description)
EthernetPhyHeaderInserter simple module (no description)
EthernetPhyLayer compound module (no description)
EthernetPreemptingPhyLayer compound module (no description)
EthernetStreamingPhyLayer compound module (no description)
EthernetStreamThroughPhyLayer compound module (no description)
IEthernetPhyLayer module interface (no description)

inet.physicallayer.wireless.apsk.bitlevel

Name Type Description
ApskDecoder compound module

This module is part of a simple hypothetical layered receiver. It computes the packet domain representation from the bit domain representation by applying the configured descrambling, forward errror correction decoding, and deinterleaving.

ApskDemodulator simple module

This module is part of a simple hypothetical layered receiver. It computes the bit domain representation from the symbol domain representation by applying the configured modulation.

ApskEncoder compound module

This module is part of a simple hypothetical layered transmitter. It computes the bit domain representation from the packet domain representation by applying the configured scrambling, forward errror correction encoding, and interleaving.

ApskLayeredDimensionalRadio compound module

This radio model is part of a simple hypothetical layered radio. It produces detailed transmissions that have separate representation for all simulated domains. It must be used in conjunction with the ApskLayeredDimensionalRadioMedium model.

ApskLayeredDimensionalRadioMedium compound module

This medium model is used by a simple hypothetical layered radio.

ApskLayeredReceiver compound module

This receiver model is part of a simple hypothetical layered radio. It receives detailed transmissions that have separate representation for all simulated domains. The levelOfDetail parameter controls which domains are actually simulated, but all parameters relevant to the error model are expected to be set on the reception.

ApskLayeredScalarRadio compound module

This radio model is part of a simple hypothetical layered radio. It produces detailed transmissions that have separate representation for all simulated domains. It must be used in conjunction with the ApskLayeredScalarRadioMedium model.

ApskLayeredScalarRadioMedium compound module

This medium model is used by a simple hypothetical layered radio.

ApskLayeredTransmitter compound module

This transmitter model is part of a simple hypothetical layered radio. It produces detailed transmissions that have separate representation for all simulated domains. The levelOfDetail parameter controls which domains are actually simulated, but all parameters relevant to the error model are always set on the transmission.

ApskModulator simple module

This module is part of a simple hypothetical layered transmitter. It computes the symbol domain representation from the bit domain representation by applying the configured modulation.

inet.physicallayer.wireless.apsk.bitlevel.errormodel

Name Type Description
ApskLayeredErrorModel compound module

This error model computes the erroneous bits, symbols, or simply whether the packet is error free or not based on the SNIR.

inet.physicallayer.wireless.apsk.packetlevel

Name Type Description
ApskDimensionalRadio compound module

This radio model provides a hypothetical radio that simply uses one of the well-known modulations without utilizing other techiques such as forward error correction, interleaving, spreading, etc. It must be used in conjunction with the ApskDimensionalRadioMedium model.

ApskDimensionalRadioMedium compound module

This radio medium model provides a hypothetical radio that simply uses one of the well-known modulations without utilizing other techiques such as forward error correction, interleaving, spreading, etc. It must be used in conjunction with the ApskDimensionalRadio model.

ApskDimensionalReceiver compound module

This receiver model receives a transmission succesfully if the minimum of the signal to noise and interference ratio over the duration of the reception is sufficiently high. It uses the error model to compute the error rate based on this value and the used modulation.

ApskDimensionalTransmitter compound module

This transmitter model produces transmissions that use dimensional transmission power (that changes over time and/or frequency) in their analog representation and the configured modulation.

ApskRadio compound module

This radio model provides a hypothetical radio that simply uses one of the well-known modulations without utilizing other techiques such as forward error correction, interleaving, spreading, etc.

ApskScalarRadio compound module

This radio model provides a hypothetical radio that simply uses one of the well-known modulations without utilizing other techiques such as forward error correction, interleaving, spreading, etc. It must be used in conjunction with the ApskScalarRadioMedium model.

ApskScalarRadioMedium compound module

This radio medium model provides a hypothetical radio that simply uses one of the well-known modulations without utilizing other techiques such as forward error correction, interleaving, spreading, etc. It must be used in conjunction with the ApskScalarRadio model.

ApskScalarReceiver compound module

This receiver model receives a transmission succesfully if the minimum of the signal to noise and interference ratio over the duration of the reception is sufficiently high. It uses the error model to compute the error rate based on this value and the used modulation.

ApskScalarTransmitter compound module

This transmitter model produces transmissions that have scalar transmission power in their analog representation and the configured modulation.

inet.physicallayer.wireless.apsk.packetlevel.errormodel

Name Type Description
ApskErrorModel compound module

This error model determines packet error rate, bit error rate, and symbol error rate by using the well-known formula that corresponds to the modulation. It assumes no forward error correction or any other techinque is used in the physical signal.

inet.physicallayer.wireless.common.analogmodel.bitlevel

Name Type Description
LayeredDimensionalAnalogModel compound module (no description)
LayeredScalarAnalogModel compound module (no description)

inet.physicallayer.wireless.common.analogmodel.packetlevel

Name Type Description
DimensionalAnalogModel compound module

This analog model computes with dimensional analog power representation. In other words the signal power may change over time and/or frequency.

ScalarAnalogModel compound module

This analog model computes with scalar analog power representation. In other words, the signal power does not change over time or frequency, except for the boundaries of the signal.

inet.physicallayer.wireless.common.antenna

Name Type Description
AxiallySymmetricAntenna compound module

This antenna model computes the antenna gain from the direction using linear interpolation. The gain parameter contains a sequence of angle [degree] and gain [dB] pairs. The first pair must be at 0 [degree].

ConstantGainAntenna compound module

This antenna model describes an antenna that has an antenna gain indepent of the transmission or reception direction.

CosineAntenna compound module

Models a hypotetical antenna with a cosine-based radiation pattern. This antenna model is commonly used in the real world to approximate various directional antennas.

DipoleAntenna compound module

This antenna model describes the well-known dipole antenna or doublet. It consists of two identical conductive elements, which are bilaterally symmetrical.

InterpolatingAntenna compound module

This antenna model computes the antenna gain from the direction of the signal using linear interpolation for all 3 euler angles independently of each other. The gain parameters contain a sequence of angle [degree] and gain [dB] pairs. The first pair must be at 0 [degree].

IsotropicAntenna compound module

This antenna model describes the theoretical point source which radiates the same intensity of radiation in all directions.

ParabolicAntenna compound module

This model is based on a parabolic approximation of the main lobe radiation pattern. A similar model appears in

inet.physicallayer.wireless.common.backgroundnoise

Name Type Description
DimensionalBackgroundNoise compound module (no description)
IsotropicDimensionalBackgroundNoise compound module

This background noise model describes noise that does not change over space, time and frequency. It produces dimensional noise signals that can be further used in dimensional computations.

IsotropicScalarBackgroundNoise compound module

This background noise model describes noise that does not change over space, time and frequency. It produces scalar noise signals that can be further used in scalar computations.

inet.physicallayer.wireless.common.base.bitlevel

Name Type Description
LayeredErrorModelBase compound module (no description)

inet.physicallayer.wireless.common.base.packetlevel

Name Type Description
AntennaBase compound module

This module servces as the base module for antenna models.

DimensionalTransmitterBase compound module

This transmitter model produces transmissions that use dimensional transmission power (that changes over time and/or frequency) in their analog representation and the configured modulation.

ErrorModelBase compound module

This module servces as the base module for error models.

FlatRadioBase compound module

This module servces as a base module for flat radio models.

NarrowbandRadioBase compound module

This module servces as a base module for narrowband radio models.

NarrowbandReceiverBase compound module

This module servces as a base module for narrowband receiver models.

NarrowbandTransmitterBase compound module

This module servces as a base module for narrowband transmitter models.

PhysicalLayerBase simple module

Module base for different physical layers.

PropagationBase compound module

This module servces as a base module for propagation models.

SnirReceiverBase compound module

This module servces as a base module for SNIR receiver models.

TracingObstacleLossBase compound module

This module servces as a base module for tracing obstacle loss models.

inet.physicallayer.wireless.common.communicationcache

Name Type Description
MapCommunicationCache compound module

This communication cache model stores radio, transmission and reception related intermediate computation results in map data structures. It's primarily useful for simulations with both static and dynamic radios, and with both short and long transmission durations.

ReferenceCommunicationCache compound module

This communication cache model allows validating other implementations. It can be used to provide a reference for communication logs, simulation fingerprints, and statistical results that can be compared with results of other communication cache implementations.

VectorCommunicationCache compound module

This communication cache model stores radio, transmission and reception related intermediate computation results in vector data structures. It's primarily useful for simulations with either static or short lived dynamic radios, and with only short transmission durations.

inet.physicallayer.wireless.common.contract.bitlevel

Name Type Description
IAnalogDigitalConverter module interface (no description)
IDecoder module interface (no description)
IDemodulator module interface (no description)
IDigitalAnalogConverter module interface (no description)
IEncoder module interface (no description)
IFecCoder module interface (no description)
IInterleaver module interface (no description)
ILayeredErrorModel module interface (no description)
IModulator module interface (no description)
IPulseFilter module interface (no description)
IPulseShaper module interface (no description)
IScrambler module interface (no description)

inet.physicallayer.wireless.common.contract.packetlevel

Name Type Description
IAnalogModel module interface

The analog model describes how the analog representation of the transmissions is turned into the analog representation of the receptions.

IAntenna module interface

The antenna model describes the physical device (a part of the radio) which converts electric signals into radio waves, and vice versa.

IBackgroundNoise module interface

The background noise model describes the thermal noise, the cosmic background noise, and other random fluctuations of the electromagnetic field that affect the quality of the communication channel.

ICommunicationCache module interface (no description)
IErrorModel module interface

The error model describes how the signal to noise ratio affects the amount of errors at the receiver.

IMediumLimitCache module interface (no description)
INeighborCache module interface

The neighbor cache model computes the affected set of receivers on the medium for a given transmission.

IObstacleLoss module interface

The obstacle loss model describes the reduction of power as the signal passes through physical objects.

IPathLoss module interface

The path loss model describes the reduction of power as the signal propagates through space.

IPhysicalLayer module interface

This module interface provides an abstraction for the interface of different physical layers.

IPropagation module interface

The propagation model describes how a radio signal propagates through space over time.

IRadio module interface

Module interface for radio modules. Radio modules deal with the transmission of frames over a wireless medium (the radio medium).

IRadioMedium module interface

The medium model describes the shared physical medium where communication takes place. It keeps track of radios, noise sources, ongoing transmissions, background noise, and other ongoing noises. The medium computes when, where and how transmissions and noises arrive at receivers.

IReceiver module interface

The receiver model describes the physical process which converts electric signals into packets.

ITransmitter module interface

The transmitter model describes the physical process which converts packets into electric signals.

inet.physicallayer.wireless.common.energyconsumer

Name Type Description
SensorStateBasedCcEnergyConsumer simple module (no description)
SensorStateBasedEpEnergyConsumer simple module (no description)
StateBasedCcEnergyConsumer simple module

This module provides a radio energy consumer model. The current consumption is determined by the radio mode, the transmitter state and the receiver state using constant parameters.

StateBasedEpEnergyConsumer simple module

This module provides a radio power consumer model. The power consumption is determined by the radio mode, the transmitter state and the receiver state using constant parameters.

inet.physicallayer.wireless.common.errormodel.bitlevel

Name Type Description
StochasticLayeredErrorModel compound module (no description)

inet.physicallayer.wireless.common.errormodel.packetlevel

Name Type Description
StochasticErrorModel compound module

This error model provides parameters to specify the constant packet error rate, bit error rate, and symbol error rate for receptions independent of any interfering transmission or noise.

inet.physicallayer.wireless.common.medium

Name Type Description
MediumLimitCache compound module (no description)
RadioMedium compound module

The medium model describes the shared physical medium where communication takes place. It keeps track of radios, noise sources, ongoing transmissions, background noise, and other ongoing noises. The medium computes when, where and how transmissions and noises arrive at receivers. It also efficiently provides the set of interfering transmissions and noises for the receivers.

inet.physicallayer.wireless.common.neighborcache

Name Type Description
GridNeighborCache compound module

This neighbor cache model organizes radios in a 3 dimensional grid with constant cell size and updates periodically.

NeighborListNeighborCache compound module

This neighbor cache model maintains a separate periodically updated neighbor list for each radio.

QuadTreeNeighborCache compound module

This neighbor cache model organizes radios in a 2 dimensional quad tree (ignoring the Z axis) with constant node size and updates periodically.

inet.physicallayer.wireless.common.obstacleloss

Name Type Description
DielectricObstacleLoss compound module

This obstacle loss model determines the power loss by computing the accurate dielectric and reflection loss along the straight path considering the shape, the position, the orientation, and the material of obstructing physical objects.

IdealObstacleLoss compound module

This obstacle loss model determines power loss by checking if there is any obstructing physical object along the straight propagation path. The result is either total power loss if there was such an object or no loss at all if there wasn't.

inet.physicallayer.wireless.common.pathloss

Name Type Description
BreakpointPathLoss compound module (no description)
FreeSpacePathLoss compound module (no description)
LogNormalShadowing compound module (no description)
NakagamiFading compound module (no description)
RayleighFading compound module (no description)
RicianFading compound module (no description)
SuiPathLoss compound module (no description)
TwoRayGroundReflection compound module (no description)
TwoRayInterference compound module (no description)
UwbIrStochasticPathLoss compound module (no description)

inet.physicallayer.wireless.common.propagation

Name Type Description
ConstantSpeedPropagation compound module

This propagation model computes the propagation time to be proportional to the traveled distance, the ratio is determined by the constant propagation speed parameter.

ConstantTimePropagation compound module

This propagation model computes the propagation time to be independent of the traveled distance. In other words, the propagation time is determined by a constant parameter.

inet.physicallayer.wireless.common.radio.bitlevel

Name Type Description
AdditiveScrambler compound module

Scrambler module converts an input string into a seemingly random output string of the same length.

ConvolutionalCoder compound module

Transfer function (octal) matrix

inet.physicallayer.wireless.common.radio.packetlevel

Name Type Description
Radio compound module

The radio model describes the physical device that is capable of transmitting and receiving signals on the medium. It contains an antenna model, a transmitter model, a receiver model, and an energy consumer model.

inet.physicallayer.wireless.ieee80211.bitlevel

Name Type Description
Ieee80211LayeredDimensionalRadioMedium compound module (no description)
Ieee80211LayeredOfdmReceiver compound module

This module implements an IEEE 802.11 OFDM receiver. The implemenation details are based on the following standard: IEEE Std 802.11-2012 PART 11: WIRELESS LAN MAC AND PHY SPECIFICATIONS

Ieee80211LayeredOfdmTransmitter compound module

The level of detail parameter determines which submodules of the transmitter will be used:

Ieee80211LayeredScalarRadioMedium compound module (no description)
Ieee80211OfdmDecoder compound module

This is the decoder module for the layered IEEE 802.11 OFDM PHY infrastructure (IEEE 802.11-2012, Clause 18).

Ieee80211OfdmDemodulator simple module

See also: Ieee80211OfdmModulator

Ieee80211OfdmEncoder compound module

This is the encoder module for the layered IEEE 802.11 OFDM PHY infrastructure (IEEE 802.11-2012, Clause 18).

Ieee80211OfdmInterleaver compound module

The Ieee80211OfdmInterleaver is defined by a two-step permutation. The first permutation ensures that adjacent coded bits are mapped onto nonadjacent subcarriers. The second ensures that adjacent coded bits are mapped alternately onto less and more significant bits of the constellation and, thereby, long runs of low reliability (LSB) bits are avoided. (IEEE 802.11, 18.3.5.7 Data interleaving)

Ieee80211OfdmModulator simple module

This is an IEEE 802.11 OFDM modulator module, the implementation is based on 18.3.5.8 Subcarrier modulation mapping section in IEEE 802.11-2012 Std.

Ieee80211OfdmRadio compound module (no description)

inet.physicallayer.wireless.ieee80211.bitlevel.errormodel

Name Type Description
Ieee80211OfdmErrorModel compound module

This is the error model for the layered IEEE 802.11 OFDM PHY infrastructure (IEEE 802.11-2012, Clause 18). OFDM means that the physical layer uses OFDM modulation.

inet.physicallayer.wireless.ieee80211.packetlevel

Name Type Description
Ieee80211DimensionalRadio compound module

This radio model uses dimensional transmission power (that changes over time and/or frequency) in the analog representation. It must be used in conjunction with the Ieee80211DimensionalRadioMedium model.

Ieee80211DimensionalRadioMedium compound module

This radio medium model uses dimensional transmission power (that changes over time and/or frequency) in the analog representation. It must be used in conjunction with the Ieee80211DimensionalRadio model.

Ieee80211DimensionalReceiver compound module

This receiver model receives an IEEE 802.11 transmission successfully if the minimum of the signal to noise and interference ratio over the duration of the reception is sufficiently high. It uses one of the IEEE 802.11 specific error models to compute the error rate based on this value and the used operation mode.

Ieee80211DimensionalTransmitter compound module

This transmitter model produces IEEE 802.11 transmissions that have dimensional transmission power (that changes over time and/or frequency) in their analog representation. The bit domain, symbol domain, and sample domains of the transmissions are not represented.

Ieee80211Radio compound module

This radio model is part of the IEEE 802.11 physical layer model. It supports multiple channels, different operation modes, and preamble modes. It must be used in conjunction with the Ieee80211RadioMedium model or other derived models.

Ieee80211RadioMedium compound module

This radio medium model is part of thee IEEE 802.11 physical layer model. It must be used in conjunction with the Ieee80211Radio model or other derived models.

Ieee80211ReceiverBase compound module

This receiver model serves as the base module for IEEE 802.11 receivers. It supports switching channels, configuring different operation modes, and preamble modes.

Ieee80211ScalarRadio compound module

This radio model uses scalar transmission power in the analog representation. It must be used in conjunction with the Ieee80211ScalarRadioMedium model.

See also: Ieee80211ScalarRadioMedium, Ieee80211ScalarTransmitter, Ieee80211ScalarReceiver, ScalarAnalogModel.

Ieee80211ScalarRadioMedium compound module

This radio medium model uses scalar transmission power in the analog representation. It must be used in conjunction with the Ieee80211ScalarRadio model.

Ieee80211ScalarReceiver compound module

This receiver model receives an IEEE 802.11 transmission successfully if the minimum of the signal to noise and interference ratio over the duration of the reception is sufficiently high. It uses one of the IEEE 802.11 specific error models to compute the error rate based on this value and the used operation mode.

Ieee80211ScalarTransmitter compound module

This transmitter model produces IEEE 802.11 transmissions that have scalar transmission power in their analog representation. The bit domain, symbol domain, and sample domains of the transmissions are not represented.

Ieee80211StateBasedCcEnergyConsumer simple module

This module provides a radio power consumer model for IEEE 802.11 radios. Default values are roughly based on CC3220 transceiver. The power consumption is determined by the radio mode, the transmitter state and the receiver state using constant parameters.

Ieee80211StateBasedEpEnergyConsumer simple module

This module provides a radio power consumer model for IEEE 802.11 radios. Default values are roughly based on CC3220 transceiver. The power consumption is determined by the radio mode, the transmitter state and the receiver state using constant parameters.

Ieee80211TransmitterBase compound module

This transmitter model serves as the base module for IEEE 802.11 transmitters. It supports switching channels, configuring different operation modes, and preamble modes.

Ieee80211UnitDiskRadio compound module

This radio model uses ideal analog representation. It must be used in conjunction with the UnitDiskRadioMedium model.

Ieee80211UnitDiskReceiver compound module

See also: Ieee80211UnitDiskTransmitter, Ieee80211UnitDiskRadio, UnitDiskRadioMedium.

Ieee80211UnitDiskTransmitter compound module

See also: Ieee80211UnitDiskReceiver, Ieee80211UnitDiskRadio, UnitDiskRadioMedium.

inet.physicallayer.wireless.ieee80211.packetlevel.errormodel

Name Type Description
Ieee80211BerTableErrorModel compound module (no description)
Ieee80211NistErrorModel compound module (no description)
Ieee80211YansErrorModel compound module (no description)

inet.physicallayer.wireless.ieee802154.bitlevel

Name Type Description
Ieee802154UwbIrRadio compound module (no description)
Ieee802154UwbIrRadioMedium compound module (no description)
Ieee802154UwbIrReceiver compound module (no description)
Ieee802154UwbIrTransmitter compound module (no description)

inet.physicallayer.wireless.ieee802154.packetlevel

Name Type Description
Ieee802154NarrowbandDimensionalRadio compound module (no description)
Ieee802154NarrowbandDimensionalRadioMedium compound module (no description)
Ieee802154NarrowbandDimensionalReceiver compound module (no description)
Ieee802154NarrowbandDimensionalTransmitter compound module (no description)
Ieee802154NarrowbandRadio compound module (no description)
Ieee802154NarrowbandScalarRadio compound module (no description)
Ieee802154NarrowbandScalarRadioMedium compound module (no description)
Ieee802154NarrowbandScalarReceiver compound module (no description)
Ieee802154NarrowbandScalarTransmitter compound module (no description)

inet.physicallayer.wireless.noise

Name Type Description
NoiseDimensionalTransmitter compound module (no description)
NoiseScalarTransmitter compound module (no description)
NoiseSource compound module (no description)

inet.physicallayer.wireless.shortcut

Name Type Description
ShortcutRadio simple module

This module implements a simple shortcut to peer radio protocol that completely bypasses the physical medium. This radio module directly sends packets to the other radio module without any physical layer processing in the radio medium. Packets received from the upper layer protocols may be lost. Physical layer overhead is simply simulated by physical header bits, preamble transmission duration and a propagation delay.

inet.physicallayer.wireless.unitdisk

Name Type Description
UnitDiskAnalogModel compound module

This analog model provides a very simple and predictable physical layer behavior. It determines the reception power by categorizing transmissions based on the distance between the transmitter and the receiver. It doesn't support noise and signal to noise ratio calculations.

UnitDiskRadio compound module

This radio model provides a very simple but fast and predictable physical layer behavior. It must be used in conjunction with the UnitDiskRadioMedium model.

UnitDiskRadioMedium compound module

This radio medium model provides a very simple but fast and predictable physical layer behavior. It must be used in conjunction with the UnitDiskRadio model.

UnitDiskReceiver compound module

This receiver model receives a transmission succesfully within communication range unless there's another interfering transmission within interference range. It also supports an ideal communication channel with configuring the receiver to ignore interfering transmissions.

UnitDiskTransmitter compound module

This transmitter model produces transmissions that are parameterized with communication range, interference range, and detection range. It also supports an ideal communication channel with configuring the range parameters to infinity.

inet.power.base

Name Type Description
CcEnergyConsumerBase simple module

This is an abstract base module for current based energy consumer models. It defines shared signals and statistics.

CcEnergyGeneratorBase simple module

This is an abstract base module for current based energy generator models. It defines shared signals and statistics.

CcEnergySinkBase simple module

This is an abstract base module for current based energy sink models. It defines signals and statistics.

CcEnergySourceBase simple module

This is an abstract base module for current based energy source models. It defines shared signals and statistics.

CcEnergyStorageBase simple module

This is an abstract base module for current based energy storage models. It defines shared signals and statistics.

EpEnergyConsumerBase simple module

This is an abstract base module for power based energy consumer models. It defines shared signals and statistics.

EpEnergyGeneratorBase simple module

This is an abstract base module for power based energy generator models. It defines shared signals and statistics.

EpEnergySinkBase simple module

This is an abstract base module for power based energy sink models. It defines signals and statistics.

EpEnergySourceBase simple module

This is an abstract base module for power based energy source models. It defines shared signals and statistics.

EpEnergyStorageBase simple module

This is an abstract base module for power based energy storage models. It defines shared signals and statistics.

inet.power.consumer

Name Type Description
AlternatingEpEnergyConsumer simple module

This energy consumer model alternates between two modes called consumption and sleep mode. In consumption mode it consumes a randomly selected constant power for a random time interval. In sleep mode it doesn't consume energy for another random time interval.

inet.power.contract

Name Type Description
ICcEnergyConsumer module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with current [A], and storage capacity with charge [C] and output voltage [V]. The Cc is an abbreviation that is used for charge and current based interfaces.

ICcEnergyGenerator module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with current [A], and storage capacity with charge [C] and output voltage [V]. The Cc is an abbreviation that is used for charge and current based interfaces.

ICcEnergyManagement module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with current [A], and storage capacity with charge [C] and output voltage [V]. The Cc is an abbreviation that is used for charge and current based interfaces.

ICcEnergySink module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with current [A], and storage capacity with charge [C] and output voltage [V]. The Cc is an abbreviation that is used for charge and current based interfaces.

ICcEnergySource module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with current [A], and storage capacity with charge [C] and output voltage [V]. The Cc is an abbreviation that is used for charge and current based interfaces.

ICcEnergyStorage module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with current [A], and storage capacity with charge [C] and output voltage [V]. The Cc is an abbreviation that is used for charge and current based interfaces.

IEnergyConsumer module interface

The energy consumer models describe the energy consumption process of devices over time. For example, a radio consumes energy when it transmits or receives signals, or a CPU consumes energy when the network layer processes packets, or a display consumes energy when it's turned on, etc.

IEnergyGenerator module interface

The energy generator models describe the energy generation process of devices over time. A solar panel, for example, produces energy based on time, the panel's position on the globe, its orientation towards the sun and the actual weather conditions.

IEnergyManagement module interface

The energy management models monitors an energy storage, estimates its state, and controls the consumers and generators to protect the energy storage from operating outside its safe operating area.

IEnergySink module interface

The energy sink models absorb energy from multiple energy generators.

IEnergySource module interface

The energy source models provide energy for multiple energy consumers.

IEnergyStorage module interface

The energy storage models describe devices that absorb energy produced by generators, and provide energy for consumers. For example, an electrochemical battery in a mobile phone provides energy for its display, its CPU, and its wireless communication device. It can also absorb energy produced by a solar panel installed on its display, or by a portable charger plugged into a wall socket.

IEpEnergyConsumer module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with power [W] and storage capacity with energy [J]. The Ep is an abbreviation that is used for energy and power based interfaces.

IEpEnergyGenerator module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with power [W] and storage capacity with energy [J]. The Ep is an abbreviation that is used for energy and power based interfaces.

IEpEnergyManagement module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with power [W] and storage capacity with energy [J]. The Ep is an abbreviation that is used for energy and power based interfaces.

IEpEnergySink module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with power [W] and storage capacity with energy [J]. The Ep is an abbreviation that is used for energy and power based interfaces.

IEpEnergySource module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with power [W] and storage capacity with energy [J]. The Ep is an abbreviation that is used for energy and power based interfaces.

IEpEnergyStorage module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with power [W] and storage capacity with energy [J]. The Ep is an abbreviation that is used for energy and power based interfaces.

inet.power.generator

Name Type Description
AlternatingEpEnergyGenerator simple module

This energy generator model alternates between two modes called generation and sleep mode. In generation mode it generates a randomly selected constant power for a random time interval. In sleep mode it doesn't generate energy for another random time interval.

inet.power.management

Name Type Description
SimpleEpEnergyManagement simple module

This energy mangement model estimates the residual energy capacity of the energy source model by actually querying it. It is only useful when the estimation process is not important. This model initiates node shutdown when the residual capacity decreases below a threshold, and it also initiates node start when the residual capacity increases above another threshold.

inet.power.storage

Name Type Description
CcBatteryPack simple module (no description)
IdealEpEnergyStorage simple module

This energy storage model stores an infinite amount of energy. It can provide energy for any number of consumers, and it can absorb energy from any number of generators. The ideal energy storage never gets completely charged or depleted. This module is primarily useful for testing energy consumer and energy generator models. See the base module for signals and statistics.

SimpleCcBattery simple module

This battery model maintains a residual charge capacity by integrating the difference between the total consumed current and the total generated current over time. This model uses a charge independent ideal voltage source and an charge independent internal resistance. It initiates node crash when the residual charge capacity reaches zero. See the base module for signals and statistics.

SimpleEpEnergyStorage simple module

This energy storage model maintains a residual energy capacity by integrating the difference between the total consumed power and the total generated power over time. It initiates node crash when the residual energy capacity reaches zero. This model doesn't have various properties such as self-discharge, memory effect, overcharging, temperature-dependence, etc. that real world batteries have. See the base module for signals and statistics.

inet.protocolelement.acknowledgement

Name Type Description
ReceiveWithAcknowledge simple module (no description)
Resending simple module (no description)
SendWithAcknowledge simple module (no description)

inet.protocolelement.aggregation

Name Type Description
SubpacketLengthHeaderBasedAggregator compound module (no description)
SubpacketLengthHeaderBasedDeaggregator simple module (no description)

inet.protocolelement.aggregation.base

Name Type Description
AggregatorBase compound module (no description)
DeaggregatorBase simple module (no description)

inet.protocolelement.aggregation.contract

Name Type Description
IAggregatorPolicy module interface (no description)
IPacketAggregator module interface (no description)
IPacketDeaggregator module interface (no description)

inet.protocolelement.aggregation.policy

Name Type Description
LengthBasedAggregatorPolicy simple module (no description)

inet.protocolelement.checksum

Name Type Description
CrcHeaderChecker simple module (no description)
CrcHeaderInserter simple module (no description)
FcsHeaderChecker simple module (no description)
FcsHeaderInserter simple module (no description)

inet.protocolelement.checksum.base

Name Type Description
CrcCheckerBase simple module (no description)
CrcInserterBase simple module (no description)
FcsCheckerBase simple module (no description)
FcsInserterBase simple module (no description)

inet.protocolelement.common

Name Type Description
InterpacketGapInserter simple module (no description)
OmittedProtocolLayer compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

PacketDeserializer simple module (no description)
PacketDestreamer simple module

This module takes packets streamed to its input and passes them to its output.

PacketEmitter simple module (no description)
PacketSerializer simple module

This module serializes packets flowing from its input to its output.

PacketStreamer simple module

This module takes packets passed to its input and streams them to its output.

PaddingInserter simple module (no description)
PreemptableStreamer simple module

This module takes packets passed to its input and streams them to its output.

ProtocolChecker simple module (no description)

inet.protocolelement.contract

Name Type Description
IPacketLifeTimer module interface (no description)
IProtocolHeaderChecker module interface (no description)
IProtocolHeaderInserter module interface (no description)
IProtocolLayer module interface

This module interface is implemented by all protocol layer modules that connect to a higher and to a lower protocol layer, both of which is optional.

inet.protocolelement.cutthrough

Name Type Description
CutthroughSink simple module (no description)
CutthroughSource simple module (no description)

inet.protocolelement.dispatching

Name Type Description
ReceiveWithProtocol simple module (no description)
SendWithProtocol simple module (no description)

inet.protocolelement.forwarding

Name Type Description
Forwarding simple module (no description)
ReceiveWithHopLimit simple module (no description)
SendWithHopLimit simple module (no description)

inet.protocolelement.fragmentation

Name Type Description
FragmentNumberHeaderBasedDefragmenter simple module (no description)
FragmentNumberHeaderBasedFragmenter compound module (no description)
FragmentNumberHeaderChecker simple module (no description)
FragmentNumberHeaderInserter simple module (no description)
FragmentTagBasedDefragmenter simple module (no description)
FragmentTagBasedFragmenter compound module (no description)

inet.protocolelement.fragmentation.base

Name Type Description
DefragmenterBase simple module (no description)
FragmenterBase compound module (no description)

inet.protocolelement.fragmentation.contract

Name Type Description
IFragmenterPolicy module interface (no description)
IPacketDefragmenter module interface (no description)
IPacketFragmenter module interface (no description)

inet.protocolelement.fragmentation.policy

Name Type Description
LengthBasedFragmenterPolicy simple module (no description)

inet.protocolelement.lifetime

Name Type Description
CarrierBasedLifeTimer simple module (no description)

inet.protocolelement.measurement

Name Type Description
IMeasurementLayer module interface (no description)
MeasurementLayer compound module (no description)
MultiMeasurementLayer compound module (no description)
OmittedMeasurementLayer compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

inet.protocolelement.ordering

Name Type Description
DuplicateRemoval simple module (no description)
Reordering simple module (no description)
SequenceNumbering simple module (no description)

inet.protocolelement.processing

Name Type Description
IProcessingDelayLayer module interface (no description)
OmittedProcessingDelayLayer compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

ProcessingDelayLayer compound module (no description)

inet.protocolelement.redundancy

Name Type Description
StreamClassifier simple module

This module classifies packets based on the stream they are part of. The stream is determined by a StreamReq or a StreamInd or both.

StreamCoderLayer compound module

This module combines a stream decoder and a stream encoder into a layer. For incoming packets the stream decoder determines the stream of the packet. For outgoing packets the stream encoder determines the VLAN id, etc. of the packet.

StreamDecoder simple module

This module decodes the stream of a packet by matching various tags on the packet against the mapping. It can check for network interface, source address, destination address, VLAN id, and PCP. If a match was found then the stream is attached to the packet in a StreamInd tag.

StreamEncoder simple module

This module encodes the stream name of a packet into several request tags attached to the packet. It looks up the stream in the mapping and attaches the necessary request tags to the packet based on the specified parameters.

StreamFilter simple module

This module implements a packet filter using solely the stream name. The stream name must match the filter criteria in order the packet to pass through the filter.

StreamIdentifier simple module

This module identifies the stream of a packet using packet filter expressions. It can check for arbitrary packet data and assign and if a match was found then the stream is attached to the packet in a StreamReq tag.

StreamIdentifierLayer compound module

This module wraps a stream identifier into a protocol layer so that it can be used in a layered compound module.

StreamMerger simple module

This module merges the packets of the same stream by removing duplicates. In addition it also replaces the stream name on the packet based on the mapping parameter. For merging it maintains a separate finite buffer per stream with the last seen sequence numbers.

StreamRelayLayer compound module

This module combines a stream merger and a stream splitter module into a stream relay layer. For incoming packets the identified streams are merged by the stream merger. For outgoing packets the requested streams are split by the stream splitter.

StreamSplitter simple module

This module duplicates incoming packets based on the stream they are part of. The stream is determined by the StreamReq tag that is attached to the packet. The number of outgoing packet is determined by the mapping parameter. Each outgoing packet will have an attached StreamReq with the tag name taken from the mapping parameter.

inet.protocolelement.selectivity

Name Type Description
ReceiveAtL3Address simple module (no description)
ReceiveAtMacAddress simple module (no description)
ReceiveAtPort simple module (no description)
SendToL3Address simple module (no description)
SendToMacAddress simple module (no description)
SendToPort simple module (no description)

inet.protocolelement.service

Name Type Description
DataService compound module (no description)
ForwardingService compound module (no description)
InterfaceService compound module (no description)
MacService compound module (no description)
PeerService compound module (no description)
SelectivityService compound module (no description)

inet.protocolelement.shaper

Name Type Description
EligibilityTimeFilter simple module

This module is a packet filter that operates based on the EligibilityTimeTag attached to the packet that is passing through. Packets are dropped if the tag is missing. If the maxResidenceTime parameter is set, then the filter also drops the packets for which the eligibility time in the attached EligibilityTimeTag is greater than the current simulation time plus the maximum residence time.

EligibilityTimeGate simple module

This module is a packet gate that operates based on the EligibilityTimeTag attached to the next packet waiting to be pulled through. The gate is closed if the eligibility time is greater than the current simulation time, it is open otherwise.

EligibilityTimeMeter simple module

This module is a packet meter which measures the packet flow that is passing through and optionally attaches an EligibilityTimeTag to the packets. The tag contains the calculated simulation time when the packet becomes eligibile for transmission according to the asynchronous shaper algorithm.

EligibilityTimeQueue simple module

This module is a packet queue that keeps the packets in ascending order based on the eligibility time in the attached EligibilityTimeTag of the packets.

inet.protocolelement.socket

Name Type Description
ISocketLayer module interface (no description)
OmittedSocketLayer compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

inet.protocolelement.trafficconditioner

Name Type Description
ITrafficConditionerLayer module interface (no description)
OmittedTrafficConditionerLayer compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

TrafficConditionerLayer compound module (no description)

inet.protocolelement.transceiver

Name Type Description
DestreamingReceiver simple module

This module receives signals from the transmission medium (wire) as a stream. It receives the signal start and signal end separately. It sends packets to the upper layer as a whole.

PacketReceiver simple module

This module receives signals from the physical medium (wire) as a whole. It also sends up packets to the upper layer as a whole.

PacketTransmitter simple module

This module receives packets from the upper layer as a whole. It also sends signals to the transmission medium (wire) as a whole.

StreamingTransmitter simple module

This module receives packets from the upper layer as a whole. It sends signals to the transmission medium (wire) as a stream, it sends the signal start and signal end separately.

StreamThroughReceiver simple module

This module receives signals from the transmission medium (wire) as a stream and also sends packets to the upper layer as a stream. The stream start and stream end are sent seperately allowing the preemption of signals.

StreamThroughTransmitter simple module

This module receives packets from the upper layer as a stream and also sends signals to the transmission medium as a stream. The stream start and stream end are sent seperately allowing the preemption of signals.

inet.protocolelement.transceiver.base

Name Type Description
PacketReceiverBase simple module (no description)
PacketTransmitterBase simple module (no description)
StreamingReceiverBase simple module (no description)
StreamingTransmitterBase simple module (no description)

inet.protocolelement.transceiver.contract

Name Type Description
IPacketReceiver module interface (no description)
IPacketTransmitter module interface (no description)

inet.queueing.base

Name Type Description
ActivePacketSinkBase simple module

This is a base module for various active packet sink modules.

ActivePacketSourceBase simple module

This is a base module for various active packet source modules.

PacketBufferBase simple module

This is a base module for various packet buffer modules which maintains a few statistics.

PacketClassifierBase simple module

This is a base module for various packet classifier modules. Derived modules must implement a single packet classifier function which determines the index of the output gate for the next pushed packet.

PacketDelayerBase simple module (no description)
PacketDuplicatorBase simple module (no description)
PacketFilterBase simple module

This is a base module for various packet filter modules. Derived modules must implement a single packet matcher function which determines if a packet is to be passed through or filtered out.

PacketFlowBase simple module

This is a base module for various packet flow modules. A packet flow module passes or streams all pushed or pulled packets after processing them from its input to its output.

PacketGateBase simple module

This is a base module for various packet gate modules.

PacketLabelerBase simple module

This is a base module for various packet labeler modules.

PacketMarkerBase simple module

This is a base module for various packet marker modules. Derived modules must implement a single markPacket() function which marks the individual packets by attaching tags.

PacketMeterBase simple module

This is a base module for various packet meter modules. Derived modules must implement a single meterPacket() function which meters the flow of and attaches the required tags.

PacketProcessorBase simple module

This is a base module for various packet processing modules which maintains a few statistics.

PacketPullerBase simple module

This is a base module for various packet puller modules.

PacketPusherBase simple module

This is a base module for various packet pusher modules.

PacketQueueBase simple module

This is a base module for various packet queue modules which maintains a few statistics.

PacketSchedulerBase simple module

This is a base module for various packet scheduler modules. Derived modules must implement a single packet scheduler function which determines the index of the input gate for the pulled packet.

PacketServerBase simple module

This is a base module for various packet server modules.

PacketSinkBase simple module

This is a base module for various packet sink modules.

PacketSourceBase simple module

This is a base module for various packet source modules. Packets are created randomly with regard to packet length and packet data. The representation of packet data can also be configured.

PacketTaggerBase simple module

This is a base module for various packet tagger modules.

PassivePacketSinkBase simple module

This is a base module for various active packet sink modules.

PassivePacketSourceBase simple module

This is a base module for various active packet source modules.

TokenGeneratorBase simple module

This is a base module for various token generator modules.

inet.queueing.buffer

Name Type Description
PacketBuffer simple module

This module provides packet storage for sharing and optimizing storage space between multiple packet queues. When a packet buffer becomes overloaded, the packet dropping strategy can drop any number of packets from any number of connected packet queues.

PriorityBuffer simple module

This buffer drops packets among the connected packet queues based on their module id.

inet.queueing.classifier

Name Type Description
ContentBasedClassifier simple module

This module connects one packet producer to multiple packet consumers. It can be pushed with packets from the connected packet producer. When this happens, the classifier pushes the packet to one of its connected packet consumers based on the configured packet filters. The first matching expression determines the index of the output gate.

DualRateThreeColorClassifier simple module

This packet classifier module classifies packets using two token buckets. Each packet is classified depending on which token bucket is the first one that contains the required number of tokens for the packet.

DynamicClassifier simple module (no description)
LabelClassifier simple module

This module classifies packets based on the attached labels in a LabelsTag.

MarkovClassifier simple module

This module implements a packet classifier using a Markov process that has as many states as output gates the classifier has. The output gate for a given packet is determined by the current state of the Markov process.

MultiTokenBucketClassifier simple module

This module classifies packets into the first bucket that contains the required number of tokens. The packet is forwarded on the output gate that corresponds to the selected bucket.

PacketClassifier simple module

This module connects one packet producer to multiple packet consumers. It can be pushed with packets from the connected packet producer. When this happens, the classifier pushes the packet to one of its connected packet consumers based on the configured packet classifier function. The packet classifier function takes a packet and returns an integer which in turn is used for determining the output gate.

PriorityClassifier simple module

This classifier pushes packets into the first non-full among its connected packet consumers.

SingleRateThreeColorClassifier simple module

This packet classifier module classifies packets using two token buckets. Each packet is classified depending on which token bucket is the first one that contains the required number of tokens for the packet.

SingleRateTwoColorClassifier simple module

This packet classifier module classifies packets using one token bucket. Each packet is classified depending on whether the token bucket contains the required number of tokens for the packet.

TokenBucketClassifier simple module

This module classifies packets to the first output gate if the bucket contains enough number of tokens for the packet passing through, otherwise the second output gate is used. The amount of required tokens is equal to the packet length in bits and is subtracted from the number of stored tokens. New tokens are generated with the provided constant rate and they may also be added by other modules.

UserPriorityClassifier simple module

This module classifies packets based on the attached UserPriority tag.

WrrClassifier simple module

This module implements weighted round-robin classifier.

inet.queueing.common

Name Type Description
BackPressureBarrier simple module

This module prevents backpressure propagation from its output to its input and vice verse. It always allows pushing and pulling packets independently of what the connected modules would allow to do in their current state. Both pushed and pulled packets pass through unchanged, but the operations may raise a runtime error due to this module preventing backpressure propagation.

OmittedPacketDelayer compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OmittedPacketFlow compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OrdinalBasedDuplicator simple module

This module duplicates packets based on the ordinal number of the packet in the received stream of packets.

PacketCloner simple module

This module connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. When this happens, a separate copy of the packet is pushed to each output gate.

PacketDelayer simple module

This module connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. When this happens, the packet is delayed and eventually pushed to the output. Note that the order of packets may change if the delay parameter is configured to be a distribution.

PacketDemultiplexer simple module

This module connects multiple packet collectors to one packet provider. When a packet is pulled by one of the connected packet collectors, then the demultiplexer simply pulls a packet from the connected packet provider.

PacketDuplicator simple module

This module connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. When this happens, one or more copy of the packet is pushed to the output gate.

PacketHistory compound module

This module connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. It keeps a copy of the last N packets pushed into its input. The packets are available in the runtime user interface (Qtenv) for inspection.

PacketMultiplexer simple module

This module connects multiple packet producers to one packet consumer. When a packet is pushed by one of the connected packet producers, then the multiplexer simply pushes the packet to the connected packet consumer.

PacketPushToSend simple module (no description)
PacketSendToPush simple module (no description)
QueueingPacketDelayer compound module (no description)

inet.queueing.contract

Name Type Description
IActivePacketSink module interface

This module interface must be implemented by active packet sink modules. An active packet sink, also called a collector, has one input that must be connected to a passive packet source module. The active packet sink is expected to pull packets from the connected passive packet source over time.

IActivePacketSource module interface

This module interface must be implemented by active packet source modules. An active packet source, also called a producer, has one output that must be connected to a passive packet sink module. The active packet source is expected to push packets into the connected passive packet sink over time.

IPacketBuffer module interface

This module interface is implemented by packet buffer modules. A packet buffer is often used by packet queues to store packets in a limited shared resource. Packets can be added to and removed from a packet buffer. When the buffer becomes overloaded, one or more packets are dropped according to the configured dropping strategy. For each dropped packet, the packet owner is notified in order to update its internal state.

IPacketClassifier module interface

This module interface is implemented by packet classifier modules. A packet classifier is a passive module which has one passive input and multiple active outputs. Packets pushed into the passive input are passed through to one of the active outputs without any delay and reordering.

IPacketDelayer module interface

This module interface is implemented by packet delayers.

IPacketFilter module interface

This module interface is implemented by packet filter modules. A packet filter connects one input to one output. It can operate in both active and passive mode. Packets can be pushed into its input or packets can be pulled from its output. Processed packets are either dropped, if they don't match the filter criteria, or they are passed through without any delay or reordering. Packets are not modified in any way.

IPacketFlow module interface

This module interface is implemented by packet flows. A packet flow connects one input to one output. It can operate in both active and passive mode. Packets can be pushed into its input or packets can be pulled from its output. Packets are never dropped but the contents and/or attached meta information may be altered.

IPacketGate module interface

This module interface is implemented by packet gate. A packet gate connects one input to one output. It can operate in both active and passive mode. Packets can be pushed into its input or packets can be pulled from its output.

IPacketMarker module interface

This module interface is implemented by packet marker modules. A packet marker connects one input to one output. It can operate in both active and passive mode. Packets can be pushed into its input or packets can be pulled from its output. When processing a packet, a marker attaches some information (such as a label) to the packet based on the data and meta data it contains. The packets are processed individually.

IPacketMeter module interface

This module interface is implemented by packet meter modules. A packet meter connects one input to one output. It can operate in both active and passive mode. Packets can be pushed into its input or packets can be pulled from its output. When processing packets, a meter attaches some information (such as the packet rate) to the packets based on the data and meta data they contain. The packets are processed as part of a stream.

IPacketPolicing module interface

This module interface is implemented by packet policing modules. A packet policing connects one input to one output. It operates in passive mode on its input and in active mode on its output. These modules usually meter various traffic properties and drop packets, but they never modify, delay or reorder packets.

IPacketPuller module interface

This module interface is implemented by packet pullers. A packet puler connects one input to one output. Packets can be pulled from its output and it pulls packets from its input.

IPacketPusher module interface

This module interface is implemented by packet pushers. A packet pusher connects one input to one output. Packets can be pushed into its input and it pushed packets into its output.

IPacketQueue module interface

This module interface is implemented by packet queue modules. A packet queue is a passive module which has one passive input and one passive output. Packets pushed into the passive input are either stored or dropped. Packets pulled from the passive output are provided from the stored packets.

IPacketScheduler module interface

This module interface is implemented by packet scheduler modules. A packet scheduler is a passive module which has multiple active inputs and one passive output. Packets pulled from the passive output are provided by one of the inputs without any delay and reordering.

IPacketServer module interface

This module interface is implemented by packet server modules. A packet server is an active module which has one active input and one active output. Packets are pulled from the connected input module and pushed into the connected output module with an optional delay but without reordering.

IPacketShaper module interface

This module interface is implemented by packet shaper modules. A packet shaper connects one input to one output. It operates in passive mode both on its input and its output. These modules may delay and reorder packets but they never modify or drop packets.

IPacketSink module interface

This module interface is implemented by packet sink modules which are both passive and active simultaneously.

IPacketSource module interface

This module interface is implemented by packet source modules which are both active and passive simultaneously.

IPassivePacketSink module interface

This module interface must be implemented by passive packet sink modules. A passive packet sink, also called a consumer, has one input that must be connected to an active packet source module. The connected active packet source is expected to push packets into the passive packet sink over time.

IPassivePacketSource module interface

This module interface must be implemented by passive packet source modules. A passive packet source, also called a provider, has one output that must be connected to an active packet sink module. The connected active packet sink is expected to pull packets from the passive packet source over time.

ITrafficConditioner module interface

This module interface is implemented by traffic conditioner modules. A traffic conditioner connects one input to one output. It operates in passive mode on its input and in active mode on its output. Packets can be pushed into its input and packets can be pulled from its output. A traffic conditioner can drop, delay and reorder packets, but it doesn't modify packets in any way.

inet.queueing.filter

Name Type Description
ContentBasedFilter simple module

This module filters for packets matching the configured filter criteria. When the filter is pushed by a connected packet producer, it either pushes the packet to the connected packet consumer or drops it depending on the configured packet filter. Similarily, when the filter is pulled by a connected packet collector, it pulls packets from the connected packet provider until it finds one which matches the configured packet filter.

LabelFilter simple module

This packet filter module drops packets that don't match the given packet label filter criteria. The criteria can use wildcards and boolean operators.

MultiPacketFilter compound module

This module combines multiple packet filters into one.

OmittedPacketFilter compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

OrdinalBasedDropper simple module

This module drops packets based on the ordinal number of the packet in the received stream of packets.

PacketFilter simple module

This module filters for packets matching the configured filter criteria. When the filter is pushed by a connected packet producer, it either pushes the packet to the connected packet consumer or drops it depending on the configured packet filter. Similarily, when the filter is pulled by a connected packet collector, it pulls packets from the connected packet provider until it finds one which matches the configured packet filter.

RedDropper simple module

This module implements Random Early Detection (RED).

StatisticalRateLimiter simple module

This module limit the datarate or the packetrate of a stream of packets based on the RateTag attached to the packets.

inet.queueing.flow

Name Type Description
FlowMeasurementRecorder simple module

This module is part of the flow measurement infrastructure. It can be used to record the collected statistics and also to terminate the flow measurements.

FlowMeasurementStarter simple module (no description)

inet.queueing.gate

Name Type Description
CreditBasedGate simple module

This module is a packet gate that operates based on the number of credits it contains. The gate is open if the number of credits is greater than the configured transmit credit limit, it is closed otherwise. The module attaches a CreditGateTag to all packets that pass through. The attached tag allows the gate module to determine if a packet belongs to it when the packet is eventually transmitted.

GateControlList simple module

This module configures PeriodicGate.

InteractiveGate simple module

This packet gate module allows or forbids packets to pass through depending on whether the gate is open or closed as specified by the parameter. The gate can also be controlled by the user by manually changing the open parameter from the graphical user interface while the simulation is paused.

OmittedPacketGate compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

PacketGate simple module

This module allows or forbids packets to pass through depending on whether the gate is open or closed.

PeriodicGate simple module

This module allows or forbids packets to pass through depending on whether the gate is open or closed. The gate is open and closed according to the list of change times periodically.

inet.queueing.marker

Name Type Description
ContentBasedLabeler simple module

This module attaches various request labels to packets.

ContentBasedTagger simple module

This module attaches various request tags to packets.

EcnMarker simple module

Sets Explicit Congestion Notification (ECN) bits in IPv4 header based on the attached EcnReq tag on the packets.

PacketLabeler simple module

This module attaches a LabelsTag to packets based on the configured filters. For each matching filter a new label is attached.

PacketTagger simple module

This module attaches various request tags to packets.

inet.queueing.meter

Name Type Description
DualRateThreeColorMeter simple module

This packet meter module measures the packet flow that is passing through using two token buckets. The meter attaches a LabelsTag to each packet with either green, yellow or red color depending on which token bucket contains the required number of tokens for the packet.

ExponentialRateMeter simple module

This module attaches a RateTag to each packet specifying the datarate and packetrate of the received stream of packets. The algorithm takes older packets into account with an exponentially decreasing weight.

MultiPacketMeter compound module

This module combines multiple packet meters into one.

MultiTokenBucketMeter simple module

This module labels packets according to the first token bucket that contains the required number of tokens. If no such token bucket is found then the default label is attached to the packet.

OmittedPacketMeter compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

SingleRateThreeColorMeter simple module

This packet meter module measures the packet flow that is passing through using two token buckets. The meter attaches a LabelsTag to each packet with either green, yellow or red color depending on which token bucket contains the required number of tokens for the packet.

SingleRateTwoColorMeter simple module

This packet meter module measures the packet flow that is passing through using one token bucket. The meter attaches a LabelsTag to each packet with either green or red color depending on whether the token bucket contains the required number of tokens for the packet.

SlidingWindowRateMeter simple module

This module attaches a RateTag to each packet specifying the datarate and packetrate of the received stream of packets. The algorithm takes packets into account only in the given time window.

TokenBucketMeter simple module

This module labels each packet if the token bucket contains enough tokens for the packet that is passing through. The amount of required tokens is equal to the packet length in bits and is subtracted from the number of stored tokens. New tokens are generated with the provided constant rate and they may also be added by other modules.

inet.queueing.policing

Name Type Description
MultiPacketPolicing compound module

This module combines multiple packet policing modules into one.

PacketPolicing compound module

This module combines a packet meter and a packet filter into a packet policing module. The meter measures the packet flow that is passing through and attaches some meta information to the packets. The filter drops the packets that don't match the implemented filter criteria.

inet.queueing.queue

Name Type Description
CompoundPacketQueueBase compound module

This compound module serves as a base module for complex packet queues formed by combining several queueing components.

DropHeadQueue simple module

This is a limited packet queue which drops packets at the head of the queue.

DropTailQueue simple module

This module is a limited packet queue which drops packets at the tail of the queue.

GatingPriorityQueue compound module

This module implements a priority queue with multiple inner queues each having its own periodic gate for packet selection and an optional shared memory buffer.

InProgressQueue simple module (no description)
OmittedPacketQueue compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

PacketQueue simple module

This module implements a widely configurable packet queue, which is suitable among others, to be used in MAC protocols, traffic conditioning, and quality of services. This module can be used on its own, but it's also often supplemented by additional queueing components such as servers, classifiers, schedulers, multiplexers, etc. This kind of composition allows to form a larger module which can act as a packet queue with more complex behavior.

PriorityQueue compound module

This module implements a priority queue with multiple inner queues and an optional shared memory buffer.

RedDropperQueue compound module

Combines a packet queue with random early detection (RED) dropper.

inet.queueing.scheduler

Name Type Description
ContentBasedScheduler simple module

This module connects one packet collector to multiple packet providers. It can be pulled for packets by the connected packet collector. When this happens, the scheduler pulls a packet from one of its packet providers based on the configured packet filters. The first matching expression determines the index of the input gate.

LabelScheduler simple module

This module schedules packets based on the attached labels in a LabelsTag.

MarkovScheduler simple module

This module implements a packet scheduler using a Markov process that has as many states as input gates the scheduler has. The input gate for the next packet is determined by the current state of the Markov process.

PacketScheduler simple module

This module connects one packet collector to multiple packet providers. It can be pulled for packets by the connected packet collector. When this happens, the scheduler pulls a packet from one of its packet providers based on the configured scheduler function. The packet scheduler function takes a list of packet providers and returns an integer which in turn is used for determining the input gate.

PriorityScheduler simple module

This scheduler pulls packets from the first non-empty among its connected packet providers.

WrrScheduler simple module

This module implements weighted round-robin scheduling.

inet.queueing.server

Name Type Description
InstantServer simple module

This module repeatedly pulls packets from the connected packet provider and pushes the packet into the connected packet consumer without delay.

OmittedPacketServer compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

PacketServer simple module

This module repeatedly pulls packets from the connected packet provider and after a processing delay it pushes the packet into the connected packet consumer. The processing delay is processingTime + packetLength / processingBitrate.

PreemptingServer simple module (no description)
TokenBasedServer simple module

This module repeatedly pulls packets from the connected packet provider and it pushes them into the connected packet consumer. The packets are processed in zero simulation time, and the process continues until the available number of tokens is not sufficient anymore.

inet.queueing.shaper

Name Type Description
AsynchronousShaper compound module

This module implements an asynchronous shaper. The queue sorts packets based on the transmission eligibility time (EligibilityTimeTag) attached to each packet. The gate prevents packets to be transmitter earlier than the attached transmission eligibility time.

CreditBasedShaper compound module

This module implements a credit based shaper using a gate submodule to manage the number of credits.

LeakyBucket compound module

This module implements a parameterizable leaky bucket algorithm.

OmittedTrafficConditioner compound module

This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize.

PacketShaper compound module

This module combines a packet queue and a packet gate into a packet shaper module. The queue stores the packets sorted according to its ordering and the gate decides when the first packet can be pulled from the queue.

PriorityShaper compound module

This module combines a classifier, a scheduler and several traffic shapers into a single packet shaper. Packets are classified into one of the traffic shapers and the scheduler prioritizes among them.

TimeAwareShaper compound module

This module implements a time-aware shaper using a gate submodule that opens and closes according to a time-based schedule.

TokenBucket compound module

This module implements a parameterizable token bucket algorithm.

inet.queueing.sink

Name Type Description
ActivePacketSink simple module

This module is an active packet sink which pulls packets from the connected module. It pulls whole packets through the in gate at every collection interval. It pulls the first packet after the initial collection offset.

FullPacketSink simple module

This module is an active/passive full packet sink. It doesn't pull packets from the connected module, and the it doesn't allow packets to be pusehd by the connected module. The input gate generates backpressure for push packet operations.

PassivePacketSink simple module

This module is a passive packet sink which is pushed with packets by the connected packet producer. All pushed packets are counted and deleted.

PcapFilePacketConsumer simple module

This module is a passive packet sink which is pushed with packets by the connected packet producer. All pushed packets are written to a PCAP file.

RequestConsumer compound module

This module processes incoming packets one by one in the order they arrive. First it classifies a packet according to the configured classifier function, then it generates tokens for the selected category in the configured response producer.

inet.queueing.source

Name Type Description
ActivePacketSource simple module

This module is an active packet source which pushes packets into the connected module. It pushes whole packets through the out gate at every production interval. It pushes the first packet after the initial production offset.

BurstyPacketProducer compound module

This module mixes two different packet sources to generate bursty traffic.

EmptyPacketSource simple module

This module is an active/passive empty packet source. It doesn't push packets into the connected module, and it doesn't allow packets to be pulled from it by the connected module. The output gate generates backpressure for pull packet operations.

PassivePacketSource simple module

This module is a passive packet source which can be pulled for packets from the connected packet collector.

PcapFilePacketProducer simple module

This module is an active packet source which pushes packets into the connected packet consumer. All pushed packets are read from a PCAP file.

QueueFiller compound module

This module produces packets in order to prevent a queue from becoming empty.

ResponseProducer compound module

This module is capable of generating several different streams of packets, one after the other. For each traffic category, the packets are produced by a separate token based server. The traffic stream can be started by adding tokens the corresponding server module. The packet data, packet length, and timing distributions can be configured in the corresponding packet provider.

inet.queueing.tokengenerator

Name Type Description
PacketBasedTokenGenerator simple module

This module generates tokens into the configured TokenBasedServer for each consumed packet.

QueueBasedTokenGenerator simple module

This module generates tokens for a TokenBasedServer based on the observed state changes of a packet queue. It's primary purpose is to allow applications to produce traffic which completely utilizes a network interface. This is achieved by generating tokens whenever the observed packet queue becomes empty.

SignalBasedTokenGenerator simple module

This module generates tokens for a TokenBasedServer based on received signals.

TimeBasedTokenGenerator simple module

This module generates tokens for a TokenBasedServer repeatedly.

inet.routing.aodv

Name Type Description
Aodv simple module

Ad hoc On-Demand Distance Vector Routing Protocol module.

inet.routing.bgpv4

Name Type Description
Bgp simple module

Implements BGP Version 4 routing protocol.

inet.routing.contract

Name Type Description
IBgp module interface

Interface for BGP routing module.

IEigrp module interface

Interface for routing protocol modules connected to IP Layer.

IManetRouting module interface (no description)
IOspf module interface

Interface for routing protocol modules connected to IP Layer.

IPim module interface (no description)

inet.routing.dsdv

Name Type Description
Dsdv simple module

Implements Destination-Sequenced Distance Vector.

inet.routing.dymo

Name Type Description
Dymo simple module

This module provides Dynamic MANET On-demand (Dymo also known as AODVv2) Routing based on the IETF draft at http://tools.ietf.org/html/draft-ietf-manet-dymo-24.

inet.routing.eigrp

Name Type Description
EigrpProcessDS compound module (no description)
EigrpRtp simple module (no description)
EigrpRtp6 simple module (no description)
EigrpSplitter simple module (no description)

inet.routing.eigrp.pdms

Name Type Description
EigrpIpv4Pdm simple module (no description)
EigrpIpv6Pdm simple module (no description)

inet.routing.eigrp.tables

Name Type Description
EigrpInterfaceTable simple module (no description)
EigrpIpv4NeighborTable simple module

TODO auto-generated module

EigrpIpv4TopologyTable simple module (no description)
EigrpIpv6NeighborTable simple module

TODO auto-generated module

EigrpIpv6TopologyTable simple module (no description)

inet.routing.gpsr

Name Type Description
Gpsr simple module

This module provides Greedy Perimeter Stateless Routing for Wireless Networks. The implementation supports both GG and RNG planarization algorithms.

inet.routing.ospfv2

Name Type Description
Ospfv2 simple module

Implements the OSPFv2 routing protocol.

inet.routing.ospfv3

Name Type Description
Ospfv3 compound module (no description)
Ospfv3Splitter simple module (no description)

inet.routing.ospfv3.process

Name Type Description
Ospfv3Process simple module (no description)

inet.routing.pim

Name Type Description
Pim compound module (no description)
PimCrcInsertionHook simple module (no description)
PimSplitter simple module

PimSplitter module dispatches PIM packets received from the network layer according to the PIM mode of the incoming interface. Bu using a PimSplitter it is possible to build nodes that operates in Dense Mode on some interfaces, and in Sparse Mode on others.

inet.routing.pim.modes

Name Type Description
PimDm simple module

Implementation of PIM-DM protocol (RFC 3973).

PimSm simple module

Implementation of PIM-SM protocol (RFC 4601).

inet.routing.pim.tables

Name Type Description
PimInterfaceTable simple module

The PimInterfaceTable module contains the PIM specific configuration parameters and state of the interfaces on which PIM is enabled.

PimNeighborTable simple module

The PimNeighborTable module contains information about neighboring PIM routers.

inet.routing.rip

Name Type Description
Rip simple module

Routing Information Protocol.

inet.transportlayer.base

Name Type Description
TransportProtocolBase simple module

Module base for different transport protocols.

inet.transportlayer.contract

Name Type Description
ISctp module interface

Interface for SCTP protocol.

ITcp module interface

Interface for TCP protocol implementations. All TCP implementations should implement this (i.e. declared as: TCP like ITcp) The existing implementations are these: Tcp, TcpLwip, (and TcpNsc in the inet-gpl project).

IUdp module interface

UDP protocol interface.

inet.transportlayer.rtp

Name Type Description
IRTPPayloadReceiver module interface

Interface for RTP Payload Receivers.

IRtpPayloadSender module interface

Interface for RTP Payload Senders.

Rtcp simple module

RTCP end system.

Rtp simple module

The Rtp module is the center of the Rtp layer of an endsystem. It communicates with the application, and sends and receives Rtp data packets.

RtpAvProfile simple module

Audio-Video RTP Profile. RtpAvProfile is internal to the Rtp module; instances are created and connected dynamically by Rtp.

RTPAVProfilePayload10Receiver simple module (no description)
RTPAVProfilePayload10Sender simple module (no description)
RtpAvProfilePayload32Receiver simple module (no description)
RtpAvProfilePayload32Sender simple module (no description)
RTPAVProfileSampleBasedAudioReceiver simple module (no description)
RTPAVProfileSampleBasedAudioSender simple module (no description)
RtpPayloadReceiver simple module (no description)
RtpPayloadSender simple module (no description)
RtpProfile simple module

Generic RTP Profile. RtpProfile is internal to the Rtp module; instances are created and connected dynamically by Rtp.

inet.transportlayer.sctp

Name Type Description
Sctp simple module

Implements the SCTP protocol.

SctpCrcInsertion simple module

SctpCrcInsertion module.

SctpNatHook simple module

SctpNatHook module.

SctpNatRouter compound module

SCTP NAT router

SctpNatTable simple module (no description)
SctpUdpHook simple module

SctpNatHook module.

inet.transportlayer.tcp

Name Type Description
Tcp simple module

TCP protocol implementation. See the ITcp for the Tcp layer general informations.

TcpConnection simple module (no description)

inet.transportlayer.tcp_common

Name Type Description
TcpCrcInsertionHook simple module (no description)
TcpSpoof simple module

Sends fabricated TCP packets. This is a base implementation, you'll probably have to customize it in C++ according to what you want to send and when you want to send it.

inet.transportlayer.tcp_lwip

Name Type Description
TcpLwip simple module

TCP model based on the LWIP 1.3.2 project. The original LWIP is available on this page.

TcpLwipConnection simple module (no description)

inet.transportlayer.udp

Name Type Description
Udp simple module

UDP protocol implementation, for IPv4 (Ipv4) and IPv6 (Ipv6).

UdpCrcInsertionHook simple module (no description)

inet.visualizer.base

Name Type Description
DataLinkVisualizerBase simple module

This is a base module for data link layer link visualizer simple modules. It keeps track of active links in a network. A link between two network node is considered active if a packet is sent recently between their link layers. Active links are not displayed by default, see the module parameters for how to enable the visualization. The actual visualization of active links is done in derived modules.

EnergyStorageVisualizerBase simple module

This is a base module for energy storage visualizer simple modules.

GateScheduleVisualizerBase simple module

This is a base module for gate visualizer simple modules.

Ieee80211VisualizerBase simple module

This is a base module for IEEE 802.11 association visualizer simple modules. It keeps track of wireless interface associations by subscribing to a number of signals at the provided subscription module.

InfoVisualizerBase simple module

This is a base module for submodule information visualizer simple modules. It displays some information on network nodes originating from one of their corresponding submodules. No information is displayed by default, see module parameters for how to enable the visualization. The actual visualization is done in derived modules.

InterfaceTableVisualizerBase simple module

This is a base module for interface table visualizer simple modules. It displays information of network interfaces at network nodes. Network interfaces are not displayed by default, see module parameters for how to enable the visualization.

LinkBreakVisualizerBase simple module

This is a base module for link break visualizer simple modules. It keeps track of link breaks in a network. Link breaks are not displayed by default, see module parameters for how to enable the visualization. The actual visualization of link breaks is done in derived modules.

LinkVisualizerBase simple module

This is a base module for link visualizer simple modules. It keeps track of active links in a network. A link between two network node is considered active if a packet is sent recently between the corresponding layers. Active links are not displayed by default, see the module parameters for how to enable the visualization. The actual visualization of active links is done in derived modules.

MediumVisualizerBase simple module

This is a base module for medium visualizer simple modules. It keeps track of ongoing signal departures, ongoing signal arrivals, and propagating signals.

MobilityVisualizerBase simple module

This is a base module for mobility visualizer simple modules. It subscribes for the mobilityStateChanged signal at the module determined by the visualizationSubjectModule parameter. The actual visualization of mobility is done in derived modules.

NetworkConnectionVisualizerBase simple module

This is a base module for connection visualizer simple modules. The actual visualization of network connections is done in derived modules.

NetworkNodeVisualizerBase simple module

This is a base module for node visualizer simple modules. The actual visualization of network nodes is done in derived modules.

PacketDropVisualizerBase simple module

This is a base module for packet drop visualizer simple modules. It keeps track of dropped packets in a network. Packet drops are not displayed by default, see module parameters for how to enable the visualization. The actual visualization of packet drops is done in derived modules.

PathVisualizerBase simple module

This is a base module for path visualizer simple modules. It keeps track of active routes in a network. A route between two node is considered active if a packet is sent recently between their corresponding layers. Active routes are not displayed by default, see the module parameters for how to enable the visualization. The actual visualization of active routes is done in derived modules.

PhysicalEnvironmentVisualizerBase simple module

This is a base module for physical environment visualizer simple modules. It provides the physical objects through the physical environment module for derived modules. The actual visualization of physical objects is done in derived modules.

PhysicalLinkVisualizerBase simple module

This is a base module for physical layer link visualizer simple modules. It keeps track of active links in a network. A link between two network node is considered active if a packet is sent recently between their physical layers. Active links are not displayed by default, see the module parameters for how to enable the visualization. The actual visualization of active links is done in derived modules.

QueueVisualizerBase simple module

This is a base module for queue visualizer simple modules.

RadioVisualizerBase simple module

This is a base module for radio visualizer simple modules.

RoutingTableVisualizerBase simple module

This is a base module for routing table visualizer simple modules. It displays routes in the routing tables of the network. Routes present are not displayed by default, see the module parameters for how to enable the visualization. The actual visualization of routes is done in derived modules.

SceneVisualizerBase simple module

This is a base module for scene visualizer simple modules. It determines the bounds of the scene, that is the minimum area where the whole simulation fits in. The scene encloses all physical objects and the constraint area of all mobile nodes. The visualizer also provides a timer which can be used to periodically update the user interface independently of the underlying simulation. The actual visualization of the scene is done in derived modules.

StatisticVisualizerBase simple module

This is a base module for statistic visualizer simple modules. It keeps track of the last value of a statistic for multiple network nodes. The actual visualization of statistic values is done in derived modules. It subscribes for the signal determined by the signalName parameter at the module specified by the visualizationSubjectModule parameter. If the visualizer receives such a signal it checks if the source matches the sourceFilter parameter. If the signal passes the check it determines the last value of the statistic specified by the statisticName parameter.

TracingObstacleLossVisualizerBase simple module

This is a base module for tracing obstacle loss visualizer simple modules. It subscribes on the obstacle loss module for physical object penetrated signals. The actual visualization of obstacle loss is done in derived modules.

TransportConnectionVisualizerBase simple module

This is a base module for transport connection visualizer simple modules. It keeps track of open transport connections in a network. Open connections are not displayed by default, see the module parameters for how to enable the visualization. The actual visualization of transport connections is done in derived modules.

TreeVisualizerBase simple module (no description)
VisualizerBase simple module

This is a base module for visualizer simple modules. It simply provides the visualization target module for derived modules.

inet.visualizer.canvas.common

Name Type Description
GateScheduleCanvasVisualizer simple module

This module visualizes gates on a 2D canvas.

InfoCanvasVisualizer simple module

This module visualizes some information of a submodule for each network node on a 2D canvas.

PacketDropCanvasVisualizer simple module

This module visualizes packet drops on a 2D canvas. It displays an icon for each packet drop in the network. See the documentation of the base module for what constitutes a packet drop.

QueueCanvasVisualizer simple module

This module visualizes queues on a 2D canvas.

StatisticCanvasVisualizer simple module

This module visualizes statistics on a 2D canvas. See the base module for how to configure which statistic is displayed. If configured properly, then it displays the last value of the statistic to the right of the visualization of the corresponding network node. The value and the unit is wrapped in a filled white rectangle.

inet.visualizer.canvas.configurator

Name Type Description
FailureProtectionConfigurationCanvasVisualizer simple module (no description)
StreamRedundancyConfigurationCanvasVisualizer simple module (no description)

inet.visualizer.canvas.environment

Name Type Description
PhysicalEnvironmentCanvasVisualizer simple module

This module visualizes a physical environment on a 2D canvas. It displays the physical objects present in the physical environment. Since this is not a 3D visualization, so the physical objects are projected to a 2D plane according to the view angle of the corresponding SceneCanvasVisualizer. Apart from this the visualizer considers all object properties that affect the appearance such as position, orientation, shape, colors, opacity, etc.

inet.visualizer.canvas.flow

Name Type Description
PacketFlowCanvasVisualizer simple module (no description)

inet.visualizer.canvas.integrated

Name Type Description
IntegratedCanvasVisualizer compound module

This module integrates all canvas visualizers into a single module. It supports disabling any submodule visualizer by providing an empty string as its type.

IntegratedMultiCanvasVisualizer compound module

This module integrates all canvas visualizers into a single module. It supports disabling any submodule visualizer by providing an empty string as its type.

inet.visualizer.canvas.linklayer

Name Type Description
DataLinkCanvasVisualizer simple module

This module visualizes data link layer links on a 2D canvas. It displays an arrow for each active link in the network. See the documentation of the base module for what constitutes an active link. The arrow points from the source towards the destination. If a link is used in both directions then there are separate arrows for them. Each arrow fades out over time as the link becomes inactive unless it is reinforced by another packet. The arrow automatically follows the movement of mobile nodes.

Ieee80211CanvasVisualizer simple module

This module visualizes IEEE 802.11 associations on a 2D canvas. It displays an icon labelled with the SSID for each associated wireless interface.

InterfaceTableCanvasVisualizer simple module

This module visualizes interface tables on a 2D canvas. It displays a label for each selected network interface at the owner network node.

LinkBreakCanvasVisualizer simple module

This module visualizes link breaks on a 2D canvas. It displays an icon for each link break in the network. See the documentation of the base module for what constitutes a link break. The icon is positioned at the middle point of the link.

inet.visualizer.canvas.mobility

Name Type Description
MobilityCanvasVisualizer simple module

This module visualizes multiple mobilities on a 2D canvas. It moves visual representations according to their mobility model. It also displays recent movement as a polyline, current velocity vector and current orientation.

inet.visualizer.canvas.networklayer

Name Type Description
NetworkRouteCanvasVisualizer simple module

This module visualizes network routes on a 2D canvas. It displays an polyline arrow for each active route in the network. See the documentation of the base module for what constitutes an active route. The arrow points from the source towards the destination. If a link is used in both directions then there are arrowheads on both ends of the arrow. Each polyline fades out over time until the route becomes inactive unless it is reinforced by another packet. The polyline automatically follows the movement of mobile nodes.

RoutingTableCanvasVisualizer simple module

This module visualizes routes in the routing tables on a 2D canvas. It displays an arrow for each route in the routing tables of the network. The arrow points from the node containing the routing table towards the gateway. The arrow automatically follows the movement of mobile nodes.

inet.visualizer.canvas.physicallayer

Name Type Description
MediumCanvasVisualizer simple module

This module visualizes a medium on a 2D canvas. It displays communication ranges and interference ranges as circles around network nodes. It displays an image at network nodes which are currently transmitting, and a different image at other network nodes whcih are currently receiving. It also displays radio signals as a 2D ring or a 3D sphere as they propagate through the medium.

PhysicalLinkCanvasVisualizer simple module

This module visualizes physical layer links on a 2D canvas. It displays an arrow for each active link in the network. See the documentation of the base module for what constitutes an active link. The arrow points from the source towards the destination. If a link is used in both directions then there are separate arrows for them. Each arrow fades out over time as the link becomes inactive unless it is reinforced by another packet. The arrow automatically follows the movement of mobile nodes.

RadioCanvasVisualizer simple module

This module visualizes radios on a 2D canvas.

TracingObstacleLossCanvasVisualizer simple module

This module visualizes obstacle loss on a 2D canvas. It displays a line at the intersections of signal propagation paths with physical objects, and normal vectors of physical object faces at intersection points.

inet.visualizer.canvas.power

Name Type Description
EnergyStorageCanvasVisualizer simple module

This module visualizes energyStorages on a 2D canvas.

inet.visualizer.canvas.scene

Name Type Description
NetworkConnectionCanvasVisualizer simple module

This module visualizes multiple network connections on a 2D canvas.

NetworkNodeCanvasVisualizer simple module

This module visualizes multiple network nodes on a 2D canvas. It maintains a NetworkNodeCanvasVisualization figure for each node in the network which can be annotated by other visualizers.

OpenStreetMapSceneCanvasVisualizer simple module

This module visualizes a stream map given in an OpenStreetMap file. Other objects of the scene are placed on the map according to the coordinate system module.

SceneCanvasVisualizer simple module

This module visualizes the scene on a 2D canvas. It provides the 3D coordinate system's 2D orthographic projection for other visualizers. This is used to get a consistent visualization accross all visualizers. It can also display the coordinate system axes.

inet.visualizer.canvas.transportlayer

Name Type Description
TransportConnectionCanvasVisualizer simple module

This module visualizes transport layer connections on a 2D canvas. It displays a pair of colored icons for each connection at the network nodes where the connection starts or ends.

TransportRouteCanvasVisualizer simple module

This module visualizes transport layer routes on a 2D canvas. It displays an polyline arrow for each active route in the network. See the documentation of the base module for what constitutes an active route. The arrow points from the source towards the destination. If a route is used in both directions then there are separate pathes for them. Each polyline fades out over time as the route becomes inactive unless it is reinforced by another packet. The polyline automatically follows the movement of mobile nodes.

inet.visualizer.common

Name Type Description
DataLinkVisualizer compound module

This module integrates canvas and osg data link visualizers into a single module.

EnergyStorageVisualizer compound module

This module integrates canvas and osg energyStorage visualizers into a single module.

GateScheduleVisualizer compound module

This module integrates canvas and osg gate visualizers into a single module.

Ieee80211Visualizer compound module

This module integrates canvas and osg IEEE 802.11 association visualizers into a single module.

InfoVisualizer compound module

This module integrates canvas and osg info visualizers into a single module.

IntegratedMultiVisualizer compound module

This module integrates canvas and osg visualizers into a single module.

IntegratedVisualizer compound module

This module integrates canvas and osg visualizers into a single module.

InterfaceTableVisualizer compound module (no description)
LinkBreakVisualizer compound module

This module integrates canvas and osg link break visualizers into a single module.

MediumVisualizer compound module

This module integrates canvas and osg medium visualizers into a single module.

MobilityVisualizer compound module

This module integrates canvas and osg mobility visualizers into a single module.

NetworkConnectionVisualizer compound module

This module integrates canvas and osg connection visualizers into a single module.

NetworkNodeVisualizer compound module

This module integrates canvas and osg node visualizers into a single module.

NetworkRouteVisualizer compound module

This module integrates canvas and osg network route visualizers into a single module.

PacketDropVisualizer compound module

This module integrates canvas and osg packet drop visualizers into a single module.

PacketFlowVisualizer compound module (no description)
PhysicalEnvironmentVisualizer compound module

This module integrates canvas and osg physical environment visualizers into a single module.

PhysicalLinkVisualizer compound module

This module integrates canvas and osg data link visualizers into a single module.

QueueVisualizer compound module

This module integrates canvas and osg queue visualizers into a single module.

RadioVisualizer compound module

This module integrates canvas and osg radio visualizers into a single module.

RoutingTableVisualizer compound module

This module integrates canvas and osg routing table visualizers into a single module.

SceneVisualizer compound module

This module integrates canvas and osg scene visualizers into a single module.

StatisticVisualizer compound module

This module integrates canvas and osg statistic visualizers into a single module.

TracingObstacleLossVisualizer compound module

This module integrates canvas and osg obstacle loss visualizers into a single module.

TransportConnectionVisualizer compound module

This module integrates canvas and osg transport connection visualizers into a single module.

TransportRouteVisualizer compound module

This module integrates canvas and osg transport route visualizers into a single module.

inet.visualizer.contract

Name Type Description
IDataLinkVisualizer module interface

This module interface allows configuring different IDataLinkVisualizer submodules from INI files. Such a visualizer displays the active data link layer links in a network.

IEnergyStorageVisualizer module interface

This module interface allows configuring different IEnergyStorageVisualizer submodules from INI files. Such a visualizer displays energy storages.

IFailureProtectionConfigurationVisualizer module interface

This module interface allows configuring different IFailureProtectionConfigurationVisualizer submodules from INI files. Such a visualizer displays the TSN configuration in a network.

IGateScheduleVisualizer module interface

This module interface allows configuring different IGateScheduleVisualizer submodules from INI files. Such a visualizer displays gates.

IIeee80211Visualizer module interface

This module interface allows configuring different IIeee80211Visualizer submodules from INI files. Such a visualizer displays IEEE 802.11 network interface associations.

IInfoVisualizer module interface

This module interface allows configuring different IInfoVisualizer submodules from INI files. Such a visualizer displays various information from submodules of network nodes.

IIntegratedVisualizer module interface

This module interface allows configuring different IIntegratedVisualizer submodules from INI files. Integrated visualizers are compound modules, they don't display anything on their own. Instead they combine multiple visualizers, most often simple modules, to provide a convenient way to add complex visualizations to a simulation.

IInterfaceTableVisualizer module interface

This module interface allows configuring different IInterfaceTableVisualizer submodules from INI files. Such a visualizer displays various information for network interfaces present in the interface tables of a network.

ILinkBreakVisualizer module interface

This module interface allows configuring different ILinkBreakVisualizer submodules from INI files. Such a visualizer displays the data link breaks in a network.

IMediumVisualizer module interface

This module interface allows configuring different IMediumVisualizer submodules from INI files. Such a visualizer displays transmitting nodes, receiving nodes, and propagating radio signals on a medium.

IMobilityVisualizer module interface

This module interface allows configuring different IMobilityVisualizer submodules from INI files. Such a visualizer updates the position (among others) of visual representations according to the corresponding mobility model.

INetworkConnectionVisualizer module interface

This module interface allows configuring different INetworkConnectionVisualizer submodules from INI files. Such a visualizer creates the visual representations of network connections.

INetworkNodeVisualizer module interface

This module interface allows configuring different INetworkNodeVisualizer submodules from INI files. Such a visualizer creates the visual representations of network nodes.

INetworkRouteVisualizer module interface

This module interface allows configuring different INetworkRouteVisualizer submodules from INI files. Such a visualizer displays active network routes in a network.

IPacketDropVisualizer module interface

This module interface allows configuring different IPacketDropVisualizer submodules from INI files. Such a visualizer displays the packet drops in a network.

IPacketFlowVisualizer module interface (no description)
IPhysicalEnvironmentVisualizer module interface

This module interface allows configuring different IPhysicalEnvironmentVisualizer submodules from INI files. Such a visualizer displays the physical objects present in the physical environment.

IPhysicalLinkVisualizer module interface

This module interface allows configuring different IPhysicalLinkVisualizer submodules from INI files. Such a visualizer displays the active physical layer links in a network.

IQueueVisualizer module interface

This module interface allows configuring different IQueueVisualizer submodules from INI files. Such a visualizer displays queues.

IRadioVisualizer module interface

This module interface allows configuring different IRadioVisualizer submodules from INI files. Such a visualizer displays radios.

IRoutingTableVisualizer module interface

This module interface allows configuring different IRoutingTableVisualizer submodules from INI files. Such a visualizer displays routes present in the routing tables of a network.

ISceneVisualizer module interface

This module interface allows configuring different ISceneVisualizer submodules from INI files. Such a visualizer displays the scene, the coordinate axes, sets up the initial viewpoint, etc.

IStatisticVisualizer module interface

This module interface allows configuring different IStatisticVisualizer submodules from INI files. Such a visualizer displays a statistic for multiple network nodes.

IStreamRedundancyConfigurationVisualizer module interface

This module interface allows configuring different IStreamRedundancyConfigurationVisualizer submodules from INI files. Such a visualizer displays the StreamRedundancy configuration in a network.

ITracingObstacleLossVisualizer module interface

This module interface allows configuring different ITracingObstacleLossVisualizer submodules from INI files. Such a visualizer displays obstacle loss during wireless signal propagation.

ITransportConnectionVisualizer module interface

This module interface allows configuring different ITransportConnectionVisualizer submodules from INI files. Such a visualizer displays the active transport connections in a network.

ITransportRouteVisualizer module interface

This module interface allows configuring different ITransportRouteVisualizer submodules from INI files. Such a visualizer displays active transport routes in a network.

inet.visualizer.osg.base

Name Type Description
SceneOsgVisualizerBase simple module

This is a base module for scene visualizer simple modules on a 3D osg scene. It displays the scene either as a filled rectangle or as an image.

inet.visualizer.osg.common

Name Type Description
GateScheduleOsgVisualizer simple module

This module visualizes gates on a 3D osg scene.

InfoOsgVisualizer simple module

This module visualizes some information of a submodule for each network node on a 3D osg scene.

PacketDropOsgVisualizer simple module

This module visualizes packet drops on a 3D osg scene. It displays an icon for each packet drop in the network. See the documentation of the base module for what constitutes a packet drop.

QueueOsgVisualizer simple module

This module visualizes queues on a 3D osg scene.

StatisticOsgVisualizer simple module

This module visualizes a statistic on a 3D osg scene. See the base module for how to configure which statistic is displayed. If configured properly, then it displays the last value of the statistic just above the visualization of the corresponding network node. The value and the unit is wrapped in a filled rectangle.

inet.visualizer.osg.environment

Name Type Description
PhysicalEnvironmentOsgVisualizer simple module

This module visualizes a physical environment on a 3D osg scene. It displays the physical objects present in the physical environment. The visualizer considers all object properties that affect appearance such as position, orientation, shape, colors, opacity, etc.

inet.visualizer.osg.flow

Name Type Description
PacketFlowOsgVisualizer simple module (no description)

inet.visualizer.osg.integrated

Name Type Description
IntegratedMultiOsgVisualizer compound module

This module integrates all osg visualizers into a single module. It supports disabling any submodule visualizer by providing an empty string as its type.

IntegratedOsgVisualizer compound module

This module integrates all osg visualizers into a single module. It supports disabling any submodule visualizer by providing an empty string as its type.

inet.visualizer.osg.linklayer

Name Type Description
DataLinkOsgVisualizer simple module

This module visualizes data link layer links on a 3D osg scene. It displays an arrow for each active link in the network. See the documentation of the base module for what constitutes an active link. The arrow points from the source towards the destination. If a link is used in both directions then there are separate arrows for them. Each arrow fades out over time as the link becomes inactive unless it is reinforced by another packet. The arrow automatically follows the movement of mobile nodes.

Ieee80211OsgVisualizer simple module

This module visualizes IEEE 802.11 associations on a 3D osg scene. It displays an icon labelled with the SSID for each associated wireless interface.

InterfaceTableOsgVisualizer simple module

This module visualizes interface tables on a 3D osg scene. It displays a label for each selected network interface at the owner network node.

LinkBreakOsgVisualizer simple module

This module visualizes link breaks on a 3D osg scene. It displays an icon for each link break in the network. See the documentation of the base module for what constitutes a link break. The icon is positioned at the middle point of the link.

inet.visualizer.osg.mobility

Name Type Description
MobilityOsgVisualizer simple module

This module visualizes multiple mobilities on a 3D osg scene. It moves the visual represnetation according to their mobility model. It also displays recent movement as a polyline, current velocity vector and current orientation.

inet.visualizer.osg.networklayer

Name Type Description
NetworkRouteOsgVisualizer simple module

This module visualizes network routes on a 3D osg scene. It displays an polyline for each active route in the network. See the documentation of the base module for what constitutes an active route. Each polyline fades out over time until the route becomes inactive unless it is reinforced by another packet. The polyline automatically follows the movement of mobile nodes.

RoutingTableOsgVisualizer simple module

This module visualizes routes in the routing tables on a 3D osg scene. It displays an arrow for each route in the routing tables of the network. The arrow points from the node containing the routing table towards the gateway. The arrow automatically follows the movement of mobile nodes.

inet.visualizer.osg.physicallayer

Name Type Description
MediumOsgVisualizer simple module

This module visualizes a medium using a 3D osg scene. It displays communication ranges and interference ranges as circles around network nodes. It displays an image at network nodes which are currently transmitting, and a different image at other network nodes whcih are currently receiving. It also displays radio signals as a growing 2D ring or a 3D sphere as they propagate through the medium. All 2D shapes such as circles, rings, and images can be displayed in 4 different planes: camera, xy, xz and yz. It's also possible to use animated images.

PhysicalLinkOsgVisualizer simple module

This module visualizes physical layer links on a 3D osg scene. It displays an arrow for each active link in the network. See the documentation of the base module for what constitutes an active link. The arrow points from the source towards the destination. If a link is used in both directions then there are separate arrows for them. Each arrow fades out over time as the link becomes inactive unless it is reinforced by another packet. The arrow automatically follows the movement of mobile nodes.

RadioOsgVisualizer simple module

This module visualizes radios on a 3D osg scene.

TracingObstacleLossOsgVisualizer simple module

This module visualizes obstacle loss on a 3D osg scene. It displays a line at the intersections of signal propagation paths with physical objects, and normal vectors of physical object faces at intersection points.

inet.visualizer.osg.power

Name Type Description
EnergyStorageOsgVisualizer simple module

This module visualizes energyStorages on a 3D osg scene.

inet.visualizer.osg.scene

Name Type Description
NetworkConnectionOsgVisualizer simple module

This module visualizes multiple network connections on a 3D osg scene.

NetworkNodeOsgVisualizer simple module

This module visualizes multiple network nodes on a 3D osg scene. The visual representation is either a 3D external model or a 2D icon that is rotated automatically towards the camera. The 3D external model is specified in the osgModel module parameter of the network node. The 2D icon is the image specified in the display string of the network node. The visualizer maintains a NetworkNodeOsgVisualization instance for each network node which can be annotated by other visualizers.

SceneOsgEarthVisualizer simple module

This module visualizes the scene using osgEarth. It displays a 3D osg map of some part of the earth as an integrated part of the 3D visualization of the simulation. The map is loaded from an external resource specified by the mapFile parameter. The scene is placed on the map according to the coordinate system module.

SceneOsgVisualizer simple module

This module visualizes the scene using osg. It displays the scene and the coordinate system axes. It sets the initial viewpoint of the 3D scene based on the bounding sphere of all network nodes. The viewpoint is located opposite of the coordinate system origin with respect to the sphere, and it faces towards the center of the sphere.

inet.visualizer.osg.transportlayer

Name Type Description
TransportConnectionOsgVisualizer simple module

This module visualizes transport layer connections on a 3D osg scene. It displays a pair of colored icons for each connection at the network nodes where the connection starts or ends.

TransportRouteOsgVisualizer simple module

This module visualizes transport layer routes on a 3D osg scene. It displays an polyline arrow for each active route in the network. See the documentation of the base module for what constitutes an active route. The arrow points from the source towards the destination. If a route is used in both directions then there are separate pathes for them. Each polyline fades out over time as the route becomes inactive unless it is reinforced by another packet. The polyline automatically follows the movement of mobile nodes.

ned

Name Type Description
DatarateChannel channel (no description)
DelayChannel channel (no description)
IBidirectionalChannel module interface (no description)
IdealChannel channel (no description)
IUnidirectionalChannel module interface (no description)