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