From bd13ba3b2661a413492608b9cb16c699b3831d5e Mon Sep 17 00:00:00 2001 From: sphoorthi Date: Mon, 30 Nov 2020 15:21:49 +0530 Subject: [PATCH] Documentation updates Change-Id: I12acb9ebeb005e358dfaa5e936845ea1867bbe7b Signed-off-by: sphoorthi --- container-tag.yaml | 2 +- ...-L2_Message_Flow.jpg => O-DU_High_Low_Flow.jpg} | Bin docs/api-docs.rst | 2 +- docs/installation-guide.rst | 94 ++++++++++++-- docs/overview.rst | 4 +- docs/release-notes.rst | 2 +- docs/user-guide.rst | 138 +++++++++------------ 7 files changed, 144 insertions(+), 98 deletions(-) rename docs/{L1-L2_Message_Flow.jpg => O-DU_High_Low_Flow.jpg} (100%) diff --git a/container-tag.yaml b/container-tag.yaml index 7d9b19595..ecd34c676 100644 --- a/container-tag.yaml +++ b/container-tag.yaml @@ -1,4 +1,4 @@ # The Jenkins job requires a tag to build the Docker image. # Global-JJB script assumes this file is in the repo root. --- -tag: 2.0.3 +tag: 3.0.1 diff --git a/docs/L1-L2_Message_Flow.jpg b/docs/O-DU_High_Low_Flow.jpg similarity index 100% rename from docs/L1-L2_Message_Flow.jpg rename to docs/O-DU_High_Low_Flow.jpg diff --git a/docs/api-docs.rst b/docs/api-docs.rst index c36e1e58b..f85c0c23c 100644 --- a/docs/api-docs.rst +++ b/docs/api-docs.rst @@ -4,7 +4,7 @@ API-Docs -======== +********** This is the API-docs for Cherry relase o-du/l2. diff --git a/docs/installation-guide.rst b/docs/installation-guide.rst index ce5c3d860..d99fcd40a 100644 --- a/docs/installation-guide.rst +++ b/docs/installation-guide.rst @@ -5,7 +5,9 @@ :depth: 3 :local: -======== +O-DU High Installation Guide +***************************** + Abstract ======== @@ -16,7 +18,7 @@ This document describes how to install O-DU High, it's dependencies and required :local: Version history ---------------------- + +--------------------+--------------------+--------------------+--------------------+ | **Date** | **Ver.** | **Author** | **Comment** | @@ -30,8 +32,7 @@ Version history Introduction ============ -This document describes the hardware and software requirements along with guidelines on how to install and configure the -O-DU High. +This document describes the hardware and software requirements along with guidelines on how to install O-DU High. The audience of this document is assumed to have good knowledge in RAN concepts and Linux system. @@ -39,7 +40,7 @@ The audience of this document is assumed to have good knowledge in RAN concepts Preface ======= -Before starting the installation of O-DU High, the source can be built or docker image can be downloaded. +O-DU High images can be built using the source code or corresponding docker images can be downloaded. Hardware requirements @@ -53,7 +54,7 @@ Following minimum hardware requirements must be met for installation of O-DU Hig +--------------------+----------------------------------------------------+ | **# of servers** | 1 | +--------------------+----------------------------------------------------+ -| **CPU** | 5 | +| **CPU** | 4 | | | | +--------------------+----------------------------------------------------+ | **RAM** | 8G | @@ -62,23 +63,28 @@ Following minimum hardware requirements must be met for installation of O-DU Hig | **Disk** | 500G | | | | +--------------------+----------------------------------------------------+ -| **NICs** | 3 | +| **NICs** | 1 | | | | +--------------------+----------------------------------------------------+ - - - Software installation and deployment ========================================== This section describes the installation of the O-DU High on the reference hardware. Libraries -^^^^^^^^^^ +---------- + +Following libraries are required to compile and execute O-DU High: + +- GCC + - Ubuntu : sudo apt install build-essential + - CentOS : sudo yum group install "Development Tools" -- GCC version 4.6.3 and above + Ensure the version is 4.6.3 and above using + + - gcc --version - LKSCTP - Ubuntu : sudo apt-get install -y libsctp-dev @@ -88,4 +94,68 @@ Libraries - Ubuntu : sudo apt-get install -y libpcap-dev - CentOS : yum install libpcap-devel +Cloning code +-------------- + +- Create a folder to clone the O-DU High code into. The folder is hereafter referred to as . + +- Clone code into + + git clone "https://gerrit.o-ran-sc.org/r/o-du/l2" && (cd "l2" && mkdir -p .git/hooks && curl -Lo `git rev-parse + --git-dir`/hooks/commit-msg https://gerrit.o-ran-sc.org/r/tools/hooks/commit-msg; chmod +x `git rev-parse + --git-dir`/hooks/commit-msg) + + +Compilation +------------ + +- Build O-DU High: + + - Navigate to Build folder + + cd /l2/build/odu + + - Clean O-DU High binary + + make clean_odu MACHINE=BIT64 MODE=FDD + + - Build O-DU High binary + + make odu MACHINE=BIT64 MODE=FDD + +- Build CU Stub : + + - Navigate to Build folder + + cd /l2/build/odu + + - Clean CU Stub binary + + make clean_cu NODE=TEST_STUB MACHINE=BIT64 MODE=FDD + + - Build CU Stub binary + + make cu_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD + +- Build RIC Stub : + + - Navigate to Build folder + + cd /l2/build/odu + + - Clean RIC Stub binary + + make clean_ric NODE=TEST_STUB MACHINE=BIT64 MODE=FDD + + - Build RIC Stub binary + + make ric_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD + + +The above generated images can be found at: + +- O-DU High - /l2/bin/odu + +- CU Stub - /l2/bin/cu_stub +- RIC Stub - /l2/bin/ric_stub diff --git a/docs/overview.rst b/docs/overview.rst index f41bc1d9d..caeffa656 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -2,10 +2,12 @@ .. SPDX-License-Identifier: CC-BY-4.0 +O-DU High Overview +********************* + O-DU High Architecture ====================== - O-DU implements the functional blocks of L2 layer of a 5G NR protocol stack in SA(StandAlone) mode. These layers primarily include NR MAC, NR Scheduler and NR RLC layers. diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 754edec99..5b193008b 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -3,7 +3,7 @@ Release-Notes -============= +************** This document provides the release notes for Bronze Release of O-DU-L2. diff --git a/docs/user-guide.rst b/docs/user-guide.rst index afe00cbc6..b58f85ab8 100644 --- a/docs/user-guide.rst +++ b/docs/user-guide.rst @@ -4,7 +4,7 @@ User Guide -========== +*********** This is the user guide for Cherry release of O-DU/l2. @@ -12,59 +12,13 @@ This is the user guide for Cherry release of O-DU/l2. :depth: 3 :local: -A. Compilation: ---------------- -1. Build O-DU High: - - a. Build folder - - - cd /l2/build/odu - - b. Build O-DU High binary - - - make odu MACHINE=BIT64 MODE=FDD - - c. Clean O-DU High binary - - - make clean_odu MACHINE=BIT64 MODE=FDD - -2. Build CU Stub : - - a. Build folder - - - cd /l2/build/odu - - b. Build CU Stub binary - - - make cu_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD - - c. Clean CU Stub binary - - - make clean_cu NODE=TEST_STUB MACHINE=BIT64 MODE=FDD - -3. Build RIC Stub : - - a. Build folder - - - cd /l2/build/odu - - b. Build RIC Stub binary - - - make ric_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD - - c. Clean RIC Stub binary - - - make clean_ric NODE=TEST_STUB MACHINE=BIT64 MODE=FDD - -4. Clean ODU, CU Stub and RIC Stub together - - a. make clean_all - - -B. Execution: +A. Execution: ------------- +I. Execution - On locally compiling O-DU High Source Code +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 1. Assign virtual IP addresses as follows: a. ifconfig :ODU "192.168.130.81" @@ -73,9 +27,9 @@ B. Execution: 2. Execute CU Stub: - a. CU execution folder + a. Navigate to CU execution folder - - cd /l2/bin/cu_stub + - cd /l2/bin/cu_stub b. Run CU Stub binary @@ -83,19 +37,19 @@ B. Execution: 3. Execute RIC Stub: - a. RIC execution folder + a. Navigate to RIC execution folder - - cd /l2/bin/ric_stub + - cd /l2/bin/ric_stub b. Run RIC Stub binary - ./ric_stub -4. Execute DU: +4. Execute O-DU High: - a. DU execution folder + a. Navigate to ODU execution folder - - cd /l2/bin/odu + - cd /l2/bin/odu b. Run ODU binary @@ -103,20 +57,43 @@ B. Execution: PS: CU stub and RIC stub must be run (in no particular sequence) before ODU +II. Execution - Using Docker Images +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The call flow between O-DU High and CU Stub can be achieved by executing docker containers. + +- 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 + +- 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 + +- 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. 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. -C. Testing with Intel O-DU Low: -------------------------------- I. 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 @@ -131,17 +108,14 @@ 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 ^^^^^^^^^^^^^ @@ -150,12 +124,12 @@ II. Execution 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: @@ -171,45 +145,45 @@ 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 - Figure 1 - O-DU High - O-DU Low Message Flow Diagram + Figure 5 - 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 . -- 2.16.6