X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docs%2FREADME;h=bd57bec0a5696d29d9766ced350051307a32c325;hb=refs%2Fchanges%2F48%2F7348%2F3;hp=d527a5e371ccb2f783a7c86e6e558b3a79dace62;hpb=7ebfb1f80967fe83bf169c2915cedf2c9fb5cbf7;p=o-du%2Fl2.git diff --git a/docs/README b/docs/README index d527a5e37..bd57bec0a 100644 --- a/docs/README +++ b/docs/README @@ -3,8 +3,9 @@ A. Directory Structure : 1. l2/build/ : contains files required to compile the code a. common : contains individual module's makefile 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 + c. scripts: contains scripts for logging, installing netconf libraries and starting netopeer server + d. config : contains the configuration files + e. yang : contains the YANG modules 2. l2/docs/ : contains README and other configuration files for building docs @@ -17,7 +18,7 @@ A. Directory Structure : f. mt : wrapper functions over OS g. phy_stub : Stub code for Physical layer h. rlog : logging module - i. o1 : o1 module + i. O1 : O1 module B. Pre-requisite for Compilation : @@ -32,111 +33,145 @@ B. Pre-requisite for Compilation : b. On CentOS : sudo yum install -y libpcap-devel -C. Pre-requisite for running O1 module: ---------------------------------------- -Install netconf server ----------------------- +C. Pre-requisite for O1 Interface (Required only if run with O1 interface enabled) +----------------------------------------------------------------------------------- +1. Setup netconf server -1. Create new netconf user (login with root user and run following command) - $adduser --system netconf && \ - echo "netconf:netconf" | chpasswd + a. Add new netconf user (login with root user or use sudo and run following script) + $cd l2/build/scripts + $sudo ./add_netconf_user.sh - $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 + b. Install netconf packages. + $chmod +x install_lib_O1.sh + $sudo ./install_lib_O1.sh -c -Install the yang module ------------------------ -1. cd l2/build/o1/yang - sysrepoctl -i o-ran-sc-odu-alarm-v1.yang - sysrepoctl -i o-ran-sc-odu-interface-v1.yang +2. Update the configuration according to your setup. + + $cd l2/build/config + + a. Open the startup_config.xml and edit the desired IP and Port for CU, DU and RIC. + b. Open the nacm_config.xml and edit the desired user name to provide the access to that user. + c. Open the netconf_server_ipv6.xml and edit the desired netconf server configuration. + d. Open the vesConfig.json and edit the details of VES collector. + e. Open the netconfConfig.json and edit the details of Netopeer server. + f. Install the yang modules and load initial configuration + + $cd l2/build/scripts + $sudo ./load_yang.sh + +3. Start Netopeer2-server: + $cd l2/build/scripts + $sudo ./netopeer-server.sh start D. How to Clean and Build: -------------------------- -1. Building ODU binary: +1. Build commands: + a. odu - Builds all components of ODU + b. cu_stub - Builds all CU Stub + c. ric_stub - Builds all RIC_Stub + d. clean_odu - clean up ODU + e. clean_cu - clean up CU Stub + f. clean_ric - clean up RIC Stub + g. clean_all - cleanup everything + h. options: + i. MACHINE=BIT64/BIT32 - Specify underlying machine type. Default is BIT32 + ii. NODE=TEST_STUB - Specify if it is a test node. Mandatory for cu_stub/ric_stub. Must not be used for odu + iii. MODE=FDD/TDD - Specify duplex mode. Default is FDD + iv. PHY=INTEL_L1 - Specify type of phy. If not specified, PHY stub is used + v. PHY_MODE=TIMER - Specify mode of phy. Used only if PHY=INTEL_L1. Default is radio mode + vi. O1_ENABLE=YES - Specify if O1 interface is enabled. If not specified, it is disabled + +2. Building ODU binary: a. Build folder cd l2/build/odu b. Building ODU binary - make odu MACHINE=BIT64 MODE=FDD + make odu MACHINE= MODE= c. Cleaning ODU binary - make clean_odu MACHINE=BIT64 MODE=FDD + make clean_odu MACHINE= MODE= -2. Building CU Stub binary: +3. Building CU Stub binary: a. Build folder cd l2/build/odu b. Building CU Stub binary - make cu_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD + make cu_stub NODE= MACHINE= MODE= c. Cleaning CU Stub binary - make clean_cu NODE=TEST_STUB MACHINE=BIT64 MODE=FDD + make clean_cu NODE= MACHINE= MODE= -3. Building RIC Stub binary: +4. 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 + make ric_stub NODE= MACHINE= MODE= c. Cleaning RIC Stub binary - make clean_ric NODE=TEST_STUB MACHINE=BIT64 MODE=FDD + make clean_ric NODE= MACHINE= MODE= -4. Cleaning ODU, CU Stub and RIC Stub: +5. Cleaning ODU, CU Stub and RIC Stub: make clean_all -5. Building ODU binary with O1 interface enabled: + +E. How to Clean and Build with O1 interface enabled (Requires pre-requisite steps in section C) +------------------------------------------------------------------------------------------------ + +1. Building ODU binary: a. Build folder cd l2/build/odu - b. Building ODU with O1 module enabled: - make odu MACHINE=BIT64 MODE=FDD O1_ENABLE=YES + b. Building ODU binary + make odu MACHINE= MODE= O1_ENABLE= c. Cleaning ODU binary - make clean_odu MACHINE=BIT64 MODE=FDD + make clean_odu MACHINE= MODE= O1_ENABLE= + +2. Building CU Stub binary: + a. Build folder + cd l2/build/odu + b. Building CU Stub binary + make cu_stub NODE= MACHINE= MODE= O1_ENABLE= + c. Cleaning CU Stub binary + make clean_cu NODE= MACHINE= MODE= O1_ENABLE= - d. Build folder - cd l2/build/o1 - e. Building O1 binary - make o1 MACHINE=BIT64 - f. Cleaning O1 binary - make clean_o1 +3. Building RIC Stub binary: + a. Build folder + cd l2/build/odu + b. Building RIC Stub binary + make ric_stub NODE= MACHINE= MODE= O1_ENABLE= + c. Cleaning RIC Stub binary + make clean_ric NODE= MACHINE= MODE= O1_ENABLE= +4. Cleaning ODU, CU Stub and RIC Stub: + make clean_all -E. How to execute: + +F. How to execute: ------------------ 1. Assign virtual IP addresses as follows: a. ifconfig :ODU "192.168.130.81" b. ifconfig :CU_STUB "192.168.130.82" c. ifconfig :RIC_STUB "192.168.130.80" -2. Execute O1 (only if O-DU is built with O1 interface enabled): - a. O1 execution folder: - cd l2/build/o1/bin/o1 - b. Run O1 binary: - ./o1 +PS: If O1 interface is enabled, IP should match those configured in step C.2.a. -3. Execute CU Stub: +2. Execute CU Stub: a. CU execution folder: cd l2/bin/cu_stub b. Run CU Stub binary: ./cu_stub -4. Execute RIC Stub: +3. Execute RIC Stub: a. RIC execution folder: cd l2/bin/ric_stub b. Run RIC Stub binary: ./ric_stub -5. Execute DU: +4. Execute DU: a. DU execution folder: cd l2/bin/odu b. Run ODU binary: ./odu 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 -F. How to test with Intel L1: + +G. How to test with Intel L1: ----------------------------- I. Compilation @@ -158,19 +193,24 @@ I. Compilation c. Build folder cd l2/build/odu d. Build ODU Binary: - make odu PHY=INTEL_L1 PHY_MODE=TIMER MACHINE=BIT64 MODE=FDD + make odu PHY= PHY_MODE= MACHINE= MODE= 2. Build CU Stub and RIC Stub: - a. Execute steps in sections D.2 and D.3. + a. Execute steps in sections D.3 and D.4 II. Execution - 1. Execute L1: + 1. Refer to below link for assumptions, dependencies, pre-requisites etc for ODU-Low execution + https://docs.o-ran-sc.org/projects/o-ran-sc-o-du-phy/en/latest/ + + 2. Execute L1: a. Setup environment: cd /phy/ source ./setupenv.sh b. Run L1 binary : cd /FlexRAN/l1/bin/nr5g/gnb/l1 - To run in timer mode : ./l1.sh -e + To run + i. In timer mode : ./l1.sh -e + ii. In radio mode : ./l1.sh -xran L1 is up when console prints follow: Non BBU threads in application @@ -181,7 +221,7 @@ II. Execution   PHY>welcome to application console - 2. Execute FAPI Translator: + 3. Execute FAPI Translator: a. Setup environment: cd /phy/ source ./setupenv.sh @@ -189,10 +229,10 @@ II. Execution cd /phy/fapi_5g/bin/ ./oran_5g_fapi --cfg=oran_5g_fapi.cfg - 3. Execute CU Stub and RIC Stub: + 4. Execute CU Stub and RIC Stub: a. Run steps in sections E.1-E.3 - 4. Execute DU: + 5. Execute DU: a. DU execution folder cd l2/bin/odu b. Export WLS library path @@ -201,7 +241,7 @@ II. Execution ./odu -G. How to execute the Health Check : get alarm-list +H. How to execute the Health Check : get alarm-list ---------------------------------------------------- Steps: @@ -211,13 +251,13 @@ G. How to execute the Health Check : get alarm-list 2. Connect to the server with user: netconf - pwd: netconf + pwd: netconf! 3. Send a Netconf get request for alarms xpath Here are the steps as executed in the terminal - netopeer2-cli + $netopeer2-cli > connect --login netconf Interactive SSH Authentication Type your password: @@ -238,3 +278,11 @@ G. How to execute the Health Check : get alarm-list The XML output is a list of active alarms in the O-DU High system. + +G. Troubleshooting Netconf server issues +---------------------------------------- + In case the Netconf server and sysrepo breaks down, run the following steps: + + $cd l2/build/scripts + $sudo ./troubleshoot_netconf.sh cleanup + execute section C.2.f, C.3 again