Releases: inet-framework/inet
INET 3.6.1 (July 6, 2017)
- Minor compatibility fix to work with OMNeT++ 5.2 Preview 1
- Turned on the parallel build option in the IDE project file.
INET 3.6.0 (June 14, 2017)
This release contains some important new features, several bug fixes, and a few
minor enhancements. It requires OMNeT++ 5.1 or later.
Highlights in this release:
-
On Windows, INET is no longer using the auto-import feature of the linker, because
it generated more than 65536 symbols. Dependent projects crashed because of this.
All INET APIs now should be prefixed with INET_API macro. (fixes #257) -
The makefile now generates separate precompiled header for debug and release mode.
This is required to be able to quickly switch between release and debug mode in the IDE. -
The IEEE 802.11 MAC model has been extended with several new components. The
implementation is entirely based on the standard IEEE 802.11™-2012 Part 11:
Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.The new architecture is designed to be modular to facilitate experimenting
with new policies, features and algorithms within the MAC layer. Users can
easily replace individual components with their own implementations. Policies,
which most likely to be experimented with, are extracted into their own modules.The new model has the following replaceable built-in policies:
- ACK policy
- RTS/CTS policy
- Originator and recipient block ACK agreement policies
- MSDU aggregation policy
- Fragmentation policy
The new model also separates the following components:
- Coordination functions
- Channel access methods
- MAC data services
- Aggregation and deaggregation
- Fragmentation and defragmentation
- Block ACK agreements and reordering
- Frame exchange sequences
- Duplicate removal
- Rate selection
- Rate control
- Protection mechanisms
- Recovery procedure
- Contention
- Frame queues
- TX/RX
There are several enhancements and new features to the previous version, the
most notable are frame exchange sequences, block acknowledgement, and MSDU
aggregation.The new version was thoroughly tested against the old one using fingerprint
tests. The tests ensure that the new version doesn't introduce any regression.
In fact, the tests brought up a few problems in the old implementation that
were fixed in the new one. -
The power model has been extended with support for charge/current based models
as opposed to the existing energy/power based ones. A new energy management
component has also been added to separate monitoring and controlling of energy
consumers and generators from the rest of the model. -
New visualizers has been added to display packet drops and link breaks, data
contained in interface tables, routes stored in routing tables, queues filled
with packets, residual capacity of energy storages, and transport connections
between network nodes. The new visualizers are also added to the already existing
integrated ones. Note: many features that work with the 2D visualizers currently
don't work with the 3D OSG visualizers. -
Added new features for various tutorials and showcases.
INET 3.5.0 (Feb 22, 2017)
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:
Build:
- 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.
Visualizers:
- Added a Plot figure (see InstrumentsExample).
DHCP:
- DHCP fixes.
- DHCP can now activated in a Router by setting hasDHCP=true
- Added new WirelessNetWith2DHCP example.
Radio:
- Added two-ray interference model (TwoRayInterference) as a pathoss model.
SCTP:
- Added StreamReconfig support for SCTP (by Irene Ruengeler)
GPSR:
- Allow to specify the interface name in a parameter instead of
using a hardcoded interface name.
Fixes:
- 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)
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:
Tutorials:
- 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.
Visualizers:
-
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.
Radio:
- 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:
- 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.
Misc:
- 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.
Build:
- 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)
This release requires OMNeT++ 4.6 or 5.0.
Build:
- 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)
SCTP:
- 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.
MANET:
- 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.
Fixes:
- IPv4: bug fix in IPv4 packet deserialization
- Ieee802.11: bug fix in 802.11 management code (set TID only for QoS data
frames) - 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
Ethernet:
- 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)
- 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)
- 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)
- 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)
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
Ieee80211OldMac. - 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.
Fixes:
- 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)
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