Directory Structure :
-1. 5gnr_opensource/lte_enb/build/ : contains files required to compile the code
+1. 5gnr_opensource/build/ : contains files required to compile the code
a. common : contains individual module's makefile
- b. scripts : contains scripts and final makefile used to compile all layers using makefiles in common directory
+ b. config : contains SSI memory configuration
+ c. odu : contains main makefile to generate an executable binary
-2. 5gnr_opensource/lte_enb/src/ : contains layer specific source code
- a. 5gnrpdcp : PDCP source code
- b. 5gnrrlc : RLC source code
- c. 5gnrmac : MAC source code
- d. cm : common, environment and interface files
- e. mt : wrapper functions over OS
- f. rlog : logging module
+2. 5gnr_opensource/src/ : contains layer specific source code
+ a. 5gnrmac : MAC source code
+ b. 5gnrrlc : RLC source code
+ c. cm : common, environment and interface files
+ d. cu_stub : Stub code for CU
+ e. du_app : DU application and F1 code
+ f. mt : wrapper functions over OS
+ g. phy_stub : Stub code for Physical layer
+ h. rlog : logging module
Pre-requisite for Compilation :
1. Linux 32-bit/64-bit machine
2. GCC version 4.6.3 and above
+How to Compile:
+1. cd 5gnr_opensource/build/odu
+2. To clean and compile:
+ a. DU : make clean_all odu MACHINE=BIT64 TEXT_LOG=YES MODE=FDD
+ b. CU : make clean_cu cu_stub MACHINE=BIT64 TEXT_LOG=YES MODE=FDD
-How to Compile :
-1. cd 5gnr_opensource/lte_enb/build/scripts/
-2. Run script to clean and compile: ./build_5gnr.sh
-3. To clean only, run command : make clean_all
+How to execute:
+1. DU :
+ a. cd 5gnr_opensource/build/odu/bin/odu
+ b. ./odu -f ../config/ssi_mem
+2. CU :
+ a. cd 5gnr_opensource/build/odu/bin/cu_stub
+ b. ./cu_stub -f ../config/ssi_mem
-Compilation Error :
-Any compilation error will be reported in file : 5gnr_opensource/lte_enb/build/scripts/err
-
-Generated Libraries :
-Path : 5gnr_opensource/lte_enb/libs/
-1. librg.a : MAC library
-2. libkw.a : RLC library
-3. libpj.a : PDCP library
-
-Generated Object Files :
-Path : 5gnr_opensource/lte_enb/build/scripts/obj/
-1. rg* : Object files for MAC. The prefix 'rg' refers to MAC files and functions.
-2. kw* : Object files for RLC. The prefix 'kw' refers to RLC files and functions.
-3. pj* : Object files for PDCP. The prefix 'pj' refers to PDCP files and functions.