Merge "Developer-guide.rst"
authorHarshita Lal <harshita.lal@radisys.com>
Mon, 30 Nov 2020 15:31:13 +0000 (15:31 +0000)
committerGerrit Code Review <gerrit@o-ran-sc.org>
Mon, 30 Nov 2020 15:31:13 +0000 (15:31 +0000)
1  2 
docs/api-docs.rst
docs/user-guide.rst

diff --combined docs/api-docs.rst
@@@ -4,7 -4,7 +4,7 @@@
  
  
  API-Docs
 -========
 +**********
  
  This is the API-docs for Cherry relase o-du/l2.
  
@@@ -134,8 -134,6 +134,6 @@@ API Function
  Additional APIs
  ----------------
  
- These APIs are not defined in the AAD Spec but were implemented in O-DU High to achieve UE attach.
  1. DU APP - MAC Interface
  
     A. DU APP to MAC
diff --combined docs/user-guide.rst
@@@ -1,10 -1,8 +1,8 @@@
  .. This work is licensed under a Creative Commons Attribution 4.0 International License.
  .. http://creativecommons.org/licenses/by/4.0
- .. (c) <optionally add copywriters name>
  
  User Guide
 -==========
 +***********
  
  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 <rsys_directory>/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 <rsys_directory>/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 <rsys_directory>/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 <interface name>:ODU "192.168.130.81"
@@@ -27,9 -71,9 +25,9 @@@
  
  2. Execute CU Stub:
  
 -   a. CU execution folder
 +   a. Navigate to CU execution folder
  
 -      - cd <rsys_directory>/l2/bin/cu_stub
 +      - cd <O-DU High Directory>/l2/bin/cu_stub
  
     b. Run CU Stub binary
  
  
  3. Execute RIC Stub:
  
 -   a. RIC execution folder
 +   a. Navigate to RIC execution folder
  
 -      - cd <rsys_directory>/l2/bin/ric_stub
 +      - cd <O-DU High Directory>/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 <rsys_directory>/l2/bin/odu
 +      - cd <O-DU High Directory>/l2/bin/odu
  
     b. Run ODU binary
  
  
  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 <rsys_directory>/l2/src/wls_lib. Copy wls_lib.h from <intel_directory>/phy/wls_lib/ to 
 -         <rsys_directory>/l2/src/wls_lib.
 +      a. Create folder <O-DU High Directory>/l2/src/wls_lib. Copy wls_lib.h from <O-DU Low Directory>/phy/wls_lib/ to 
 +         <O-DU High Directory>/l2/src/wls_lib.
  
 -      b. Create folder <rsys_directory>/l2/src/dpdk_lib. Copy following files from
 -         <intel_directory>/dpdk-19.11/x86_64-native-linuxapp-gcc/include/ to <rsys_directory>/l2/src/dpdk_lib.
 +      b. Create folder <O-DU High Directory>/l2/src/dpdk_lib. Copy following files from
 +         <O-DU Low Directory>/dpdk-19.11/x86_64-native-linuxapp-gcc/include/ to <O-DU High Directory>/l2/src/dpdk_lib.
           
           - rte_branch_prediction.h
           - rte_common.h
           - rte_os.h
           - rte_per_lcore.h
  
 -      c. Build folder
 +      c. Navigate to build folder
  
 -         - cd <rsys_directory>/l2/build/odu
 +         - cd <O-DU High Directory>/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
  ^^^^^^^^^^^^^
  
        a. Setup environment:
        
 -         - cd <intel_directory>/phy/
 +         - cd <O-DU Low Directory>/phy/
           - source ./setupenv.sh
  
        b. Run O-DU Low binary :
        
 -         - cd <intel_directory>/FlexRAN/l1/bin/nr5g/gnb/l1
 +         - cd <O-DU Low Directory>/FlexRAN/l1/bin/nr5g/gnb/l1
           - To run in timer mode : ./l1.sh -e
           - L1 is up when following prints are seen on console:
  
  
        a. Setup environment:
     
 -         - cd <intel_directory>/phy/
 +         - cd <O-DU Low Directory>/phy/
           - source ./setupenv.sh
  
        b. Run FAPI translator binary:
  
 -         - cd <intel_directory>/phy/fapi_5g/bin/
 +         - cd <O-DU Low Directory>/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 <rsys_directory>/l2/bin/odu
 +         - cd <O-DU High Directory>/l2/bin/odu
        
        b. Export WLS library path
  
 -         - export LD_LIBRARY_PATH=<intel_directory>/phy/wls_lib/lib:$LD_LIBRARY_PATH
 +         - export LD_LIBRARY_PATH=<O-DU Low Directory>/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 .