INET 3.5.0 (Feb 22, 2017)

@rhornig rhornig released this Feb 20, 2017 · 148 commits to master since this release

This release contains mostly bug fixes and compatibility changes. It requires
OMNeT++ 5.1. Earlier versions of OMNeT++ are not compatible.

Highlights in this release:


  • The build process is now using precompiled headers. This can speed up the
    build process considerably.
  • Feature macros (WITH_*) that show the enablement of features are now placed
    into a header file (src/inet/features.h) instead of passed on the command line.
    The build process adds the WITH_OSG and WITH_OSGEARTH macro to the opp_defines.h
    file when WITH_OSG/WITH_OSGEARTH is set to yes. This allows the IDE to properly
    highlight/disable the appropriate code fragments.
  • 64-bit build is now supported on Windows.


  • Added a Plot figure (see InstrumentsExample).


  • DHCP fixes.
  • DHCP can now activated in a Router by setting hasDHCP=true
  • Added new WirelessNetWith2DHCP example.


  • Added two-ray interference model (TwoRayInterference) as a pathoss model.


  • Added StreamReconfig support for SCTP (by Irene Ruengeler)


  • Allow to specify the interface name in a parameter instead of
    using a hardcoded interface name.


  • Small fixes in SimpleEnergyStorage and during Antenna initialization
  • Calling IPv6RoutingTable::getInterfaceByAddress(const L3Address& address) or
    findGpsrOptionFromNetworkDatagram() function caused infinite recursion.
  • Radio: Fixed FreeSpacePathLoss bug in the loss formula for alpha != 2 case,
    reported by Benjamin Sliwa.
  • SimpleVoIPServer now resolves destAddress at startTime (instead
    of initialization)
  • Ieee8021dRelay: fixed a null pointer crash
  • StaticConcentricMobility: fixed a rounding issue
  • ICMP: fixed "icmp error answer to a fragmented udp packet" problem
  • ICMP: fixing bug #64: Buffer Overflow Error
  • AODV: no longer causes assertion failure when RREP-ACK arrived after a timeout


INET 3.4.0 (Jun 17, 2016)

@rhornig rhornig released this Jun 17, 2016 · 284 commits to master since this release

This INET release requires OMNeT++ 5.0. This is due to the new visualization feature which uses the Canvas and OSG APIs introduced in OMNeT++ 5.0. Most other parts of the codebase still builds with OMNeT++ 4.6.

Highlights is this release:


  • Added a Wireless Tutorial (tutorials/wireless). The tutorial consists of
    several simulation models of increasing complexity, demonstrating the INET
    architecture and features related to wireless communication networks. The
    models are accompanied by a text which explains each step, complete with
    screenshots and recorded animations.
  • Added draft for a visualization tutorial.


  • Added a new 'visualizer' folder under 'src' that contains visualizer modules.
    The current visualizer modules can display the scene (optionally with osgEarth),
    the network nodes (optionally with 3D models), physical objects in
    the physical environment, node mobility along with movement trail, discovered
    network connectivity, discovered network routes, ongoing transmissions,
    ongoing receptions, propagating radio signals, and statistics.

    The visualizer modules are intentionally kept separate from network protocol
    models. They are responsible for displaying various aspects of the simulation
    in a graphical user interface. The most common mechanism they use is looking
    up other modules and/or subscribing to the signals they emit. The visualizer
    modules are compatible with both Tkenv and Qtenv. In Qtenv they are able to
    display on both a 2D canvas and a 3D OSG scene.

Instrument figures:

  • Implemented a facility that allows one to display various gauges, meters
    and indicators in the network graphics that take their inputs from signals.
    The "gadgets" themselves are figures that are added into the network using
    @figure properties, and they are driven by signals via @statistic properties,
    using a special result recorder ("figure") that sets the value in the target
    figure. Figure types are: gauge, linearGauge, progressMeter, thermometer,
    counter, indicatorLabel/indicatorText, and indexedImage. Their sources
    are in src/inet/common/figures.

    There is a demo in examples/visualization/instruments, and an additional
    usage example in the Wireless Tutorial (tutorials/wireless).

MAC protocols:

  • Added CsmaCaMac, a simple 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. The code is
    based on the original Ieee80211Mac (802.11b) from 2006.
  • IdealMac: Changed out-of-band ACKs to be optional.
  • LMAC, BMAC, CSMA: Fixed handling of frames with bit errors.
  • WirelessNic: added optional classifier submodule
  • Ieee80211Mac: Resurrected link break signal for giving up a transmission.


  • The physical environment model has been extended to include a ground model.
    Ground models need to implement the IGround interface that currently
    contains a getElevation() method. A very simple implementation, FlatGround
    is also provided.
  • The TwoRayGroundReflection model has been updated to use the ground model
    of the physical environment.
  • Added packetReceivedFromUpper and packetSentToUpper signals.


  • Mobility models now use the initialZ parameter even if position is
    initialized from the display string.
  • Added VehicleMobility that simulates turning at waypoints.
  • Now all mobile nodes face (i.e. set the orientation to) the direction of
    movement. This affects radio reception when direction antenna is used.

Physical enviromment:

  • Added geographic coordinate system support.
  • TracingObstacleLoss renamed to DielectricObstacleLoss.


  • Added ApplicationPacket that can be used as generic application payload.
    Currently it contains a sequence number.
  • UDPBasicApp/UDPSink: changed to use ApplicationPacket, and record
    received packet sequence numbers
  • RelayUnit: Added packetReceivedFromLowerSignal and packetSentToLowerSignal signals.
  • AODV: Removed AODV-RERR messages for inactive routes.
  • Applications: Added throughput statistic to some applications.
  • IPv4: Added sentTo/receivedFrom upper/lower signals.
  • Common: Added average forest "material".
  • Common: Added throughput result filter.


  • Added a top level 'doc' target to build all INET documentation in a single step
  • Added project feature tests (tests/features)


INET 3.3.0 (Jun 3, 2016)

@rhornig rhornig released this Jun 3, 2016 · 387 commits to master since this release

This release requires OMNeT++ 4.6 or 5.0.


  • Removed unnecessary -pINET from the makemake options. This caused linking
    issues on Windows when 'clang' was used as a compiler. (the INET_API
    macros are needed only for Visual C++)
  • In makefrag, use inet_featuretool instead of scanning the compiler options
    to detect the enablement of the VoIPStream and NSC features
  • Fix: TCP_lwip did not compile when using the command-line make.
  • Examples: 'run' script can now take parameters containing spaces (as long as
    they are quoted properly)


  • Packetdrill: Added SCTP support and socket options (by Irene Ruengeler)
  • SCTP: added support for the SCTP_ACCEPT command (by Irene Ruengeler)

Physical layer:

  • Added IdealObstacleLoss. 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.


  • The "MANET Routing" feature (a collection of routing protocols ported
    into INET from other projects) was removed from the source tree. The
    removed MANET routing algorithms are still available in the INETMANET
    fork of INET ( INET now contains
    the following natively implemented MANET routing protocols: AODV, DYMO, GPSR.


  • IPv4: bug fix in IPv4 packet deserialization
  • Ieee802.11: bug fix in 802.11 management code (set TID only for QoS data
  • TelnetApp: bug fix (cancel pending timers correctly)
  • IPv4NetworkConfigurator: bug fix: links were not properly detected by the
    configurator when nodes connected to a switch were defined after the switch
    in the NED file
  • IPv6: double delete fixed
  • IPv4RoutingTable: fix: only interfaces with the BROADCAST flag set have
    local broadcast addresses
  • AODV: fix: AODV stopped with an error if an ICMP error packet was received
    (ICMP packets are now accepted and silently dropped)
  • examples: removed obsolete fingerprints.ini files


  • Added a separate EtherPhyFrame class. Motivation: there was no obvious way
    looking at an EtherFrame to tell whether it already contains preamble+SFD
    or not.
  • Change: When modeling the decapsulation from PHY header (subtracting preamble
    and SFD lengths), padding to minimum frame size was also undone. This is
    no longer done.
  • EtherIFG renamed to EtherFilledIFG
  • Catch duplex-halfduplex misconfiguration and throw error
  • Fix incorrect byte counting during burst
  • Serializer: adapted to the introduction of EtherPhyFrame
  • Serializer: fix: CRC was in wrong byte order
  • Serializer: fix: length field contained incorrect value (size of frame
    instead of size of payload)


INET 3.2.4 (April 6, 2016)

@rhornig rhornig released this Apr 6, 2016 · 453 commits to master since this release

  • build: updated inet_featuretool (the same like the opp_featuretool in OMNeT++ 5.0)
  • minor fixes to make it build under both OMNeT++ 4.6 and 5.0


INET 3.2.3 (March 16, 2016)

@rhornig rhornig released this Mar 16, 2016 · 457 commits to master since this release

  • build: updated inet_featuretool (the same like the opp_featuretool in OMNeT++ 5.0 rc)
  • several fixes to make it compatible with both OMNeT++ 4.6 and 5.0
  • smoke and fingerprint tests are running on both OMNeT++ 4.6 and 5.0
  • some varaiable renames and fixes in ieee802.11


INET 3.2.1 (Jan 22, 2016)

@rhornig rhornig released this Jan 22, 2016 · 496 commits to master since this release

  • 802.11 MAC model: EDCA, rate control crashes fixed
  • Radio: Fixed handling of abort reception/transmission.
  • Added missing INET_API defines
  • Physical layer: Fixed memory issues detected by valgrind


INET 3.2.0 (Dec 17, 2015)

@rhornig rhornig released this Dec 16, 2015 · 526 commits to master since this release

IEEE 802.11 MAC model:

  • After further refinement, new features, several bugfixes and validation
    testing, the new MAC model was made the default one. It was also renamed
    from Ieee80211NewMac to Ieee80211Mac, while the old Ieee80211Mac became
  • Improvements on the new MAC model include:
    • Added fragmentation support;
    • Added Onoe, ARF, AARF rate control algorithms;
    • Implemented early Ack timeout;
  • Validation: Several validation tests were run against the ns-3 Wifi model.
    In the tested configurations, it was ensured that new Mac model behaves
    exactly as the ns-3 model (that is, timestamped packet logs match exactly).
    Discrepancies were resolved with bugfixes in our code, in the ns-3 code,
    or both. Bugs found in ns-3 were reported in the ns-3 bugtracker.
    See tests/misc/ns3.

Physical layer:

  • Added support for the simulation of separate signal parts in the Radio.
    The preamble, header and data parts can be optionally simulated
    separately. This results in a more accurate simulation, because a
    reception may be aborted before the data part is received.
  • Added separate preambleDuration parameters to each radio transmitter for more
    flexible configuration.
  • Added Ieee80211IdealRadio, an ideal channel model (aka unit disc radio)
    suitable for use with Ieee80211Mac.


  • Fixed PER computation in NetworkConfiguratorBase.
  • Fixed missing byte length in AODV and added control packet length configuration.
  • RTT initialization was fixed in TCP (Vegas, Westwood) because the original
    value caused "out of range" error with the overflow check introduced in
    OMNeT++ 5.0b3.
  • BPDU packet length was incorrectly set sometimes in the 802.1d model.
  • Fixed incorrect sign of lastSpeed in some mobility models.
  • The VoIPStream app has been updated to work with the ffmpeg version
    distributed in Ubuntu 15.10
  • Added some INET_API macros to compile properly on Windows.
  • QoSClassifier example no longer needs the 802.11 project feature.


INET 3.1.1 (Oct 26, 2015)

@rhornig rhornig released this Oct 26, 2015 · 645 commits to master since this release

This release requires OMNeT++ 4.6 or later. Read What's New for more detail.

  1. Added a modular and extensible new 802.11 MAC model.
  2. Added packetdrill testing tool for transport layer testing.
  3. Manet protocols in inet.routing.extras package are now disabled by default.
  4. Changes and bug fixes in the (old) 802.11 MAC:
    • The default slot time was not always correctly chosen for the configured
      mode (modulation and coding scheme).
    • Changed maxQueueSize's meaning to per AC queue. Before, maxQueueSize
      referred to the total of the AC queue lengths, which could cause starvation
      of higher priority queues (see ChangeLog for more info.)
    • Removed external queue support, that is, the mgmt submodule in the Nic no longer serves
      as a passive queue for the MAC.