56c15db68bff2ca6980b4bc54875b8b975df75b0
[oam.git] / solution / README-O-RU-Controller.md
1 # O-RU Controller
2
3 This documents describes the deployment of an O-RU Controller which could be used 
4 as component for O-DU and/or SMO implementations. 
5
6 ## Prerequisites
7
8 ### Resources
9
10 The solution was tested on a VM with
11
12 - 4x Core
13 - 16 GBit RAM 
14 - 50 Gbit Storage
15
16 ### Operating (HOST) System
17
18 ```
19 $ cat /etc/os-release | grep PRETTY_NAME
20 PRETTY_NAME="Ubuntu 22.04.2 LTS"
21 ```
22
23 ### Docker
24
25 ```
26 $ docker --version
27 Docker version 23.0.1, build a5ee5b1
28 ```
29 Please follow the required docker daemon configuration as documented in the following README.md:
30 - [./smo/common/docker/README.md](./smo/common/docker/README.md)
31
32 ### Docker Compose
33
34 ```
35 $ docker-compose version
36 Docker Compose version v2.16.0
37 ```
38
39 ### GIT
40
41 ```
42 $ git --version
43 git version 2.34.1
44 ```
45
46 ### Python
47
48 ```
49 $ python3 --version
50 Python 3.10.6
51
52 ```
53 sudo apt install python3-pip
54 pip install jproperties
55 ```
56
57 ```
58 It is beneficial (but not mandatory) adding the following line add the
59 end of your ~/.bashrc file. I will suppress warnings when python script
60 do not verify self signed certificates for HTTPS communication.
61
62 ```
63 export PYTHONWARNINGS="ignore:Unverified HTTPS request"
64 ```
65
66 ### ETC Host (DNS function)
67
68 Please modify the /etc/hosts of your system.
69
70 * \<your-system>: is the hostname of the system, where the browser is started
71
72 * \<deployment-system-ipv4>: is the IP address of the system where the solution will be deployed
73
74 For development purposes <your-system> and <deployment-system> may reference the same system.
75
76 ```
77 $ cat /etc/hosts
78 127.0.0.1                      localhost
79 127.0.1.1                      <your-system>
80
81 # SMO OAM development system
82 <deployment-system-ipv4>                   smo.o-ran-sc.org
83 <deployment-system-ipv4>           gateway.smo.o-ran-sc.org
84 <deployment-system-ipv4>          identity.smo.o-ran-sc.org
85 <deployment-system-ipv4>          messages.smo.o-ran-sc.org
86 <deployment-system-ipv4> ves-collector.oam.smo.o-ran-sc.org
87 <deployment-system-ipv4>         odlux.oam.smo.o-ran-sc.org
88 <deployment-system-ipv4>    controller.oam.smo.o-ran-sc.org
89
90 ```
91
92 ## Bring Up Solution
93
94 The following commands should be invoked. More detailed can be found in the
95 next chapters.
96
97 ```
98 docker-compose -f smo/common/docker-compose.yml up -d
99 python smo/common/identity/config.py
100 docker-compose -f smo/oam/docker-compose.yml up -d odlux controller
101 docker-compose -f network/docker-compose.yml up -d ntsim-ng-o-ru-fh-11221
102 python network/config.py
103 ```
104
105 ## Verification Solution
106
107 ### Login into O-RU-Controller UI
108
109     https://odlux.oam.smo.o-ran-sc.org
110
111     User: admin // see .env file
112
113     Password: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
114
115 In case of trouble, please update the commands with your customized '.env' file.
116
117 ### Connection State of the simulated O-RU
118
119 In the O-RU Controller UI you should see the simulated O-RU connected as a kind of reference implementation.
120
121 ![Connection State](./docs/connect.odlux.o-ru-controller.o-ran-sc.org.png)
122
123 ### Alarm Notification of the simulated O-RU
124
125 In the O-RU Controller UI you should see the generated alarm notifications of the O-RU as a kind of reference implementation.
126
127 ![Alarm Notifications](./docs/fault.odlux.o-ru-controller.o-ran-sc.org.png)
128
129 ## Terminate solution
130
131 To stop all container please respect the following order
132
133 ```
134 docker-compose -f network/docker-compose.yml down
135 docker-compose -f smo/oam/docker-compose.yml down
136 docker-compose -f smo/common/docker-compose.yml down
137 ```