---------------------
1. l2/build/ : contains files required to compile the code
a. common : contains individual module's makefile
- b. config : contains SSI memory configuration
- c. odu : contains main makefile to generate an executable binary
+ b. odu : contains main makefile to generate an executable binary
+ c. scripts: contains scripts for logging
+ d. o1 : contains main makefile to generate an executable binary
2. l2/docs/ : contains README and other configuration files for building docs
-2. l2/src/ : contains layer specific source code
+3. l2/src/ : contains layer specific source code
a. 5gnrmac : MAC source code
- b. 5gnrrlc : RLC 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
+ i. o1 : o1 module
Pre-requisite for Compilation :
-------------------------------
1. Linux 32-bit/64-bit machine
2. GCC version 4.6.3 and above
+3. Install LKSCTP
+ a. On Ubuntu : sudo apt-get install -y libsctp-dev
+ b. On CentOS : yum install lksctp-tools-devel
+4. Install PCAP:
+ a. On ubuntu : sudo apt-get install -y libpcap-dev
+ b. On CentOS : yum install libpcap-devel
+
+
+Pre-requisite for running O1 module:
+-----------------------------------
+Install netconf server
+----------------------
+
+1. Create new netconf user (login with root user and run following command)
+ $adduser --system netconf && \
+ echo "netconf:netconf" | chpasswd
+
+ $mkdir -p /home/netconf/.ssh && \
+ ssh-keygen -A && \
+ ssh-keygen -t dsa -P '' -f /home/netconf/.ssh/id_dsa && \
+ cat /home/netconf/.ssh/id_dsa.pub > /home/netconf/.ssh/authorized_keys
+2. Install netconf packages.
+ $cd l2/build/o1/
+ $chmod +x install_lib.sh
+ $ ./install_lib.sh
+
+Install the yang module
+-----------------------
+1. cd l2/build/o1/yang
+ sysrepoctl -i o-ran-sc-odu-alarm-v1.yang
How to Clean and Build:
cd l2/build/odu
b. Building ODU binary
make odu MACHINE=BIT64 MODE=FDD
+
+ Build with O1 module enabled:
+ make odu MACHINE=BIT64 MODE=FDD O1_ENABLE=YES
+
c. Cleaning ODU binary
make clean_odu MACHINE=BIT64 MODE=FDD
a. Build folder
cd l2/build/odu
b. Building CU Stub binary
- make cu_stub NODE=CU_STUB MACHINE=BIT64 MODE=FDD
+ make cu_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
c. Cleaning CU Stub binary
- make clean_cu NODE=CU_STUB MACHINE=BIT64 MODE=FDD
+ make clean_cu NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
+
+3. Building RIC Stub binary:
+ a. Build folder
+ cd l2/build/odu
+ b. Building RIC Stub binary
+ make ric_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
+ c. Cleaning RIC Stub binary
+ make clean_ric NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
+
+4. Cleaning ODU, CU Stub and RIC Stub:
+ make clean_all
+
+5. Building O1 binary:
+ a. Build folder
+ cd l2/build/o1
+ b. Building O1 binary
+ make o1 MACHINE=BIT64
+ c. Cleaning O1 binary
+ make clean_o1
-3. Cleaning ODU and CU Stub
- make clean_all MACHINE=BIT64 MODE=FDD
How to execute:
---------------
1. Assign virtual IP addresses as follows:
- ifconfig <interface name>:ODU "10.0.2.20"
- ifconfig <interface name>:CU_STUB "10.0.2.25"
+ ifconfig <interface name>:ODU "192.168.130.81"
+ ifconfig <interface name>:CU_STUB "192.168.130.82"
+ ifconfig <interface name>:RIC_STUB "192.168.130.80"
2. CU execution folder:
cd l2/bin/cu_stub
3. Run CU Stub binary:
./cu_stub
-4. DU execution folder:
+4. RIC execution folder:
+ cd l2/bin/ric_stub
+
+5. Run RIC Stub binary:
+ ./ric_stub
+
+6. DU execution folder:
cd l2/bin/odu
-5. Run ODU binary:
+7. Run ODU binary:
./odu
-PS: CU stub must be run first
+8. O1 execution folder:
+ cd l2/build/o1/bin/o1
+
+9. Run O1 binary:
+ ./o1
+
+PS: CU stub and RIC stub must be run (in no particular sequence) before ODU
+ If O1 module is enabled it must be run before ODU