X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docs%2Fuser-guide.rst;h=8a1f7b60e16bbc1a03ef5566aeb633b245ab5871;hb=6946c38335eb7394883a6f2686b2e6417e8ceb6f;hp=d297b86f8a9de8817534accbec8bc5c4dcc2aa18;hpb=37badc1a711fc7802d2f0b67924f3c15e569a7d5;p=o-du%2Fl2.git diff --git a/docs/user-guide.rst b/docs/user-guide.rst index d297b86f8..8a1f7b60e 100644 --- a/docs/user-guide.rst +++ b/docs/user-guide.rst @@ -2,119 +2,139 @@ .. http://creativecommons.org/licenses/by/4.0 User Guide -========== +*********** This is the user guide for Cherry release of O-DU/l2. +Follow installation-guide to get all the dependencies ready. .. contents:: :depth: 3 :local: -A. Compilation: ---------------- -1. Build O-DU High: +A. Execution: +------------- - a. Build folder +I. Execution - On locally compiling O-DU High Source Code +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - cd /l2/build/odu +1. Assign virtual IP addresses as follows: - b. Build O-DU High binary - - - make odu MACHINE=BIT64 MODE=FDD + a. ifconfig :ODU "192.168.130.81" + b. ifconfig :CU_STUB "192.168.130.82" + c. ifconfig :RIC_STUB "192.168.130.80" - c. Clean O-DU High binary +2. Execute O1 (only if O-DU is built with O1 interface enabled): - - make clean_odu MACHINE=BIT64 MODE=FDD + a. Navigate to O1 build folder -2. Build CU Stub : + - cd /l2/build/o1 + + b. Create a new netconf user and install the YANG module + + Switch to root user and run following commands + + | adduser --system netconf && \\ + | echo "netconf:netconf" | chpasswd - a. Build folder - - - cd /l2/build/odu + | 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 - b. Build CU Stub binary - - - make cu_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD + sysrepoctl -i ./yang/o-ran-sc-odu-alarm-v1.yang - c. Clean CU Stub binary - - - make clean_cu NODE=TEST_STUB MACHINE=BIT64 MODE=FDD + c. Navigate to O1 execution folder -3. Build RIC Stub : + - cd /l2/build/o1/bin/o1 - a. Build folder - - - cd /l2/build/odu + d. Run O1 binary + + - ./o1 - b. Build RIC Stub binary - - - make ric_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD +3. Execute CU Stub: - c. Clean RIC Stub binary - - - make clean_ric NODE=TEST_STUB MACHINE=BIT64 MODE=FDD + a. Navigate to CU execution folder -4. Clean ODU, CU Stub and RIC Stub together + - cd /l2/bin/cu_stub - a. make clean_all + b. Run CU Stub binary + - ./cu_stub -B. Execution: -------------- +4. Execute RIC Stub: -1. Assign virtual IP addresses as follows: + a. Navigate to RIC execution folder - a. ifconfig :ODU "192.168.130.81" - b. ifconfig :CU_STUB "192.168.130.82" - c. ifconfig :RIC_STUB "192.168.130.80" + - cd /l2/bin/ric_stub -2. Execute CU Stub: + b. Run RIC Stub binary - a. CU execution folder + - ./ric_stub - - cd /l2/bin/cu_stub +5. Execute O-DU High: - b. Run CU Stub binary + a. Navigate to ODU execution folder - - ./cu_stub + - cd /l2/bin/odu -3. Execute RIC Stub: + b. Run ODU binary - a. RIC execution folder + - ./odu - - cd /l2/bin/ric_stub +PS: CU stub and RIC stub must be run (in no particular sequence) before ODU. If O-DU High is built with O1 interface enabled, the O1 binary must be run before all other binaries. - b. Run RIC Stub binary +II. Execution - Using Docker Images +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - ./ric_stub +The call flow between O-DU High and CU Stub can be achieved by executing docker containers. -4. Execute DU: +- Pull the last built docker images: + - docker pull nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2:3.0.1 + - docker pull nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2-cu-stub:3.0.1 - a. DU execution folder +- Run CU Stub docker: + - docker run -it --privileged --net=host --entrypoint bash + nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2-cu-stub:3.0.1 + - ./cu_stub - - cd /l2/bin/odu +- Run ODU docker: + - docker run -it --privileged --net=host --entrypoint bash + nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2:3.0.1 + - ./odu - b. Run ODU binary - - ./odu +B. Pairwise testing with Intel O-DU Low: +----------------------------------------- + +This section describes the changes required in compilation and execution of O-DU High binaries to successfully integrate +with Intel O-DU Low in timer mode. -PS: CU stub and RIC stub must be run (in no particular sequence) before ODU +I. Pre-requisites +^^^^^^^^^^^^^^^^^^ -C. Testing with Intel O-DU Low: -------------------------------- + 1. Install O-DU High as per installation-guide . -I. Compilation -^^^^^^^^^^^^^^ + 2. Clone O-DU Low code in from + + a. https://gerrit.o-ran-sc.org/r/admin/repos/o-du/phy and, + + b. https://github.com/intel/FlexRAN + + 3. Install O-DU Low as per https://docs.o-ran-sc.org/projects/o-ran-sc-o-du-phy/en/latest/index.html . + + +II. Compilation +^^^^^^^^^^^^^^^^ 1. Build ODU : - a. Create folder /l2/src/wls_lib. Copy wls_lib.h from /phy/wls_lib/ to - /l2/src/wls_lib. + a. Create folder /l2/src/wls_lib. Copy wls_lib.h from /phy/wls_lib/ to + /l2/src/wls_lib. - b. Create folder /l2/src/dpdk_lib. Copy following files from - /dpdk-19.11/x86_64-native-linuxapp-gcc/include/ to /l2/src/dpdk_lib. + b. Create folder /l2/src/dpdk_lib. Copy following files from + /dpdk-19.11/x86_64-native-linuxapp-gcc/include/ to /l2/src/dpdk_lib. - rte_branch_prediction.h - rte_common.h @@ -129,31 +149,28 @@ I. Compilation - rte_os.h - rte_per_lcore.h - c. Build folder + c. Navigate to build folder - - cd /l2/build/odu + - cd /l2/build/odu d. Build ODU Binary: - make odu PHY=INTEL_L1 PHY_MODE=TIMER MACHINE=BIT64 MODE=FDD - 2. Build CU Stub and RIC Stub: - - a. Execute steps in sections A.2 and A.3. -II. Execution -^^^^^^^^^^^^^ +III. Execution +^^^^^^^^^^^^^^^ 1. Execute O-DU Low: a. Setup environment: - - cd /phy/ + - cd /phy/ - source ./setupenv.sh b. Run O-DU Low binary : - - cd /FlexRAN/l1/bin/nr5g/gnb/l1 + - cd /FlexRAN/l1/bin/nr5g/gnb/l1 - To run in timer mode : ./l1.sh -e - L1 is up when following prints are seen on console: @@ -169,45 +186,85 @@ II. Execution a. Setup environment: - - cd /phy/ + - cd /phy/ - source ./setupenv.sh b. Run FAPI translator binary: - - cd /phy/fapi_5g/bin/ + - cd /phy/fapi_5g/bin/ - ./oran_5g_fapi --cfg=oran_5g_fapi.cfg 3. Execute CU Stub and RIC Stub: - a. Run steps in sections B.1-B.3. + a. Run steps in sections A.I.1 through A.I.3 . 4. Execute DU: a. DU execution folder - - cd /l2/bin/odu + - cd /l2/bin/odu b. Export WLS library path - - export LD_LIBRARY_PATH=/phy/wls_lib/lib:$LD_LIBRARY_PATH + - export LD_LIBRARY_PATH=/phy/wls_lib/lib:$LD_LIBRARY_PATH c. Run ODU binary - ./odu -D. Message Flow: +C. Message Flow: ---------------- O-DU High opens WLS interface during bring up. Message exchanges can begin once the interface is ready. -Following diagram shows P5 messages exchange with O-DU Low in timer mode. +Following diagram shows P5 messages exchanged with O-DU Low in timer mode. -.. figure:: L1-L2_Message_Flow.jpg +.. figure:: O-DU_High_Low_Flow.jpg :width: 600 - :alt: Figure 1 O-DU High - O-DU Low Message Flow Diagram + :alt: Figure 7 O-DU High - O-DU Low Message Flow Diagram - Figure 1 - O-DU High - O-DU Low Message Flow Diagram + Figure 7 - O-DU High - O-DU Low Message Flow Diagram Note: UL IQ-Sample request and response are needed by Intel O-DU Low in timer mode(testing mode) only. Code changes for -these are guarded under INTEL_TIMER_MODE flag which can be enabled using compilation option "PHY_MODE=TIMER", as mention -in section C.I.1.d . +these are guarded under INTEL_TIMER_MODE flag which can be enabled using compilation option "PHY_MODE=TIMER", as +mentioned in section B.I.1.d . + + +D. Health Check execution: get alarm-list +------------------------------------------- + +To execute the get alarm-list flow, following steps are required to be executed: + + 1. Start Netconf netopeer client + + 2. Connect to the server with + + | user: netconf + | pwd: netconf + + 3. Send a Netconf get request for alarms xpath + +Here are the steps as executed in the terminal + + | netopeer2-cli + | > connect --login netconf + | Interactive SSH Authentication + | Type your password: + | Password: + | > get --filter-xpath /o-ran-sc-odu-alarm-v1\:odu/alarms + | DATA + | + | + | + | 1009 + | cell id [1] is up + | 2 + | Active + | cell UP + | + | + | + +The XML output is a list of active alarms in the O-DU High system. + +Note: Integration with SMO/OAM is not yet done so a Netconf CLI client(netopeer2-cli) is used to connect to the Netconf server and send the get request.