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