Skip to content

Development Guideline

Ali Güngör edited this page Apr 24, 2021 · 44 revisions

If you want to contribute to the UERANSIM. Here you can find some development guidelines.


C++ Coding Style

  • This UERANSIM-specific coding style guideline shall be used inside of the UERANSIM project.
  • Do not use C language, and don't write C-style codes. Use modern and rich C++ features instead.
  • Use Microsoft's C++ coding guidelines, with following exceptions:
    • Use AlwaysBreakTemplateDeclarations: Yes (for clang tidy)
    • Use camelCase for instance methods, PascalCase for static functions.

Development Environment

We suggest the usage of Clion as the IDE.

  1. Start Clion C++ IDE
  2. Click Open
  3. Select the root folder of UERANSIM and hit OK
  4. Clion will ask you if you want to import the project as CMake or makefile. Select CMake.
  5. Click Build/Build Project from the top menu.

Build and Compile

Build instructions written in Installation Wiki is not required for developers. You should be able to build normally inside of Clion C++ IDE. You can also build in Debug mode, and/or utilize the debugger.

If you add, remove or rename a source file, make sure click Reload CMake Project. This action is not required for in file changes.


3GPP Specifications

Here's the list of technical specifications often used by UERANSIM:

  • TS 23.501 : System architecture for the 5G System
  • TS 23.502 : Procedures for the 5G System
  • TS 24.007 : Mobile radio interface signalling layer 3; General Aspects
  • TS 24.501 : Non-Access-Stratum (NAS) protocol for 5G System
  • TS 31.101 : UICC-terminal interface; Physical and logical characteristics
  • TS 31.102 : Characteristics of the USIM Application
  • TS 31.111 : USIM Application Toolkit (USAT)
  • TS 33.501 : Security architecture and procedures for 5G System
  • TS 38.300 : NR and NG-RAN Overall description;
  • TS 38.304 : NR; User Equipment (UE) procedures in idle mode and in RRC Inactive state
  • TS 38.322 : NR; Radio Link Control (RLC) protocol specification
  • TS 38.323 : NR; Packet Data Convergence Protocol (PDCP) specification
  • TS 38.331 : NR; Radio Resource Control (RRC); Protocol specification
  • TS 38.401 : NG-RAN; Architecture description
  • TS 38.410 : NG-RAN; NG general aspects and principles
  • TS 38.411 : NG-RAN; NG layer 1
  • TS 38.412 : NG-RAN; NG signalling transport
  • TS 38.413 : NG-RAN; NG Application Protocol (NGAP)
  • TS 38.414 : NG-RAN; NG data transport
  • TS 38.415 : NG-RAN; PDU session user plane protocol

We use release 15.6.0 for 3GPP specifications