Skip to content

INET 2.3.0 (March 17, 2014)

Compare
Choose a tag to compare
@rhornig rhornig released this 06 Nov 09:52
· 14929 commits to master since this release

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 @signal declarations, 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.)