Releases: inet-framework/inet
INET 3.1.1 (Oct 26, 2015)
This patch release fixes a build issue on Windows.
INET 3.0.0 (Jun 24, 2015)
This is the first stable version of the INET 3 codebase. It contains changes that require source code modifications in your model. This release requires OMNeT++ 4.6 or later.
There are numerous breaking changes since the latest stable version (2.6). Please read this file carefully and see the ChangeLog files in the source for more details.
Nodes:
- Modules that represent a "node" at network level should be tagged with
@networkNodeproperty instead of@node. (The@nodeproperty name was
too generic.) The INode module interface was renamed to INetworkNode, too.
Applications:
- The functionality of PingTestApp was merged into PingApp and PingTestApp
was removed.
Network Layer:
- Refactored IPv4/IPv6 options to use TLVOptions structure.
INET 2.99.1 (May 13, 2015)
This release is the last development snapshot of the upcoming INET-3.0 version.
The highlights of this release are:
-
Includes a new packet/bit/symbol level physical layer model for the 802.11
OFDM PHY according to the IEEE 802.11-2012 standard, and a hypothetical
generic packet/bit/symbol level APSK physical layer model for further
experimentation. The new implementations include forward error correction
encoding/decoding, scrambling/descrambling, interleaving/deinterleaving, and
modulation/demodulation. -
Contains fixes for more than 300 defects found by Coverity, an online C++
static code analysis tool. The reported Defect Density is decreased to
0.5/kLoC which is considered a result. You can find the detailed results at
https://scan.coverity.com/projects/3472 -
Contains several other memory leak and memory management fixes reported by
valgrind memcheck. -
Modernizes C++ source code using new C++11 features such as nullptr, auto
types, range loop, override, etc.
Read on for further details.
All components:
- Replaced all variants of findModuleWherever calls with module parameters,
because their behavior is non-predictable and less composable. - Replaced most getParentModule calls with module parameters to make modules
less dependent on their context, and thus more reusable. - Replaced UnimplementedModule and all related *_None modules with calls to
firstAvailableOrEmpty NED function, and changed affected submodules to be
present conditionally. - Moved interface classes under contract subdirectories. Moved base classes
under base subdirectories. - Introduced a new script called 'inet_featuretool' in the root folder of the
project that allows listing/enabling/disabling specific features from the
command line. Use 'inet_featuretool -h' for further info.
The 'make makefiles' command now uses this tool to extract the required
command line options to generate the makefile. This means that after
enabling/disabling a feature you always have to invoke 'make makefiles'
to regenerate the makefile based on the new feature enablement state.
Nodes:
- All "node type" modules implement the INode module interface so it is now
possible to create networks (using the <"actualNodeType"> like INode construct)
where the actual node type can be configured from an ini file.
Emulation:
- Network Emulation feature no longer depends on OMNeT++ to detect the presence
of PCAP. Instead the feature can be turned on/off by the user.
Common:
- Added create-module and delete-module commands to ScenarioManager.
- New macros in INETDefs.h to test INET version: INET_VERSION (format: 0xAABB
where AA is the major while BB is the minor version in hex) and
INET_PATCH_LEVEL (format: 0xCC is the patch level in hex). - On Linux, specifying --valgrind as the first argument for the opp_run script
(or a run script in the examples folder) will start the simulation using the
'valgrind' memory profiler. - Added a reusable HeatMapFigure and a GaugeFigure.
- Added a reusable DelayedInitializer to support static member initialization
without having to worry about the initialization order. - Renamed ByteArrayMessage to RawPacket.
Environment:
- Added isometric view angles to physical environment visualization.
- Added class and module interfaces to physical environment.
Mobility:
- Added a new StaticConcentricMobility similar to StaticGridMobility that places
nodes on concentric circles. - Removed TracCI and TraCIScenarioManager because these modules are maintained
in the Veins framework.
Serializer:
- Refactored packet serializer classes to use a safe buffer class to read and
write binary data. This allows parsing incorrect binary representations without
runtime errors required by bit precise physical layer models. - Refactored recursion in serializers to be extensible with new packet formats
without modifying existing code. - Fixed a number of packet length bugs and inconsistencies between serialized
and non-serialized forms.
Application:
- Merged NetPerfMeter application from the master branch added by Thomas Dreibholz.
PCAP:
- Allow flushing the pcapFile after each write to ensure that all packets are
captured in case of a crash.
Transport Layer:
- Added ITransportPacket interface to TCPSegment, UDPPacket, and SCTPMessage.
It allows generic handling of transport packets.
SCTP:
- Added fragPoint parameter to limit the size of fragments.
- After the handshake only send heartbeats on unconfirmed paths.
- Fixed close command handling, i.e. stop reading when the command is sent.
- Handle SACK and NR_SACK separately and use getByteLength instead of getBitLength.
- Fixed several bugs.
TCP:
- Refactored and cleaned up TCP header options.
- Fixed scaling window bug (Martin Becke).
Network Layer:
- Factored out the network topology extraction algorithm from IPv4NetworkConfigurator
into a base class. - Added support to IPv4NetworkConfigurator for computing wireless shortest path
based on a simple packet error rate estimation. - Added netmaskRoutes parameter to IPv4RoutingTable to control whether netmask
routes are maintained or not. - Added useAdminDist parameter to IPv4RoutingTable to enable/disable the use
of Cisco specific routing entry extension (disabled by default). - Added IGMPv3 implementation (the orinal code came from the ANSA project).
It has been almost fully rewritten and extended by Tamas Borbely.
Routing:
- Added PIM-DM and PIM-SM implementation. The original codebase (from the ANSA project
http://nes.fit.vutbr.cz/ansa) has been extensively reviewed, refactored and
extended by Tamas Borbely.
Configurator:
- Refactored supported metrics (hopCount, delay, dataRate, errorRate) and related
parameters in IPv4NetworkConfigurator. - Added autoroute XML configuration element to IPv4NetworkConfigurator. It provides
parameters for the automatic route discovery. The autoroute element determines
the set of routing tables that will be modified, the set of destinations for
which the shortest path will be computed, the used metric and the cost for nodes
and links.
Link layer:
- Added TUN/TAP virtual network interfaces thanks to Irene Ruengeler. This kind
of interfaces send/receive packets to/from TUN applications. - Updated the 802.11 MAC implementation to use the new 802.11 mode descriptors.
- Replaced the old 802.11 operational mode and modulation descriptor classes.
This change modifies the fingerprint of a few simulations, because the header
length was computed incorrectly. - Changed the 802.11 MAC to use asynchronous commands to set the radio mode.
- Updated the 802.11 MAC state machine diagram (graphviz) to reflect the current
state of the implementation. - Added safety guard to the 802.11 MAC against recursively calling handleWithFSM.
- Fixed packet order in transmissionQueue.
- Renamed getNetworkInterfaceModule to getInterfaceModule in InterfaceEntry.
- Improved response time on external interfaces. On Linux cSocketScheduler is now
using immediate mode to reduce the CPU usage while still maintaining a fast
sub millisec response time (Artur Scussel). On Windows and MAC OS X the polling
interval was reduced to improve the response time. - Added support for sending NF_LINK_BREAK signal from BMAC and CSMA. This is
required for certain routing protocols (i.e. AODV) to function properly. - Extended Ethernet macs accept raw packet
Physical layer:
- Extended the physical layer contract interfaces for layered implementations.
- Added signal representations for packet domain, bit domain, symbol domain,
sample domain and analog domain, and also added contracts for the processing
components in all of these domains. - Added a detailed 802.11 OFDM physical layer implementation that supports
packet-level, bit-level, and symbol-level simulations in compliant, and also
in freely configurable non-compliant operational modes. - Replaced the old 802.11 operational mode and modulation descriptor classes.
The new classes are more detailed and more complete implementations. They
supports both the flat and the layered physical layer models and provide PHY
characteristics. The implemented 802.11 modes are: DSSS, HR-DSSS, FHSS, IR,
OFDM, ERP-OFDM. - Added IEEE 802.11 High Throughput mode descriptor. This mode is defined in
Clause 20. High Throughput (HT) PHY specification in the IEEE 802.11-2012
specification. The new HT mode makes available the Wifi n modes in the
Ieee80211ModeSet. - Added a simple hypothetical APSK physical layer implementation that supports
packet-level, bit-level, and symbol-level simulations with widely configurable
bit-domain and symbol-domain parameters. - Consistently moved packet level and bit level implementations into separate
subdirectories throughout the physical layer. - Added a generic convolutional encoder/decoder, a generic additive
scrambler/descrambler, and a 802.11 specific interleaver/deinterleaver. - Added a separate modulations folder that contains descriptor classes for
various keying techniques such as BPSK, QPSK, QAM16, QAM64, QAM256, MQAM,
DBPSK, DQPSK, MASK, MFSK, MPSK, DSSS-OQPSK-16, etc. - Reimplemented the computation of BER and SER based on the SNIR for the QAM-like
modulations according to wikipedia. - Added a special IntervalTree cache for efficiently computing arrival intervals
for transmissions. This change drastically increases the physical layer
performance for large networks with lots of ongoing transmissions. - Refactored the radio medium model to support the optional representation of
PHY frames for the layered phy...
INET 2.6 (March 05, 2015)
This release requires OMNeT++ 4.4 or later. It contains the following changes:
- added OLIA for CMT-SCTP (by Martin Becke)
- added a trace player feature to NetPerfMeter
- fixed compile errors when using OMNeT++ 5.0b1
- fixed an issue with too small initial value of 'ssthreshold' in TCP
- fixed window scaling in TCP
INET 2.99.0 (Nov 10, 2014)
This release is a snapshot of the development that has begun in early 2013, and will culminate in the release of INET-3.0. The code is work in progress, which means all details may still change until 3.0 is reached. This release requires OMNeT++ 4.6 or later.
The highlights of this release:
-
Network layer refactoring that allows higher layer protocols (including
routing protocols) to be written in a network protocol agnostic manner. -
A new physical layer model that builds upon the INET and MiXiM physical
layers, and brings them to new heights. Design goals were extreme modularity,
extensibility, the ability to support (and easily switch between) various
levels of detail, and the ability to add support for exploiting various
pieces of parallel hardware. -
Extensive refactoring aimed at improving code quality. It includes
directory restructuring, code formatting, refactoring of init stages and
publish-subscribe communication, and more.
Further improvements:
Geometry model:
- Added new orientation related classes: EulerAngles, Rotation, and Quaternion.
- Added new basic 3D geometry classes: LineSegment, Box, Plane, and Polygon.
- Added new 3D convex shapes: Cuboid, Sphere, Prism, and Polyhedron.
- Added new geometry cache data structures: SpatialGrid, QuadTree, and BVHTree.
Physical environment model:
- Removed obsolete classes: Obstacle, ObstacleControl, and AnnotationManager.
- Implemented a completely new physical environment model as follows.
- Added a new global PhysicalEnvironment module that provides some trivial
global properties: temperature, space limits, and a list of physical objects. - Added a new PhysicalObject class that has shape, position, orientation,
material, and various graphics properties. - Added a new Material class along with some default materials: vacuum, air,
copper, aluminium, wood, brick, concrete, and glass. - Added a new IObjectCache interface for efficient physical object queries
along a line segment. - Added IObjectCache implementations: GridObjectCache and BVHObjectCache.
- Added an XML file format to initialize the physical environment with shapes,
materials, and physical objects. - Added support for drawing the physical objects on a compound module canvas
(Tkenv) in 2D as seen from a configured view angle. - Added examples that demonstrate the initialization and usage of the physical
environment, the physical objects, and the configuration of the object cache.
Power model:
- Removed obsolete classes: IBattery, BasicBattery, InetSimpleBattery and Energy.
- Implemented a completely new power model.
- Added new interfaces: IEnergyConsumer, IEnergyStorage, and IEnergyGenerator.
- Added implementations: IdealEnergyStorage, and SimpleEnergyStorage.
- Added a new power consumer implementation for radios based on the radio mode,
the reception state, and the transmission state: StateBasedEnergyConsumer.
Physical layer:
- Refactored and unified the existing INET and MiXiM physical layer models into
a new extended and scalable model as follows. - Designed new interfaces and classes to support optimistic parallel computation
of reception results utilizing multicore CPUs and/or GPUs. - Designed new model that supports different level of details with respect to
transmitters, receivers, radio signals, antennas, propagation models, etc. - Added new radio signal power representations: scalar and dimensional over
time, frequency, space, etc. - Added various performance vs. accuracy tradeoff configuration options (e.g.
range filter, radio mode filter, listening mode filter, MAC address filter) - Added concurrent transmitter and receiver radio mode (transceiver mode).
- Added separate controllable radio mode and automatic signaling of reception
state and transmission state. - Added configurable non-zero time radio mode switching.
- Added separate power consumption model based on the radio mode, the reception
state and the transmission state. - Added support for burst mode (back to back) transmissions.
- Introduced compile time checked physical units in C++ code to avoid conversion
errors and to enhance self documentation.
Physical layer radio model:
- Removed obsolete classes: Radio, IdealRadio, GenericRadio, GenericRadioModel,
IRadio, IRadioModel, INoiseGenerator, and some others. - Added new interfaces: IRadio, IAntenna, ITransmitter, IReceiver, and IErrorModel.
- Added new implementation classes: Radio, IdealRadio, ScalarRadio,
DimensionalRadio, Ieee80211Radio, and Ieee802154UWBIRRadio. - Added a number of implementation base classes and subcomponents unlisted here.
- Added and updated error model implementations: FlatErrorModel,
Ieee80211NistErrorModel, Ieee80211YansErrorModel - Introduced controllable radio mode: off, sleep, receiver, transmitter,
transceiver, and switching. - Introduced automatically signaled reception state: undefined, idle, busy,
synchronizing and receiving. - Introduced automatically signaled transmission state: undefined, transmitting.
- Added new antenna classes: IsotropicAntenna, ConstantGainAntenna,
DipoleAntenna, and InterpolatingAntenna.
Physical layer radio medium model:
- Removed obsolete classes: ChannelAccess ChannelControl, IdealChannelModel,
IdealChannelModelAccess and some others. - Added new interfaces to model the radio medium: IRadioMedium, IPropagation,
IBackgroundNoise, IPathLoss, IObstacleLoss, IAttenuation, and INeighborCache. - Added new implementation classes: RadioMedium, IdealRadioMedium,
ScalarRadioMedium, DimensionalRadioMedium, Ieee80211RadioMedium, and
Ieee802154UWBIRRadioMedium. - Added propagation models: ConstantTimePropagation and ConstantSpeedPropagation.
- Added background noise source models: ScalarIsotropicBackgroundNoise and
DimensionalIsotropicBackgroundNoise. - Refactored existing path loss models: FreeSpacePathLoss, LogNormalShadowing,
TwoRayGroundReflection, NakagamiFading, RayleighFading, RicianFading, and
SUIPathLoss. - Added new path loss models: BreakpointPathLoss and UWBIRStochasticPathLoss
from MiXiM. - Added a new obstacle loss model: TracingObstacleLoss.
- Added INeighborCache implementations: ListNeighborCache, GridNeighborCache,
and QuadTreeNeighborCache.
Physical layer communication model:
- Removed obsolete classes: AirFrame, IdealAirFrame and SnrList.
- Added new interfaces: IRadioFrame, ITransmission, IArrival, IReception,
INoise, ISNIR, IListening, and IReceptionDecision. - Added new implementation classes: RadioFrame, Arrival, Interference,
ScalarSNIR, DimensionalSNIR. - Added a number of implementation base classes unlisted here.
- Added range based, narrow band scalar and dimensional signal power
representations for transmissions, receptions, and noise.
Link layer:
- Added a simple MAC protocol for testing purposes: IdealMac.
- Ported MAC protocols from MiXiM: CSMA, BMACLayer, and LMacLayer.
Network layer:
-
IPv4/IPv6: dynamic registration of upper layer protocols.
TCP, UDP, SCTP, RSVP, OSPF, MANET are all merged into transport gates.
Network user modules must register their protocol number by sending
an IPRegisterProtocolCommand from initialize().
Introduced an IPSocket class that wraps the registration process. -
Refactoring: routing tables and routes now implement a common IRoutingTable
and IRoute C++ interface (details below)Motivation: allow uniform access to the IPv4, IPv6 and possibly other routing tables;
e.g. some wireless networks may use MAC address as network address. Also, in
simulation it sometimes makes sense to work with simple abstract addresses like
module names, indices or IDs.Being able to uniformly access routing tables containing different types of
addresses makes it possible to implement routing protocols in generic way.
I.e. the same DYMO module can work with IPv4, IPv6, MAC and other addresses
without change and recompiling.Ingredients of this patch:
- generic L3Address class that can hold all kinds of addresses (=union)
- interfaces for generic access: IRoutingTable, IRoute, INetworkDatagram, etc.
- Ping refactoring (use generic addressing instead of hardcoded IPv4, IPv6)
- merged routing table change notification constants for IPv4 and IPv6
-
NetworkLayer was renamed to IPv4NetworkLayer and moved into src/networklayer/ipv4;
same for IPv6 (NetworkLayer6 -> IPv6NetworkLayer). -
IPvXAddress ha been extended and renamed to L3Address. Similarly,
IPvXAddressResolver became L3AddressResolver. In addition to IPv4 and IPv6
addresses, L3Address also allows using other kinds of addresses and identifiers
(e.g. MACAddress, module IDs, module paths) for network-layer addressing. -
Added GenericNetworkProtocol, which is a simplified network protocol with
table-based forwarding. It uses L3Address, so it is agnostic to the network-layer
address type. -
Added MultiNetworkLayer, which is a wrapper for multiple network layers; in
practice it can be used for simulating IPv4/IPv6 dual-stack hosts. -
Ported network protocols from MiXiM: Flood, ProbabilisticBroadcast, and WiseRoute.
C++ source cleanup:
-
Changed include directives to specify the full path of the header file. This
resolves ambiguities caused by different projects having similar header files,
and by case-insensitive file systems (Windows). -
Changed header guards to use a uniform syntax.
-
Applied code formatting (whitespace, braces, etc.) Formatter script (based on
uncrustify) is under _scripts/reformat, for future formatting needs. -
Introduced C++ namespaces: inet, inet::utils, inet::ospf, inet::bgp, inet::sctp...
INET 2.5.0 (Oct 29, 2014)
This release requires OMNeT++ 4.4. Changes:
- Made the codebase compile in C++11 mode. (required by OMNeT++ 4.6)
- Added the netperfmeter application contributed by Thomas Dreibholz
INET 2.4.0 (June 12, 2014)
This release is compatible with OMNeT++ 4.5. Changes:
- Added brand AODV implementation in network/routing folder (backported from the integration branch).
- Added support for link break detection in IdealWireless (using the NF_LINK_BREAK signal)
- VoIPStream updated to match the latest version of ffmpeg library.
- Added packet printers that can dump packet data in OMNeT++ 4.5/Tkenv in the packet trace window.
- Fixed non-conformant 802.11 WAITACK timeout computation
INET 2.3.0 (March 17, 2014)
This release contains several new protocols, and a lot of changes that were backported from the current integration branch (destined to be INET 3.0).
Application startTime/stopTime fixes:
- apps start sending at startTime, and send their last packet
before stopTime - negative stopTime means sending forever
- if startTime and stopTime are the same, the app sends a single
packet only (except TCP apps)
DHCPServer and Client:
- The whole implementation has been reviewed to bring it closer to
the standards defined in RFC 2131 and 2132. - Major changes were made both in client's and server's state machines.
It is now extended with new states (INIT-REBOOT, REBOOTING) and
with new message types (DHCPNAK, DHCPDECLINE). The new states allow
the user to model scenarios with lifecycle events. - The server's performance model has been removed.
- The internal representation of the DHCP options were moved to the
DHCPOptions INET message definition file. - Limitation: The client module currently does not support multiple
DHCP servers and BOOTP relay agents.
SCTP improvements submitted by Irene Rungeler and Thomas Dreibholz:
- added CMT support (Concurrent Multipath Transfer)
- added SCTP NAT support
- added support for using SCTP over IPv6
STP / RSTP support (802.1d) added to the EthernetSwitch:
- STP: added IEEE 802.1D-1998 implementation of Spanning Tree Protocol.
The source code is based on the ANSA (https://github.com/kvetak/ANSA)
implementation. - RSTP: added IEEE 802.1D-2004 implementation of Spanning Tree Protocol.
The source code is based on Juan Luis Garrote Molinero's implementation
from INETMANET. - Interfaces can be configured using the new L2NetworkConfigurator module.
This module allows one to configure network scenarios at Layer 2. - Replaced the EtherSwitch relay unit with a new, STP/RSTP capable one.
The CPU and memory modelling are no longer supported in this relay unit.
Nodes automatically pick-up the network configuration on restart:
- An IPv4NodeConfigurator module has been added to hosts, which is responsible
for configuring the host on restart based on information stored in the
IPv4NetworkConfigurator module.
INetFilter::IHook API:
- Modules can now hook into the IP module with the new 'NetFilter' API.
Routing protocols can be implemented now without modifying the IP
module's code. ManetRoutingBase, InternetCloud and ARP have been updated
to use the new 'NetFilter' API.
Added new routing protocols:
- RIP (networklayer/routing/rip)
- GPSR (networklayer/routing/gpsr)
- DYMO (networklayer/routing/dymo)
These protocols use INetFilter::IHook, too.
Revised Mobility code; split the 'models' directory into multiple directories:
- contract - specifies the interface of mobility models
- common - shared files among mobility models that are not complete
mobility models - static - mobility models that actually don't move
- single - mobility models controlling only one moving object
- group - mobility models controlling multiple interlinked moving objects
Other, smaller changes:
- Added the Stanford University Interim radio propagation model contributed by Konrad Polys and Krzysztof Grochla.
- Added ILifecycle support to most applications
- Renamed AppBase to ApplicationBase and moved to 'common'.
- UDP: added option to specify the source address of the sent datagram
- UDPBasicBurst: added bool parameter: excludeLocalDestAddresses
- UDPVideoStreamCli: use stages in initialize
- UDPApp*: Added AppBase and subclassed UDP apps from it.
Binds sockets at startTime and closes them at stopTime. - EtherApp* bugfixes
- Added a command to set TCP queue length threshold. TCP will notify the
application if it is ready to transmit more bytes. - registerSignal() calls were moved from initialize() to static
variable declarations. - Added/fixed
@signaldeclarations, fixed the type of emitted values. - httptools: removed the fileExists() function.
- New logging mechanism + EV handling in preparation for the new OMNeT++ 5.0
logging mechanism. - IPv4Route/IPv6Route: added administrative distance field
- Added IPv6 header serializer (so ext interfaces can be used with IPv6, too)
- Invalid access of message pointers fixed in: OSPF, SCTP, DHCP, PingApp
- Battery: code review, small fixes.
- Revised init stages in all modules
- Many smaller fixes and improvements (see the ChangeLog files for further detail.)
inet3-branch-start
This is a tag that marks the point where INET-3.x development branched off the 2.x series.
INET 2.2.0 (Aug 13, 2013)
The main highlight of this release is the long-sought support for simulating node shutdown/restart events for network nodes. This release requires OMNeT++ 4.2 or later.
New features:
-
Lifecycle infrastructure.
For node shutdown/crash/startup/etc, a LifecycleOperation (e.g.
NodeShutdownOperation) is applied to the submodule tree of the node
(host or router) by LifecycleController. Each module can decide how
to handle the operation and how to store the resulting state (up/down,etc).
Operations can be multi-stage, and don't need to complete immediately
(i.e. they can take nonzero simulation time and multiple events to complete).Network nodes now also have a status submodule (type NodeStatus) with the sole
purpose of storing the whole node's status (up/down) and displaying it
via icons.- classes: ILifecycle, LifecycleOperation (NodeOperation, InterfaceOperation),
LifecycleController, NodeStatus - NodeStatus module to store the network node's status (up or down)
- added optional NodeStatus submodule to NodeBase
- added a test for the basic Lifecycle infrastructure
We also removed obsolete ways of shutdown/restart: FailureManager, PowerControl,
LDP_FAILED/RSVP_FAILED, etc. - classes: ILifecycle, LifecycleOperation (NodeOperation, InterfaceOperation),
-
Static IP4 configuration:
A new module, IPv4NodeConfigurator was added to IPv4NetworkLayer. This module
is necessary because IPv4NetworkConfigurator cannot configure the node after
a restart (see newly introduced node lifecycle operations above), since
being a global module, it doesn't know about node lifecycle events. The new
module listens to node lifecycle events, and configures the node's routing
table and interfaces according to configuration computed by the network's
global IPv4NetworkConfigurator module. Initialization-time node configuration
is also carried out by the new module. -
Added TCP Vegas and Westwood algorithms.
The implementation is a slightly improved version of a 2013 workshop submission:
"INET framework extensions for TCP Vegas and TCP Westwood", Maria Fernandez,
Carlos Calafate, Juan-Carlos Cano and Pietro Manzoni. OMNeT++ Workshop, 2013.
http://www.omnet-workshop.org/2013/uploads/slides/OMNeT-Workshop2013-SP-4.pdf -
Added IdealWirelessNic (IdealRadio + IdealWirelessMac) and IdealWirelessFrame msg.
This is a highly abstracted wireless NIC that consists of a unit disk radio
and a trivial MAC protocol. It offers simplicity for scenarios where Layer 1
and Layer 2 effects can be completely ignored, for example testing the basic
functionality of a wireless ad-hoc routing protocol.The most important parameter this model accepts is the transmission range.
When a radio transmits a frame, all other radios within transmission range
will receive the frame correctly, and radios out of range will not be
affected at all. There are no collisions -- a radio can simultaneously
receive any number of frames, and also transmit a single frame at the same time. -
STCP received several new features (patches submitted by Irene Ruengeler):
- 8 new strategies for SCTP stream scheduling
- SCTP Stream Reset (RFC 6525)
- SCTP Authentication (RFC 4895)
- Add-IP feature for SCTP (RFC 5061)
- NR_SACK feature to SCTP
- Partial Reliability SCTP (RFC 3758)
- SCTP packet drop feature (draft-stewart-sctp-pktdrprep-15.txt)
- SCTP "sack immediately" feature (draft-ietf-tsvwg-sctp-sack-immediately)
- several alternatives to send fast retransmissions on SCTP
-
Loopback interface added
Loopback used to be a special case inside the IPv4/IPv6 modules, now it
is handled completely like any other interface, with a separate Loopback
module. -
EtherSwitch, AccessPoint:
Bare EtherMAC modules have been replaced with EthernetInterface, so that
external queues can be used (useful for e.g. QoS). -
InterfaceTable, NIC, NetworkLayer:
Revert to earlier behavior of determining networkLayerGateIndex.
Now the module connected to a NIC must have gate vectors called ifIn and ifOut.
If it doesn't, the code decides that the NIC is not directly connected to
a network layer, and leaves networkLayerGateIndex unfilled.
Other, smaller changes:
- MANET protocols have been synchronized with the INETMANET project
- NodeBase: added optional battery (off by default)
- UDP: implemented ReuseAddress option (it's like SO_REUSEADDR socket
option in Linux). If ReuseAddress is set to true on two sockets,
then they can bind to the same local address/port. - PingApp and other apps: for the stopTime parameter, 'none' is now represented
by -1, not 0. As this is the default setting, likely very few simulations
(ini files) are affected. - IPv4NetworkConfigurator: added
@groupsto (ie. multicast groups
can now be also specified in the element, not only in a separate
element) - in many simulation examples, .irt files were replaced by IPv4NetworkConfigurator XML.
- EtherMACFullDuplex: wait IFG after frames, not before.
- Ieee80211Mac: added signals declarations and statistics in the NED file
- EthernetInterface: the encap submodule was made replaceable ("like IEtherEncap")
- NED: Added InterfaceTable unconditionally to bridge devices, as it is currently
required by IPv4NetworkConfigurator. Also added NotificationBoard required by
InterfaceTable. - IPv4NetworkConfigurator: Changed to support mixed wired and wireless LANs
for autoconfiguration. - Fixed IPv4NetworkConfigurator bug sometimes not being able to assign addresses.
Changed to assign most constrained addresses first. - RTPHost was moved from src/transport to src/nodes/, and changed to be based
on StandardHost - TurtleMobility: Fixed getting the position from a mobility signal listener
during initialization. The script was resumed before initialize() finished,
resulting in incorrect positioning. - StaticGridMobility: Added new parameters to specify the number of rows/columns
and the horizontal/verical separation between the nodes. Note that the way
the node positions are calculated has changed. You may need to update your
INI files (see the NED file for more info.) - Many smaller fixes and improvements