Add to_directory method to relevant object classes
[oam.git] / code / network-generator / README.md
1 # Network Generator
2
3 This projects generates a view of a telecommunication network composed of RAN,
4 Transport, 5G-Core, O-Cloud and SMO functions associated with the O-RAN 
5 Alliance architecture. 
6
7 Please note that a single 5G frequency represents a single sector, represents
8 a single NRCellDU, represents a single O-RU, represents a single O-DU.
9
10 Each sector/cell covers an angle of 120° where the tower is represented by the
11 center of a hexagon. 3 sectors/cells cover with azimuths [0°,120°,240°] cover
12 an area around the tower. O-RUs are mounted add the tower. O-DUs are located in
13 data center (o-cloud resource pool). 
14
15 ## Prerequisites
16
17 ```
18 $ cat /etc/os-release | grep -oP 'PRETTY_NAME="\K[^"]+'
19 Ubuntu 22.04.3 LTS
20
21 $ python3 --version
22 Python 3.10.12
23 ```
24
25 For validation purposes libyang is recommended.
26 Please follow the libyang [installation instructions](https://github.com/CESNET/libyang).
27
28 ## Usage 
29
30 ```
31 make virtual_env_4_oam
32 source .oam/bin/activate
33 python3 -m network_generation config.json
34 ```
35
36 ## Output
37
38 By default the generated files can be found in the 'output' folder:
39
40 - [o-ran-network-operational.json](output/o-ran-network-operational.json)
41 - [o-ran-network.svg](output/o-ran-network.svg)
42 - [o-ran-network.kml](output/o-ran-network.kml)
43
44
45 ## Output validation
46
47 ```
48 yanglint -f json model/yang/ietf-network-topology.yang output/o-ran-network-operational.json
49 ```
50
51 ## Development
52
53 Read the [CONTRIBUTING.md](CONTRIBUTING.md) file.