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
- 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
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.
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).
- 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.
- 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)
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)
- 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 (https://github.com/aarizaq/inetmanet-2.0). 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
- 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)
- 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
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.
- 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
- 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
- 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.
This release requires OMNeT++ 4.6 or later. Read What's New for more detail.
- Added a modular and extensible new 802.11 MAC model.
- Added packetdrill testing tool for transport layer testing.
- Manet protocols in inet.routing.extras package are now disabled by default.
- 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.
- The default slot time was not always correctly chosen for the configured