_images/hero-banner.png

Simu5G: Simulator for 5G New Radio Networks

Simu5G is the evolution of the popular SimuLTE 4G network simulator that incorporates 5G New Radio access. Based on OMNeT++ and the INET Framework, it is written in C++ and is fully customizable with a simple pluggable interface. One can also develop new modules implementing new algorithms and protocols.

Using Simu5G

The idea behind Simu5G is to let researchers simulate and benchmark their solutions on an easy-to-use framework. It borrows the concept of modularity from OMNeT++, thus it is easy to extend. Moreover, it can be integrated with other modules from the INET Framework, and with other OMNeT++-based libraries, for instance Veins for vehicular mobility.

Simu5G contains the LTE models of SimuLTE, and allows one to simulate network scenarios where 4G and 5G coexist: 5G standalone (SA) deployments, as well as E-UTRA/NR (EN-DC) and NR/E-UTRA (NE-DC) Dual Connectivity deployments.

System Requirements

Simu5G can be used on any system supported by OMNeT++ and the INET Framework (Linux, macOS or Windows). The OMNeT++ and INET versions a Simu5G release was tested with, and is compatible with, are listed in that release’s entry in the release notes.

For installation instructions, see the Installation page.

Main Features

_images/capabilities.png

User Terminals:

Mobility; interference; all types of traffic; handover; LTE, NR and dual-stack UEs; network-assisted D2D communications (research prototype)

eNodeB/gNodeB:

Macro, micro, pico cells; Carrier Aggregation; FDD and TDD with multiple numerologies; X2 interface; handover; CoMP coordinated scheduling

Network emulation:

Simu5G can also run as a network emulator, integrating an emulated 5G network with real networks and applications.

Bearers and QoS:

Data radio bearers configured centrally, established up front or on demand; EPC-style packet filters and 5GC QoS flows; SDAP with QoS flow classification and reflective QoS; QCI/5QI QoS profiles

RRC:

Bearer management; handover; radio link failure and RRC re-establishment. RRC functionality is modeled, RRC signaling is not simulated.

Dual Connectivity:

EN-DC and NE-DC deployments; split bearers with configurable uplink split and leg selection; MCG and SCG bearers

RLC:

TM, UM and AM per TS 38.322 (NR) and TS 36.322 (LTE); segmentation and reassembly; retransmissions and status reporting (AM only)

MAC:

HARQ; AMC and CQI reporting; random access with preamble collisions; buffer status reporting per logical channel group; scheduling algorithms: Max C/I, Proportional Fair, Deficit Round Robin, QoS-aware Proportional Fair, etc.

PHY:

Channel feedback computation; stochastic channel models per 3GPP TR 36.814, TR 36.873 and TR 38.901; reception based on SINR and BLER curves; background cells for large-scale scenarios

ETSI MEC:

Model of both MEC system-level and host-level entities: UALCMP, MEC orchestrator, MEC host, MEC platform, MEC services. Radio Network Information and Location Services are implemented. Fully compliant ETSI interfaces towards Device app and MEC app allow one to use real MEC application endpoints with 5G transport and MEC services based on information coming from the 5G network.

Development Since v1.3

Starting with v1.3.1, Simu5G has been going through a thorough overhaul (development repository: inet-framework/Simu5G). The goals are to make the model follow the 3GPP architecture more closely, to bring the code base in line with the practices of the INET Framework, and thereby to build a sound foundation for new protocol features. The work proceeds in small steps, each validated with fingerprint, statistical and unit tests; where a change alters simulation results, the release notes say so and explain why. The main milestones so far:

  • v1.4.0 - v1.4.2: source tree and naming reorganized, more type-safe C++ code, packets made inspectable.

  • v1.4.3 - v1.4.5: bearers established explicitly instead of being discovered from the traffic, protocol state carried in real header fields instead of packet tags, explicit initialization stages, incomplete MIMO code removed; bugs fixed in the PHY error model, the MAC and MEC.

  • v1.5.x: Control Plane functionality collected into an RRC compound module (bearer management, registration, handover control); PDCP and RLC rebuilt as per-bearer entity modules; SDAP and QoS flows added.

  • v1.6.0: standards-based RLC Unacknowledged and Acknowledged Mode for both NR (TS 38.322) and LTE (TS 36.322); radio link failure detection and RRC re-establishment.

  • v1.7.0: central, spec-modeled bearer and QoS-flow configuration (the BearerConfigurator module); SDAP on by default in 5G standalone networks; NE-DC and SCG bearers; buffer status reporting and uplink scheduling per logical channel group; D2D factored out into a separate, optional package; the 3GPP propagation formulas audited, fixed and covered by unit tests.

Many of these releases require changes to existing ini files, or to code that extends Simu5G. The release notes describe the changes and the necessary porting steps for each release.

Core Contributors and Funding

Simu5G is the result of a joint research project carried out by Intel Corporation and the Computer Networking Group of the University of Pisa, Italy. UniPi team:

Since v1.3.1, Simu5G has been developed by Andras Varga and the OMNeT++ core team. Notable contributions were also made by Mohamed Seliem (University College Cork; initial SDAP code and QoS-aware scheduling) and Esteban Egea Lopez (Universidad Politécnica de Cartagena; NR RLC). The release notes credit contributions release by release.