1 A. Directory Structure :
2 ------------------------
3 1. l2/build/ : contains files required to compile the code
4 a. common : contains individual module's makefile
5 b. odu : contains main makefile to generate an executable binary
6 c. scripts: contains scripts for logging
7 d. o1 : contains main makefile to generate an executable binary
9 2. l2/docs/ : contains README and other configuration files for building docs
11 3. l2/src/ : contains layer specific source code
12 a. 5gnrmac : MAC source code
13 b. 5gnrrlc : RLC source code
14 c. cm : common, environment and interface files
15 d. cu_stub : Stub code for CU
16 e. du_app : DU application and F1 code
17 f. mt : wrapper functions over OS
18 g. phy_stub : Stub code for Physical layer
19 h. rlog : logging module
23 B. Pre-requisite for Compilation :
24 ----------------------------------
25 1. Linux 32-bit/64-bit machine
26 2. GCC version 4.6.3 and above
28 a. On Ubuntu : sudo apt-get install -y libsctp-dev
29 b. On CentOS : yum install lksctp-tools-devel
31 a. On ubuntu : sudo apt-get install -y libpcap-dev
32 b. On CentOS : yum install libpcap-devel
35 C. Pre-requisite for running O1 module:
36 ---------------------------------------
37 Install netconf server
38 ----------------------
40 1. Create new netconf user (login with root user and run following command)
41 $adduser --system netconf && \
42 echo "netconf:netconf" | chpasswd
44 $mkdir -p /home/netconf/.ssh && \
46 ssh-keygen -t dsa -P '' -f /home/netconf/.ssh/id_dsa && \
47 cat /home/netconf/.ssh/id_dsa.pub > /home/netconf/.ssh/authorized_keys
48 2. Install netconf packages.
50 $chmod +x install_lib.sh
53 Install the yang module
54 -----------------------
55 1. cd l2/build/o1/yang
56 sysrepoctl -i o-ran-sc-odu-alarm-v1.yang
59 D. How to Clean and Build:
60 --------------------------
61 1. Building ODU binary:
64 b. Building ODU binary
65 make odu MACHINE=BIT64 MODE=FDD
67 Build with O1 module enabled:
68 make odu MACHINE=BIT64 MODE=FDD O1_ENABLE=YES
70 c. Cleaning ODU binary
71 make clean_odu MACHINE=BIT64 MODE=FDD
73 2. Building CU Stub binary:
76 b. Building CU Stub binary
77 make cu_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
78 c. Cleaning CU Stub binary
79 make clean_cu NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
81 3. Building RIC Stub binary:
84 b. Building RIC Stub binary
85 make ric_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
86 c. Cleaning RIC Stub binary
87 make clean_ric NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
89 4. Cleaning ODU, CU Stub and RIC Stub:
92 5. Building O1 binary:
103 1. Assign virtual IP addresses as follows:
104 a. ifconfig <interface name>:ODU "192.168.130.81"
105 b. ifconfig <interface name>:CU_STUB "192.168.130.82"
106 c. ifconfig <interface name>:RIC_STUB "192.168.130.80"
109 a. CU execution folder:
111 b. Run CU Stub binary:
115 a. RIC execution folder:
117 b. Run RIC Stub binary:
121 a. DU execution folder:
127 a. O1 execution folder:
128 cd l2/build/o1/bin/o1
132 PS: CU stub and RIC stub must be run (in no particular sequence) before ODU
133 If O1 module is enabled it must be run before ODU
135 F. How to test with Intel L1:
136 -----------------------------
140 a. Create folder l2/src/wls_lib. Copy wls_lib.h from <intel_directory>/phy/wls_lib/ to l2/src/wls_lib.
141 b. Create folder l2/src/dpdk_lib. Copy following files from <intel_directory>/dpdk-19.11/x86_64-native-linuxapp-gcc/include/ to l2/sr c/dpdk_lib.
142 rte_branch_prediction.h
147 rte_pci_dev_feature_defs.h
157 make odu PHY=INTEL_L1 PHY_MODE=TIMER MACHINE=BIT64 MODE=FDD
159 2. Build CU Stub and RIC Stub:
160 a. Execute steps in sections D.2 and D.3.
164 a. Setup environment:
165 cd <intel_directory>/phy/
168 cd <intel_directory>/FlexRAN/l1/bin/nr5g/gnb/l1
169 To run in timer mode : ./l1.sh -e
170 L1 is up when console prints follow:
172 Non BBU threads in application
173 ===========================================================================================================
174 nr5g_gnb_phy2mac_api_proc_stats_thread: [PID: 8659] binding on [CPU 0] [PRIO: 0] [POLICY: 1]
175 wls_rx_handler (non-rt): [PID: 8663] binding on [CPU 0]
176 ===========================================================================================================
178 PHY>welcome to application console
180 2. Execute FAPI Translator:
181 a. Setup environment:
182 cd <intel_directory>/phy/
184 b. Run FAPI translator binary:
185 cd <intel_directory>/phy/fapi_5g/bin/
186 ./oran_5g_fapi --cfg=oran_5g_fapi.cfg
188 3. Execute CU Stub and RIC Stub:
189 a. Run steps in sections E.1-E.3
192 a. DU execution folder
194 b. Export WLS library path
195 export LD_LIBRARY_PATH=<intel_directory>/phy/wls_lib/lib:$LD_LIBRARY_PATH