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