Merge "Adopt new docs/tox API"
[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.17.2
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>         odlux.oam.smo.o-ran-sc.org
87 <deployment-system-ipv4>         flows.oam.smo.o-ran-sc.org
88 <deployment-system-ipv4>         tests.oam.smo.o-ran-sc.org
89 <deployment-system-ipv4> ves-collector.dcn.smo.o-ran-sc.org
90 <deployment-system-ipv4>    controller.dcn.smo.o-ran-sc.org
91
92 ```
93
94 ## Bring Up Solution
95
96 The following commands should be invoked. More detailed can be found in the
97 next chapters.
98
99 ```
100 docker compose -f smo/common/docker-compose.yml up -d
101 python smo/common/identity/config.py
102 docker compose -f smo/oam/docker-compose.yml up -d odlux controller
103 docker compose -f network/docker-compose.yml up -d ntsim-ng-o-ru-11221
104 python network/config.py
105 ```
106
107 ## Verification Solution
108
109 ### Login into O-RU-Controller UI
110
111     https://odlux.oam.smo.o-ran-sc.org
112
113     User: admin 
114
115     Password: // see .env file
116
117 In case of trouble, please update the commands with your customized '.env' file.
118
119 ### Connection State of the simulated O-RU
120
121 In the O-RU Controller UI you should see the simulated O-RU connected as a kind of reference implementation.
122
123 ![Connection State](./docs/connect.odlux.o-ru-controller.o-ran-sc.org.png)
124
125 ### Alarm Notification of the simulated O-RU
126
127 In the O-RU Controller UI you should see the generated alarm notifications of the O-RU as a kind of reference implementation.
128
129 ![Alarm Notifications](./docs/fault.odlux.o-ru-controller.o-ran-sc.org.png)
130
131 ## Terminate solution
132
133 To stop all container please respect the following order
134
135 ```
136 docker compose -f network/docker-compose.yml down
137 docker compose -f smo/oam/docker-compose.yml down
138 docker compose -f smo/common/docker-compose.yml down
139 ```