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