J-Release Documentation
[o-du/l2.git] / docs / installation-guide.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3
4 O-DU High Installation Guide
5 *****************************
6
7 This document describes how to install O-DU High, it's dependencies and required system resources.
8
9 .. contents::
10    :depth: 3
11    :local:
12
13
14 Version history
15 ---------------
16
17 +--------------------+--------------------+--------------------+--------------------+
18 | **Date**           | **Ver.**           | **Author**         | **Comment**        |
19 |                    |                    |                    |                    |
20 +--------------------+--------------------+--------------------+--------------------+
21 | 2023-06-10         |  8.0.1             |  Radisys           |  J release         |
22 |                    |                    |                    |                    |
23 +--------------------+--------------------+--------------------+--------------------+
24 | 2023-12-14         |  7.0.1             |  Radisys           |  I release         |
25 |                    |                    |                    |                    |
26 +--------------------+--------------------+--------------------+--------------------+
27 | 2023-06-13         |  6.0.1             |  Radisys           |  H release         |
28 |                    |                    |                    |                    |
29 +--------------------+--------------------+--------------------+--------------------+
30 | 2022-12-15         |  5.0.1             |  Radisys,          |  G release         |
31 |                    |                    |  HCL Technologies  |                    |
32 |                    |                    |  Ltd.              |                    |
33 +--------------------+--------------------+--------------------+--------------------+
34 | 2022-06-16         |  4.0.0             |  Radisys,          |  F release         |
35 |                    |                    |  HCL Technologies  |                    |
36 |                    |                    |  Ltd.              |                    |
37 +--------------------+--------------------+--------------------+--------------------+
38 | 2022-01-14         |  3.0.0             |  Radisys,          |  e-release         |
39 |                    |                    |  HCL Technologies  |                    |
40 |                    |                    |  Ltd.              |                    |
41 +--------------------+--------------------+--------------------+--------------------+
42 | 2021-07-07         |  2.0.0             |  Radisys,          |  D Release         |
43 |                    |                    |  HCL Technologies  |                    |
44 |                    |                    |  Ltd.              |                    |
45 +--------------------+--------------------+--------------------+--------------------+
46 | 2020-12-04         |  1.0.1             |  HCL Technologies  |  Cherry Release    |
47 |                    |                    |  Ltd.              |                    |
48 +--------------------+--------------------+--------------------+--------------------+
49 | 2020-12-04         |  1.0               |  Radisys           |  Cherry Release    |
50 |                    |                    |                    |                    |
51 +--------------------+--------------------+--------------------+--------------------+
52
53
54 Introduction
55 ------------
56
57 This document describes the hardware and software requirements along with guidelines on how to install O-DU High.
58
59 The audience of this document is assumed to have good knowledge in RAN concepts and Linux system.
60
61
62 Preface
63 -------
64
65 O-DU High images can be built using the source code or corresponding docker images can be downloaded.
66
67
68 Hardware requirements
69 ---------------------
70
71 Following minimum hardware requirements must be met for installation of O-DU High
72
73 +--------------------+----------------------------------------------------+
74 | **HW Aspect**      | **Requirement**                                    |
75 |                    |                                                    |
76 +--------------------+----------------------------------------------------+
77 | **# of servers**   |  1                                                 |
78 +--------------------+----------------------------------------------------+
79 | **CPU**            |  4                                                 |
80 |                    |                                                    |
81 +--------------------+----------------------------------------------------+
82 | **RAM**            |  8G                                                |
83 |                    |                                                    |
84 +--------------------+----------------------------------------------------+
85 | **Disk**           |  500G                                              |
86 |                    |                                                    |
87 +--------------------+----------------------------------------------------+
88 | **NICs**           |  1                                                 |
89 |                    |                                                    |
90 +--------------------+----------------------------------------------------+
91
92
93 Software installation and deployment
94 -------------------------------------
95
96 This section describes the installation of the O-DU High on the reference hardware.
97
98 Libraries
99 =========
100
101 Following libraries are required to compile and execute O-DU High:
102
103 - GCC 
104    - Ubuntu : sudo apt-get install -y build-essential
105    - CentOS : sudo yum groups mark install -y “Development Tools”
106
107    Ensure the version is 11.4.0 and above using
108
109    -    gcc --version
110
111 - LKSCTP
112    - Ubuntu : sudo apt-get install -y libsctp-dev
113    - CentOS : sudo yum install -y lksctp-tools-devel
114
115 - PCAP:
116    - Ubuntu : sudo apt-get install -y libpcap-dev
117    - CentOS : sudo yum install -y libpcap-devel
118
119 - libxml2
120    - Ubuntu : sudo apt-get install -y libxml2-dev
121    - CentOS : sudo yum install -y libxml2
122
123
124 Cloning code
125 ============
126
127 - Create a folder to clone the O-DU High code into. The folder is hereafter referred to as <O-DU High Directory>.
128
129 - Clone code into <O-DU High Directory> 
130
131   git clone "https://gerrit.o-ran-sc.org/r/o-du/l2"
132
133
134 Setting up Netconf server (Only if O1 interface enabled)
135 ========================================================
136
137   Following steps are required to compile and run ODU with O1 interface enabled.
138
139 - Create a new netconf user
140
141       Switch to root user or use sudo and run following commands
142
143    - Ubuntu :
144       | cd <O-DU High Directory>/l2/build/scripts
145       | sudo ./add_netconf_user.sh
146
147 - Install Netconf libraries:
148
149    libssh, libyang, libnetconf2, sysrepo, netopeer2
150
151    Script is provided in the following folder to install these libraries
152
153    - Ubuntu :
154        | cd <O-DU High Directory>/l2/build/scripts
155        | sudo ./install_lib_O1.sh -c
156
157 - Install the YANG modules and load initial configuration
158
159     - Navigate to config folder and update the desired initial configuration
160
161       | cd <O-DU High Directory>/l2/build/config
162
163       | Open the startup_config.xml and edit the desired IP and Port for CU, DU and RIC.
164       | Open the nacm_config.xml and edit the desired user name to provide the access to that user.
165       | Open the netconf_server_ipv6.xml and edit the desired netconf server configuration.
166       | Open the oamVesConfig.json and edit the details of OAM VES collector.
167       | Open the smoVesConfig.json and edit the details of SMO VES collector.
168       | Open the netconfConfig.json and edit the details of Netopeer server.
169
170 - Install the yang modules and load initial configuration.
171
172       - Ubuntu :
173       
174       | $cd <O-DU High Directory>/l2/build/scripts
175       | $sudo ./load_yang.sh
176
177 - Start Netopeer2-server:
178
179    - Ubuntu :
180        | cd <O-DU High Directory>/l2/build/scripts
181        | sudo ./netopeer-server.sh start
182
183 - In case standard defined VES format is to be enabled (this step is optional): 
184       
185       | cd l2/src/o1/ves
186             
187       | Enable the Macro "StdDef" in file VesUtils.h      
188       | #define StdDef
189
190 Compilation
191 ===========
192
193 - Build O-DU High:
194
195    - Navigate to Build folder
196
197        cd <O-DU High Directory>/l2/build/odu
198
199    - Clean O-DU High binary
200
201        make clean_odu MACHINE=BIT64 MODE=FDD
202        
203
204    - Compile O-DU High binary
205    
206        make odu MACHINE=BIT64 MODE=FDD
207        
208
209 - Build CU Stub :
210
211    - Navigate to Build folder
212    
213        cd <O-DU High Directory>/l2/build/odu
214
215    - Clean CU Stub binary
216    
217        make clean_cu NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
218
219    - Compile CU Stub binary
220    
221        make cu_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
222
223 - Build RIC Stub :
224
225    - Navigate to Build folder
226    
227        cd <O-DU High Directory>/l2/build/odu
228
229    - Clean RIC Stub binary
230    
231        make clean_ric NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
232
233    - Compile RIC Stub binary
234    
235        make ric_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD
236
237
238 Compilation with O1 interface enabled
239 =====================================
240
241 - Build O-DU High:
242
243    - Navigate to Build folder
244
245        cd <O-DU High Directory>/l2/build/odu
246
247    - Clean O-DU High binary
248
249        make clean_odu MACHINE=BIT64 MODE=FDD O1_ENABLE=YES
250        
251
252    - Compile O-DU High binary
253    
254        make odu MACHINE=BIT64 MODE=FDD O1_ENABLE=YES
255        
256
257 - Build CU Stub :
258
259    - Navigate to Build folder
260    
261        cd <O-DU High Directory>/l2/build/odu
262
263    - Clean CU Stub binary
264    
265        make clean_cu NODE=TEST_STUB MACHINE=BIT64 MODE=FDD O1_ENABLE=YES
266
267    - Compile CU Stub binary
268    
269        make cu_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD O1_ENABLE=YES
270
271 - Build RIC Stub :
272
273    - Navigate to Build folder
274    
275        cd <O-DU High Directory>/l2/build/odu
276
277    - Clean RIC Stub binary
278    
279        make clean_ric NODE=TEST_STUB MACHINE=BIT64 MODE=FDD O1_ENABLE=YES
280
281    - Compile RIC Stub binary
282    
283        make ric_stub NODE=TEST_STUB MACHINE=BIT64 MODE=FDD O1_ENABLE=YES
284
285
286
287 The above generated images can be found at:
288
289 - O-DU High - <O-DU High Directory>/l2/bin/odu
290
291 - CU Stub   - <O-DU High Directory>/l2/bin/cu_stub
292
293 - RIC Stub  - <O-DU High Directory>/l2/bin/ric_stub
294