From afa3f9350047a92dca19e04dc5181f368b281b8b Mon Sep 17 00:00:00 2001 From: HariomGupta Date: Wed, 9 Dec 2020 19:40:23 +0530 Subject: [PATCH] Added details of O1 Module in docs.[Issue-Id: ODUHIGH-256] Signed-off-by: HariomGupta Change-Id: I9cf301ff80ea8bf297cccf48bc7b9c7e0f9754bf --- docs/ODU-O1-Arch.jpg | Bin 0 -> 28769 bytes docs/ODU-O1-GetAlarmListFlow.jpg | Bin 0 -> 114151 bytes docs/README | 73 +++++++++++++++++++++++++++-------- docs/api-docs.rst | 4 ++ docs/developer-guide.rst | 51 ++++++++++++++++++++++--- docs/installation-guide.rst | 50 ++++++++++++++++++++++++ docs/overview.rst | 60 ++++++++++++++++++++++++++--- docs/release-notes.rst | 6 ++- docs/user-guide.rst | 80 ++++++++++++++++++++++++++++++++++++--- 9 files changed, 288 insertions(+), 36 deletions(-) create mode 100644 docs/ODU-O1-Arch.jpg create mode 100644 docs/ODU-O1-GetAlarmListFlow.jpg diff --git a/docs/ODU-O1-Arch.jpg b/docs/ODU-O1-Arch.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06c19846df7446282556f4336f7c88b6360e3610 GIT binary patch literal 28769 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 t3a&Ree5TK;K>qPJ3+k7P`xXB~88!C4Ac#ib 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 literal 0 HcmV?d00001 diff --git a/docs/ODU-O1-GetAlarmListFlow.jpg b/docs/ODU-O1-GetAlarmListFlow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cd205078f4fe8cb9bef4bf4ab1f273d9435ff4a2 GIT binary patch literal 114151 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�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 literal 0 HcmV?d00001 diff --git a/docs/README b/docs/README index 742a102a8..ccceee879 100644 --- a/docs/README +++ b/docs/README @@ -63,10 +63,6 @@ D. 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 @@ -89,12 +85,19 @@ D. How to Clean and Build: 4. Cleaning ODU, CU Stub and RIC Stub: make clean_all -5. Building O1 binary: +5. Building ODU binary with O1 interface enabled: a. Build folder + cd l2/build/odu + b. Building ODU with O1 module enabled: + make odu MACHINE=BIT64 MODE=FDD O1_ENABLE=YES + c. Cleaning ODU binary + make clean_odu MACHINE=BIT64 MODE=FDD + + d. Build folder cd l2/build/o1 - b. Building O1 binary + e. Building O1 binary make o1 MACHINE=BIT64 - c. Cleaning O1 binary + f. Cleaning O1 binary make clean_o1 @@ -105,30 +108,30 @@ E. How to execute: b. ifconfig :CU_STUB "192.168.130.82" c. ifconfig :RIC_STUB "192.168.130.80" -2. Execute CU Stub: +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 + +3. Execute CU Stub: a. CU execution folder: cd l2/bin/cu_stub b. Run CU Stub binary: ./cu_stub -3. Execute RIC Stub: +4. Execute RIC Stub: a. RIC execution folder: cd l2/bin/ric_stub b. Run RIC Stub binary: ./ric_stub -4. Execute DU: +5. Execute DU: a. DU execution folder: cd l2/bin/odu b. Run ODU binary: ./odu -5. Execute O1 - a. O1 execution folder: - cd l2/build/o1/bin/o1 - b. 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 @@ -196,3 +199,41 @@ II. Execution c. Run ODU binary ./odu + +G. How to execute the Health Check : get alarm-list +---------------------------------------------------- + + Steps: + + 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. + diff --git a/docs/api-docs.rst b/docs/api-docs.rst index f6f623c5f..2071c15e8 100644 --- a/docs/api-docs.rst +++ b/docs/api-docs.rst @@ -154,3 +154,7 @@ Additional APIs c. DL RRC Message Response - Informs DU APP if a DL RRC Message was successfuly processed at RLC and sent to MAC. +3. DU APP - O1 Interface + + a. DU sends alarms to O1 for cell up and cell down events using the alarm interface API + diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst index d25404950..6ef573812 100644 --- a/docs/developer-guide.rst +++ b/docs/developer-guide.rst @@ -26,9 +26,9 @@ O-DU High uses C languages. The coding guidelines followed are: .. figure:: LicHeader.jpg :width: 600 - :alt: Figure 6 License Header and Footer + :alt: Figure 8 License Header and Footer - Figure 6 : License Header and Footer + Figure 8 : License Header and Footer O-DU High code --------------- @@ -280,9 +280,9 @@ Here, .. figure:: ModeofCommunication.jpg :width: 600 - :alt: Figure 7 Mode of communication between O-DU High entities + :alt: Figure 9 Mode of communication between O-DU High entities - Figure 7: Mode of communication between O-DU High entities + Figure 9: Mode of communication between O-DU High entities Steps of Communication ++++++++++++++++++++++ @@ -344,9 +344,9 @@ Below figure summarized the above steps of intra O-DU High communication .. figure:: StepsOfCommunication.jpg :width: 600 - :alt: Figure 8 Communication between entities + :alt: Figure 10 Communication between entities - Figure 8: Steps of Communication between O-DU High entities + Figure 10: Steps of Communication between O-DU High entities Communication with Intel O-DU Low @@ -752,3 +752,42 @@ Additional Utility Functions - cnt - number of bytes to be copied - ccnt - number of bytes copied +O1 Module +---------- + +Coding Style +^^^^^^^^^^^^ + +O1 uses GNU C++ language. + +ODU - O1 Communication +^^^^^^^^^^^^^^^^^^^^^^ + +O-DU High and O1 module communicate on a TCP socket. + +O-DU High sends alarm messages in the following structure using Alarm Interface APIs. + + +Alarm Structure + | typedef struct + | { + | MsgHeader msgHeader; /\* Alarm action raise/clear \*/ + | EventType eventType; /\* Alarm event type \*/ + | char objectClassObjectInstance[OBJ_INST_SIZE]; /\* Name of object that raise/clear an alarm \*/ + | char alarmId[ALRM_ID_SIZE]; /\* Alarm Id \*/ + | char alarmRaiseTime[DATE_TIME_SIZE]; /\* Time when alarm is raised \*/ + | char alarmChangeTime[DATE_TIME_SIZE]; /\* Time when alarm is updated \*/ + | char alarmClearTime[DATE_TIME_SIZE]; /\* Time when alarm is cleared \*/ + | char probableCause[TEXT_SIZE]; /\* Probable cause of alarm \*/ + | SeverityLevel perceivedSeverity; /\* Severity level of alarm \*/ + | char rootCauseIndicator[TEXT_SIZE]; /\* Root cause of alarm \*/ + | char additionalText[TEXT_SIZE]; /\* Additional text describing alarm \*/ + | char additionalInfo[TEXT_SIZE]; /\* Any additional information \*/ + | char specificProblem[TEXT_SIZE]; /\* Any specific problem related to alarm \*/ + | }AlarmRecord; + + +O1 - Netconf Communication +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +O1 communicates with the Netconf server using sysrepo and libyang APIs diff --git a/docs/installation-guide.rst b/docs/installation-guide.rst index f2e86be5b..5a4ea45c5 100644 --- a/docs/installation-guide.rst +++ b/docs/installation-guide.rst @@ -24,6 +24,9 @@ Version history | **Date** | **Ver.** | **Author** | **Comment** | | | | | | +--------------------+--------------------+--------------------+--------------------+ +| 2020-12-04 | 1.0.1 | HCL Technologies | Cherry Release | +| | | Ltd. | | ++--------------------+--------------------+--------------------+--------------------+ | 2020-12-04 | 1.0 | Radisys | Cherry Release | | | | | | +--------------------+--------------------+--------------------+--------------------+ @@ -94,6 +97,19 @@ Following libraries are required to compile and execute O-DU High: - Ubuntu : sudo apt-get install -y libpcap-dev - CentOS : sudo yum install -y libpcap-devel +Following libraries are required to compile and execute O1 module: + +- Netconf: + libssh, libyang, libnetconf2, sysrepo, netopeer2 + + Script is provided in the following folder to install these libraries + + - Ubuntu : + + | cd /l2/build/o1 + | sudo ./install_lib.sh + + Cloning code -------------- @@ -118,10 +134,15 @@ Compilation - Clean O-DU High binary make clean_odu MACHINE=BIT64 MODE=FDD + - Build O-DU High binary make odu MACHINE=BIT64 MODE=FDD + + To build with O1 interface enabled: + + make odu MACHINE=BIT64 MODE=FDD O1_ENABLE=YES - Build CU Stub : @@ -151,6 +172,33 @@ Compilation make ric_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD +- Build O-DU High with O1 interface enabled: + + - Navigate to o1 Build folder + + cd /l2/build/o1 + + - Clean O1 binary + + make clean_o1 MACHINE=BIT64 + + - Build O1 binary + + make o1 MACHINE=BIT64 + + - Navigate to odu 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 O1_ENABLE=YES + + The above generated images can be found at: @@ -159,3 +207,5 @@ The above generated images can be found at: - CU Stub - /l2/bin/cu_stub - RIC Stub - /l2/bin/ric_stub + +- O1 - /l2/build/o1/bin/o1 diff --git a/docs/overview.rst b/docs/overview.rst index caeffa656..61f8ff8c3 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -98,6 +98,30 @@ O-DU Utility and Common Functions These modules contain platform specific files and support O-DU High functionality and message exchanges. +O1 Module +^^^^^^^^^^ + +.. figure:: ODU-O1-Arch.jpg + :width: 600 + :alt: Figure 2 O1 Architecture + + Figure 2 - O1 Architecture + +As shown in figure 2 the O1 module in O-DU High runs a separate process and communicates with ODU-High process over a TCP interface. O1 module uses API calls for interacting with the Netconf server(Netopeer) and datastore(sysrepo) for providing the Netconf interface. + +O1 architecture has following components: + +- Netconf Manager: Subscribe to Netconf YANG modules and events. Register callback handler methods. + +- Alarm Manager: Stores and manages(add/updated/delete) alarms. + +- TCP server: Receives the alarm messages sent from O-DU High over TCP socket. + +- TCP Client Alarm Interface : Integrates with O-DU High module and provides an interface for sending the alarm messages to O1 module over TCP socket. + +- Netopeer server: Serves the northbound SMO/OAM Netconf requests. + + O-DU-High Interfaces ====================== @@ -108,10 +132,10 @@ This section describes the other modules that O-DU High interfaces with, as show :width: 600 :alt: O-DU High Interfaces - Figure 2 - O-DU High Interfaces + Figure 3 - O-DU High Interfaces -As shown in Figure 2, O-DU High interfaces with the following modules: +As shown in Figure 3, O-DU High interfaces with the following modules: - O-CU: O-DU High communicates with O-CU on the F1AP interface. The control message exchanges are on F1-C while data message exchanges are on F1-U interfaces. The below F1AP messages on F1-C are implemented, as per @@ -204,10 +228,10 @@ This section describes the cell-up procedure within O-DU High. :width: 720 :alt: Cell Up and Broadcast Procedure - Figure 3 - O-DU High Cell Up and Broadcast Procedure + Figure 4 - O-DU High Cell Up and Broadcast Procedure -As seen in the Figure 3, +As seen in the Figure 4, - The DU APP module of O-DU High sends F1 Setup Request to O-CU. This message contains a list of cells that the O-DU High has been configured with. - The O-CU responds with F1 Setup Response. This message contains a list of cells which must be activated. @@ -283,15 +307,39 @@ The above channels are used to achieve the below messages: - RRC Reconfiguration Complete -Figure 4 below depicts the above call flow, inclusive of all interfaces: +Figure 5 below depicts the above call flow, inclusive of all interfaces: .. figure:: UeAttach.png :width: 800 :alt: O-DU High UE Attach Flow - Figure 4 - UE Attach Flow + Figure 5 - UE Attach Flow + + +O1 Netconf get-alarm list procedure +----------------------------------- + +This section describes the *Health Status Retrieval* scenario of O-DU High health-check. It enables a northbound client(SMO) to retrieve the health of the ODU-High based on the last self-check performed. The alarm-list is provided as the response to the request via O1 Netconf interface. + + +.. figure:: ODU-O1-GetAlarmListFlow.jpg + :width: 720 + :alt: Figure 6 O1 get alarm-list flow + + Figure 6 - O1 get alarm-list flow + + +As seen in the Figure 6, + +- On the cell state change from de-active to activate, ODU High process raises a cell up alarm message and sends it over the TCP socket using the TCP client Alarm Interface API. + +- On other side a TCP server, running as a thread, in O1 module receives the cell up alarm message and it passes the alarm information to the Alarm Manager. + +- Alarm Manager stores the alarm data in a list. +- Whenever SMO/OAM requires the current alarm list, it sends a Netconf get request. The request is received by the Netopeer Server and a callback method, registered with the Netconf Manager, is invoked. +- The callback function fetches the alarm list from Alarm Manager and sends it back to the client (SMO/OAM) via Netconf interface. OSC Testcases Supported ========================= diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 61f405bf3..eebe87bf3 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -20,8 +20,8 @@ Version history | **Date** | **Ver.** | **Author** | **Comment** | | | | | | +--------------------+--------------------+--------------------+--------------------+ -| 2020-12-04 | 3.0.0 | Radisys | Cherry Release | -| | | | | +| 2020-12-04 | 3.0.0 | Radisys, HCL | Cherry Release | +| | | Technologies Ltd. | | +--------------------+--------------------+--------------------+--------------------+ | 2020-06-17 | 2.0.0 | Radisys | Bronze Release | | | | | | @@ -318,6 +318,8 @@ System Limitations - O-DU High has not been integrated with O-DU Low and O-CU. +- O-DU High O1 module has not been integrated with SMO/OAM so a Netconf CLI client is used to demo the get alarm-list flow + Known Issues ^^^^^^^^^^^^^ None diff --git a/docs/user-guide.rst b/docs/user-guide.rst index eb5ccfc98..8a1f7b60e 100644 --- a/docs/user-guide.rst +++ b/docs/user-guide.rst @@ -24,7 +24,35 @@ I. Execution - On locally compiling O-DU High Source Code b. ifconfig :CU_STUB "192.168.130.82" c. ifconfig :RIC_STUB "192.168.130.80" -2. Execute CU Stub: +2. Execute O1 (only if O-DU is built with O1 interface enabled): + + a. Navigate to O1 build folder + + - 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 + + | 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 + + sysrepoctl -i ./yang/o-ran-sc-odu-alarm-v1.yang + + c. Navigate to O1 execution folder + + - cd /l2/build/o1/bin/o1 + + d. Run O1 binary + + - ./o1 + +3. Execute CU Stub: a. Navigate to CU execution folder @@ -34,7 +62,7 @@ I. Execution - On locally compiling O-DU High Source Code - ./cu_stub -3. Execute RIC Stub: +4. Execute RIC Stub: a. Navigate to RIC execution folder @@ -44,7 +72,7 @@ I. Execution - On locally compiling O-DU High Source Code - ./ric_stub -4. Execute O-DU High: +5. Execute O-DU High: a. Navigate to ODU execution folder @@ -54,7 +82,7 @@ I. Execution - On locally compiling O-DU High Source Code - ./odu -PS: CU stub and RIC stub must be run (in no particular sequence) before ODU +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. II. Execution - Using Docker Images ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -193,10 +221,50 @@ Following diagram shows P5 messages exchanged with O-DU Low in timer mode. .. 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 5 - 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 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. -- 2.16.6