Skip to content

Development Guideline

Ali Güngör edited this page Mar 10, 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.

3GPP Specifications

All of the 5G with all internals are designed and defined by international 3GPP organization. Our ultimate references for 5G implementation are those documents. 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.501 : Non-Access-Stratum (NAS) protocol for 5G System
  • 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