Download

Veins 5.2

This is the current release of Veins.


Veins 4.7.1

This is the last release of Veins in the Veins 4 series. Please consider upgrading to a Veins 5 release.


Development Version

If you want to closely follow the development of Veins, you might be interested in its public code repository.

Browse the "master" branch at github Subscribe to "master" branch RSS feed

Older and Other Versions


Compatibility

Veins 5.2

Veins 5.2 was written for use with specific versions of OMNeT++ and SUMO (and, optionally, the INET Framework), but will work (sometimes with a restricted feature set) with other versions as well.

Note that, on Windows, using Veins with other module libraries (such as the INET Framework, via veins_inet) is only supported for OMNeT++ 6.0pre14 (or OMNeT++ 5.6.2 when using the non-clang toolchain). These restrictions do not apply when building Veins using a Linux shell via the Windows Subsystem for Linux (WSL). In either case, using the Instant Veins virtual appliance might be another worthwhile option.

OMNeT++:

  • OMNeT++ 6.0pre15 works
  • OMNeT++ 6.0pre14 works , needed on Windows
  • OMNeT++ 5.7 works
  • OMNeT++ 5.6.2 works , recommended version
  • OMNeT++ 5.6.1 works
  • OMNeT++ 5.6 works
  • OMNeT++ 5.5.1 works
  • OMNeT++ 5.4.1 works
  • OMNeT++ 5.4 works
  • OMNeT++ 5.3 works

SUMO:

  • SUMO 1.11.0 works
  • SUMO 1.10.0 works
  • SUMO 1.9.2 works
  • SUMO 1.8.0 works , recommended version
  • SUMO 1.7.0 works
  • SUMO 1.6.0 works
  • SUMO 1.5.0 works
  • SUMO 1.4.0 works
  • SUMO 1.3.1 works
  • SUMO 1.3.0 works
  • SUMO 1.2.0 works
  • SUMO 0.32.0 works
  • SUMO 0.31.0 works
  • SUMO 0.30.0 works

INET Framework (optional):

  • INET 4 (for use with, e.g., Internet protocols or wired networks; and for use of, e.g., PCAP traces or emulation features)
    • INET 4.3.5 works , with OMNeT++ 6.0pre14 , with OMNeT++ 6.0pre15
    • INET 4.3.0 works , with OMNeT++ 6.0pre10
    • INET 4.2.8 works , with OMNeT++ 5.7
    • INET 4.2.2 works , with OMNeT++ 5.7 , with OMNeT++ 5.6.2 , recommended version
    • INET 4.2.1 works , with OMNeT++ 5.7 , with OMNeT++ 5.6.2
    • INET 4.2.0 works , with OMNeT++ 5.7 , with OMNeT++ 5.6.2
  • INET 3 (for use with, e.g., older versions of SimuLTE)
    • INET 3.8.1 works , with OMNeT++ 5.7
    • INET 3.8.0 works , with OMNeT++ 5.7
    • INET 3.7.1 works , with OMNeT++ 5.7 , with OMNeT++ 5.6.2 , with OMNeT++ 5.3
    • INET 3.7.0 works , with OMNeT++ 5.7 , with OMNeT++ 5.6.2
    • INET 3.6.8 works , with OMNeT++ 5.7 , with OMNeT++ 5.6.2

Plexe (optional, for evaluating Platooning systems):

  • Plexe 3.0 works , with OMNeT++ 5.7

Veins VLC (optional, for evaluating vehicular visible light communication systems):

  • Veins VLC 1.0 works , with OMNeT++ 5.7

SimuLTE (optional, for evaluating vehicular LTE and LTE D2D communication, that is, C-V2X)

  • SimuLTE 1.2.0 works with a patch (see patch, already integrated in upstream)

Simu5G (optional, for evaluating vehicular 5G and 5G D2D communication, that is, C-V2X)

  • Simu5G 1.2.0

Changelog

Upcoming (in Development Version)

New in Veins 5.2

  • change : BaseMacLayer: do not update parameter “address” with auto-selected address (incompatible with OMNeT++ 6.0pre14)
  • change : migrate .msg files from --msg4 syntax to --msg6 (needs OMNeT++ 5.3)
  • bugfix : traci: fix getStopState on SUMO versions earlier than 1.0.0
  • bugfix : veins_inet: fix linking on Windows for OMNeT++ 5.6.2 (inet-4.2.5, gcc only), OMNeT++ 6.0pre14 (inet-4.3.5)
  • feature : update documentation (thanks Michael Behrisch, Max Gro├če)
  • feature : update setenv script to set VEINS_ROOT environment variable
  • feature : add signal for vehicle collisions (thanks Tobias Hardes)
  • feature : traci: support VAR_NEIGHBORS (thanks Alberto Tamburini)
  • feature : traci: support Road::getName() (thanks Tim Reiplinger)
  • feature : traci: support Vehicle::changeTarget, Vehicle::getStopState, and Vehicle::isStopReached (thanks Clemens Boos)
  • feature : traci: support addRoute, Junction::getShape, Lane::getWidth (thanks Clemens Boos)
  • feature : traci: support Vehicle::getNextTls
  • feature : traci: support reading polygons with size 0 (thanks Clemens Boos)
  • feature : traci: support polygons with more than 255 points
  • feature : veins_testsims: make run script forward stderr
  • feature : veins_testsims: make runs more robust if tests fail
  • feature : veins_format_code: only touch files that are actually changed
  • feature : veins_inet: add VeinsInetManagerForker (thanks Michele Segata)
  • feature : veins_inet: refuse compiling on too-old INET versions
  • feature : veins_inet: detect INET versions if INET was installed from .zip file
  • feature : veins_inet: honor INET 4.3 .nedexclusions file
  • feature : veins_catch: make run script forward exit code
  • feature : veins_inet: make compatible with INET 4.3.5 (thanks Joanne Skiles)
  • feature : veins_inet: make compatible with INET 4.2.8
  • feature : veins_inet: make compatible with INET 3.8.1
  • feature : make Veins compatible with OMNeT++ 5.6.2, OMNeT++ 5.7, and OMNeT++ 6.0pre14

New in Veins 5.1

This is the current release of Veins.

If you are upgrading from Veins 4, see the documentation on upgrading for a brief summary.

  • change : tests: change ./runall to Python3
  • change : deprecate script names sumo-launchd.py, format-code.sh, run in favor of new names veins_launchd, veins_format_code, veins_run and new location (bin/), which is in search path after sourcing setenv
  • change : deprecate run script --debug flag in favor of new --mode=debug option
  • change : change default departure time of programmatically added vehicles from “triggered” to 0 (to reflect change in behavior of SUMO with SUMO 1.6.0)
  • change : Port sumo-launchd.py to python3
  • change : Port configure/run scripts to python3
  • change : Add setenv scripts that should be sourced to set environment variables
  • bugfix : fix computation of asynchronous sending times in IEEE 1609.4 Demo Base Application Layer (thanks Antonio Di Maio)
  • bugfix : move recording of TraCIMobility.posx/posy statistics to after update (avoids recording same value twice at start of simulation; thanks Florian Nolte)
  • bugfix : veins_inet3 VeinsInetManager: fix loop condition that caused skipping the mobility module (thanks Michele Segata)
  • bugfix : Fix ned parameters to include unit even if 0 (for OMNeT++ 6.0pre8 compatibility)
  • bugfix : BaseMacLayer: add Enter_Method_Silent() to getMacAddress() and setMacAddress() (thanks Michele Segata)
  • bugfix : Mac1609_4: fix memory cleanup and add EV_TRACE (thanks Michele Segata)
  • bugfix : Fix compilation with OMNeT++ 5.0 g++
  • feature : visualization: add module for visualizing roads in 2D/3D
  • feature : traci: add Lane::setDisallowed
  • feature : traci: offer generic method for serializing string lists
  • feature : traci: add getSpeed, getAcceleration, getDistanceTravelled, getAngle(), getLeader() methods (thanks Cian Johnston)
  • feature : make Veins compatible with OMNeT++ 6.0pre9
  • feature : whitelist INET 3.6.8 and INET 4.2.1
  • feature : add run script --mode=sanitize option (in preparation of OMNeT++ 6 sanitize target)
  • feature : re-factor channel access for readability (thanks Georg Echterling)
  • feature : make some modules safe-to-handle before initialization (thanks Dominik Buse)
  • feature : veins_inet add low-poly 3D model of a car
  • feature : veins_inet improve sample simulation with radio obstacle, frequency dimension for radio, 3D visualization
  • feature : Mac reports received messages' source address (thanks Max Schettler)
  • feature : warn if playground size is configured correctly for SUMO road network, but not SUMO polygons
  • feature : veins_inet3 VeinsInetMobility: convenience methods for access to TraCI commands for vehicle (thanks Joseph Kamel)
  • feature : Add icons for drones
  • feature : TraCI: add Poi::getPosition()
  • feature : Cleanup example ned namespaces (for OMNeT++ 6.0pre8 compatibility)
  • feature : Avoid specifying duplicate ned paths (e.g., in .ini and from command line) (for OMNeT++ 6.0pre8 compatibility)
  • feature : Keep providing info() method beyond OMNeT++ 5 (for OMNeT++ 6.0pre8 compatibility)
  • feature : Supply legacy opp_msgc –msg4 option for OMNeT++ versions other than 5 (for OMNeT++ 6.0pre8 compatibility)
  • feature : Enable compiling with -std=c++14 and beyond
  • feature : Mac1609_4: add signal to inform applications when a unicast transmission failed and record total amount of failures (thanks Michele Segata)
  • feature : BaseMacLayer: add method for setting the MAC address (thanks Michele Segata)
  • feature : Mac1609_4: add artificial drop rate for data frames for testing purposes (thanks Michele Segata)
  • feature : Mac1609_4: actually implement artificial ack frame dropping and set default error rate to 0 (thanks Michele Segata)
  • feature : modify VeinsInetManager to inherit from a new base class and add VeinsInetManagerForker (thanks Michele Segata)
  • feature : Add callgrind as profiling tool to run script (thanks Julian Heinovski)
  • feature : veins_inet: Support INET visualizations (thanks Clemens Boos)
  • feature : Add traciModulePreInit signal to TraCIScenarioManager (thanks Clemens Boos)
  • feature : Allow getting/setting a vehicle type’s max speed via traci (thanks Julian Heinovski)
  • feature : Allow to set generic doubles via traci (thanks Julian Heinovski)
  • feature : wireshark traci dissector: Add working doc and set default port for traci dissector (thanks Dominik S. Buse)
  • feature : veins_inet3: allow INET v3.6.6, v3.6.7
  • feature : configure: add options to increase/decrease verbosity
  • feature : veins_inet: update to INET 4.2.0
  • feature : configure: nicer pretty-printing of versions
  • feature : Improve templating in run.in.py
  • feature : Add signals for sent packets and acks (thanks Julian Heinovski)
  • feature : Add statistic recorders to mac (thanks Julian Heinovski)

New in Veins 5.0

If you are upgrading from a previous version, as it is a massive re-write of Veins, user-written models will likely need to be upgraded to work with this version. See the documentation on upgrading for a brief summary. Major changes are summarized below (see also the previous notes). All changes to the base models (along with necessary changes to upgrade the included tutorial simulation) can be found in the Git commit log.

  • bugfix : signal manager: bugfix use after free
  • feature : veins_inet3: update to INET 3.6.5
  • feature : veins_inet3: bugfix magnitude of speed vector

New in Veins 5.0-alpha2

This is the second unstable preview of upcoming features. As it is a massive re-write of Veins, user-written models will likely need to be upgraded to work with this version. See the documentation on upgrading for a brief summary. Major changes are summarized below (see also the previous notes). All changes to the base models (along with necessary changes to upgrade the included tutorial simulation) can be found in the Git commit log.

  • change : Rename namespace from "Veins" to "veins"
  • change : mobility: Allow orientation!=direction (now enforced only by TraCIMobility)
  • change : "Namespaced" naming of OMNeT++ signals changed to org_car2x_veins_...
  • change : vehicle obstacles: Make independent from TraCI, refactor to MobileHostObstacle
  • change : vehicle obstacles: Separate finding intersections from calculating attenuation
  • change : traci: merge query and queryOptional
  • bugfix : Fix 802.11p payload bit error calculation to ignore first OFDM symbol (SIGNAL field)
  • bugfix : Fix building on Windows
  • bugfix : Add Veins version macros (notably, VEINS_VERSION_MAJOR and VEINS_VERSION_MINOR) to veins/veins.h
  • feature : obstacles: Speed up calculations by up to an order of magnitude (thanks Dominik Buse)
  • feature : Improve ./run script to wait for process termination on Windows
  • feature : Improve tests
  • feature : Add license headers as well as SPDX-License-Identifier comments to every file
  • feature : TimerManager: allow repeating timers to be canceled in their own handlers
  • feature : New SignalManager: similar to TimerManager, allow subscribing to signals with, e.g., C++11 lambdas (thanks Dominik Buse)
  • feature : Improve documentation
  • feature : traci: more commands, particularly for controlling a GUI
  • feature : traci: add SUMO's generic vehicle parameter API (thanks Michele Segata)
  • feature : veins_inet: update to INET 4.1.1 (but change wlan.opMode from "p" to "a" to work around a bug)
  • feature : Ease using Veins as external dependency of a project (e.g., Plexe Veins and Veins VLC)
  • feature : Support SUMO 1.2.0
  • feature : Support OMNeT++ 5.5.1

New in Veins 5.0-alpha1

This is an unstable preview of upcoming features. As it is a massive re-write of Veins, user-written models will likely need to be upgraded to work with this version. See the documentation on upgrading for a brief summary. Major changes are summarized below. All changes to the base models (along with necessary changes to upgrade the included tutorial simulation) can be found in the Git commit log.

  • change : Rewrite PHY to use simpler signal representation and short circuiting evaluation (up to 10x speed increase; thanks to Fabian Bronner)
  • change : Add (and apply) .clang-format and uncrustify.cfg for formatting code consistently (replace all tabs by spaces, remove hard line breaks, ...)
  • change : Remove TraCI methods for parking vehicles
  • change : Refactor for C++11 (thanks to Dominik Buse, Max Schettler, Julian Heinovski) and move everything to namespace Veins
  • change : Refactor for OMNeT++ 5 (e.g., use EV_{loglevel} macros instead of debug/coreDebug .ned parameters, remove simsignalwrap_t)
  • change : Refactor programmatic vehicle insertion from part of TraCIScenarioManager into its own module, TraCIVehicleInserter
  • change : Refactor PHY to be less 802.11p centric and more modular (thanks to Agon Memedi)
  • change : Rename central include header to veins/veins.h
  • change : Rename WaveShortMessage to BaseFrame1609_4
  • change : Rename BaseWaveApplLayer, BasicSafetyMessage, WaveServiceAdvertisement to DemoBaseApplLayer, DemoSafetyMessage, DemoServiceAdvertisement
  • change : Rename PHY parameters to avoid confusion about their intent and adapt tutorial simulation parameters to realistic values
  • change : Move smoke tests into a subproject (veins_testsims)
  • change : Change top-level Makefile to (by default) build both debug and release targets
  • change : Merge run scripts (from ./run -u Cmdenv and ./debug -u Cmdenv to ./run --debug --tool gdb -- -u Cmdenv; this also allows using lldb and valgrind both with and without a debug build)
  • change : Rename veins_inet to veins_inet3 (and update for INET 3.6.4)
  • change : Remove support for OMNeT++ 4, require OMNeT++ 5 (recommend OMNeT++ 5.4.1)
  • bugfix : Fix memory leaks
  • feature : Add support for multiple PHYs and per-PHY antenna offset
  • feature : Add support for linearly extrapolating node/antenna position between position updates
  • feature : Add support for treating vehicles as radio obstacles (was a separate branch)
  • feature : Add TraCI method for enumerating POIs
  • feature : Add TraCI methods for converting cartesian coordinates to road map locations (thanks to Hamzah Abdelaziz)
  • feature : Add TraCI methods for lane area detectors (thanks to Filippo Leveni)
  • feature : Add TraCI methods for reading vehicle CO2, CO, HC, PMx, NOx, Noise emissions, Fuel/Electricity consumption
  • feature : Add TraCI methods for reading vehicle color, width, height, accel, decel
  • feature : Add TraCI methods for reading vehicle waiting time
  • feature : Emit OMNeT++ signal when vehicles are added or removed
  • feature : Add new veins_inet for INET 4.0.0 (does not build on Windows - upstream bug yet to be fixed)
  • feature : Update for (and require) SUMO 1.0.0

New in Veins 4.7.1

  • bugfix : Fix compilation on Windows
  • feature : Reduce memory consumption

New in Veins 4.7

  • change : Refactor TraCI interface to be more modular
  • change : Simplify example simulation so beaconing is turned off by default
  • bugfix : Fix antenna pattern calculation breaking for some angles
  • bugfix : Fix compilation of veins_inet subproject on Windows
  • bugfix : Fix include path when using Veins as an external project in some OMNeT++ versions
  • feature : Add experimental unicast support to IEEE 802.11p
  • feature : Add OMNeT++ proxy modules for SUMO traffic lights
  • feature : Add veins_catch subproject for unit testing of Veins using catch2
  • feature : Add TimerManager convenience class for creating simple (or repetitive) callbacks based on time ellapsed
  • feature : Add several small new TraCI commands
  • feature : Update for OMNeT++ 5.3 and SUMO 0.32.0

New in Veins 4.6

  • change : Require OMNeT++ 5.1.1
  • change : Require SUMO 0.30.0
  • bugfix : Bugfix: Resolve internal collisions by queue AC
  • bugfix : Bugfix: Allow setting per-vehicle-type Display String
  • feature : Rely on icons for visualization instead of manipulating Display String
  • feature : Employ 802.1D user priority (UP) values for mapping frames to queues (AC)
  • feature : Whitelist INET 3.6.0

New in Veins 4.5

  • change : Refactor MAC layer to be more modular
  • change : Change vehicle type mappings to use "0" as meaning "do not instantiate"
  • change : Require OMNeT++ 5.0
  • change : Require SUMO 0.29.0
  • bugfix : Fix contention window update in case of internal collisions
  • bugfix : Fix channel idle detection on ideal channel
  • feature : Add attenuation model capturing antenna patterns
  • feature : Add a subproject "veins_inet" which allows using Veins as a mobility model in INET 3.4.0 (can be imported from subprojects/veins_inet)
  • feature : Rewrite sample application and upper layers
  • feature : Add alternative TraCI client (-Forker.cc) that launches SUMO process directly instead of relying on an external script (-Launchd.cc)
  • feature : Add simple mobility model using only initial position, speed, and acceleration (LinearMobility)
  • feature : Add tracking vehicles' signals (e.g., turn signal indicators)

New in Veins 4.4

  • feature : Veins is now compatible with OMNeT++ 5 (as of the OMNeT++ 5.0 release candidate)
  • feature : code has been polished to avoid common errors
  • feature : scripts have been polished to keep fewer processes running

New in Veins 4.3

  • change : requires SUMO 0.25.0 (which now ships with netedit, the graphical road network editor)
  • feature : The simple obstacle model now reads a full type-value mapping of attenuation values from an XML document (see the sample simulation for how to make efficient use of this option)
  • feature : Veins can now be configured to use different module types/names/displaystrings for different vehicle classes (for example, "a=X b=Y *=" means to use value "X" for vehicle class "a", value "Y" for vehicle class "b", and not to instantiate any other class)
  • feature : Veins now includes a very simple Nakagami-m fading model
  • feature : can now simulate cars without network cards

New in Veins 4 alpha 2

  • change : requires SUMO 0.22.0
  • bugfix : fix compilation on Windows
  • bugfix : bugfix CCA threshold changing
  • feature : add option for custom WLAN-based MAC layers to force physical layer to transmit even on busy medium

New in Veins 4 alpha 1

  • feature : the annotations feature of Veins has been included into OMNeT++ 4.5; Veins now uses this feature if a suitable version of OMNeT++ is detected, speeding up simulations containing annotations by an order of magnitude
  • feature : allow changing the CCA threshold during simulations
  • feature : include Nist frame error rate model to allow arbitrary PHY configurations
  • change : change TraCI API to follow a hierarchical structure (global commands, commands wrt. a single vehicle, commands wrt. a single lane, ...
  • change : move all source files from, e.g., src/modules to src/veins/modules; use only a single include search path (the root of the project) instead of adding every single directory to include paths. Together, this should make Veins much easier to link with other module frameworks. Similar efforts have been started for the INET Framework.
  • feature : add TraCI commands to ease recording of screenshots and screencasts (from a series of screenshots, all taken at equal intervals wrt. simulation time).
  • change : requires SUMO 0.22.0

New in Veins 3.0

  • feature : configurable NIC types for cars
  • bugfix : improved clean-up of memory on shutdown
  • change : requires SUMO 0.21.0

New in Veins 3 alpha 3

  • feature : add collision reporting: packet loss due (only) to interfering frames
  • change : pad simulated frame length to full symbols
  • bugfix : fix TraCI error reporting

New in Veins 3 alpha 2

  • change : refactor of TraCI functionality into components
  • feature : can keep number of vehicles in the simulation constant
  • change : requires SUMO 0.20.0
  • feature : add RSU to demo code

New in Veins 3 alpha 1

  • feature : first unstable preview release of Veins 3
  • change : fork MiXiM core as Veins proper
  • change : massive refactor to allow linking Veins and INET
  • feature : add support for parking (set to "stopped" in SUMO) vehicles
  • change : requires SUMO 0.19.0

New in Veins 2.2

  • feature : render annotations (e.g., communicating vehicles) in SUMO
  • feature : update Veins example to show re-routing of cars around accident
  • feature : add TraCI dissector for Wireshark
  • feature : updates for SUMO 0.19.0

New in Veins 2.1

  • bugfix : fix CCA sometimes failing for superposition of many low-power frames
  • feature : updates for SUMO 0.17.0
  • feature : updates for gcc 4.7.2

New in Veins 2.0

  • feature : support longer running and larger scale simulations
  • feature : improved support for batch runs
  • feature : configurable antenna position
  • feature : removal of deadlocked/livelocked vehicles in OMNeT++
  • feature : new metrics: channel busy time
  • feature : more pre-configured TraCI commands: traffic lights
  • feature : allow switching between IEEE 1609.4 and pure IEEE 802.11p
  • feature : support CLang and newer GCC
  • feature : code cleanup and minor bug fixes

New in Veins 2.0-rc2

  • change : complete IEEE 802.11p and IEEE 1609.4 rewrite to improve stability and speed
  • feature : more pre-configured TraCI commands: routes, junctions, polygons, and parking vehicles
  • feature : code cleanup and minor bug fixes

New in Veins 2.0-rc1

  • change : MiXiM-only release
  • change : adaptation of MiXiM for full IEEE 802.11p and IEEE 1609.4 support
  • feature : two ray interference attenuation model for freeway scenarios
  • feature : code cleanup and minor bug fixes

New in Veins 1.99.2

  • feature : Dual release for both MiXiM and the INET Framework 1.99.2
  • feature : shadow fading model for buildings in urban and suburban scenarios
  • feature : graphical annotations in OMNeT++ TKenv

New in Veins 0.2

  • feature : update for INET Framework 2006-10-20
  • feature : update for OMNeT++ 3.4b2

New in Veins 0.1

  • feature : first public release
  • feature : bidirectionally coupled road traffic and network traffic simulation

New in Veins

  • feature : road traffic simulation coupled to network traffic simulation