... representing an KeyCloak based identity service for centralized user
management. Please note that the implementation does not support IPv6.
Therefore, its own network is required called 'DMZ'.
+ In this configuration the external https port is 8463.
* **SDN-R** single node instance
... representing the NetConf consumer on the Service Management and
Orchestration framework (SMO) for the O1 interface based on
ODL-Silicon/ONAP-Istanbul
+ SDN-R comes with is own web-portal the external port is 8463.
* **VES collector**
- ... representing the VES (REST) provider at SMO for all kind of events.
+ ... representing the VES (REST) provider at SMO for all kind of events. In this configuration the external https port is 8443.
* **DMaaP**
... representing SMO DMaaP component, includes message-router
* **Non-RT-RIC**
... representing all the components of Non-RT-RIC, includes Non-RT-RIC Control Panel, Non-RT-RIC (Spring Cloud) Service Gateway, A1 Policy Management Services,
- Enrichment Data Coordinator, Non-RT-RIC App Catalogue, "Helloworld" O-RU Fronthaul Recovery use-case, Near-RT RIC A1 Simulator etc.
+ Enrichment Data Coordinator, Non-RT-RIC App Catalogue, "HelloWorld" O-RU Fronthaul Recovery use-case, Near-RT RIC A1 Simulator etc.
## Prerequisites
PRETTY_NAME="Ubuntu 20.04.2 LTS"
$ docker --version
-Docker version 20.10.2, build 20.10.2-0ubuntu1~20.04.2
+Docker version 20.10.7, build 20.10.7-0ubuntu1~20.04.2
$ docker-compose version
docker-compose version 1.29.1, build c34c88b2
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
+
$ git --version
git version 2.25.1
<deployment-system-ipv4> identity <your-system>
```
+It is beneficial (but not mandatory) adding the following line add the
+end of your ~/.bashrc file. I will suppress warnings when python script
+do not verify self signed certificates for HTTPS communication.
+```
+export PYTHONWARNINGS="ignore:Unverified HTTPS request"
+```
+
+Please ensure that you download and copy the required 3GPP OpenAPIs for VES-stndDefined
+message validation into the folder './solution/integration/smo/oam/ves-collector/externalRepo'.
+
+Please follow the instructions in ./solution/integration/smo/oam/ves-collector/externalRepo/3gpp/rep/sa5/MnS/blob/Rel16/OpenAPI/README.md.
+
+The following tree shows the successfully tested folder structure. It combines different versions of the schemas ('Rel16' and 'SA88-Rel16') using 3GPP branch names.
+
+```
+$ tree solution/integration/smo/oam/ves-collector/externalRepo/
+solution/integration/smo/oam/ves-collector/externalRepo/
+├── 3gpp
+│ └── rep
+│ └── sa5
+│ └── MnS
+│ └── blob
+│ ├── Rel16
+│ │ └── OpenAPI
+│ │ ├── TS28532_FaultMnS.yaml
+│ │ ├── TS28532_FileDataReportingMnS.yaml
+│ │ ├── TS28532_HeartbeatNtf.yaml
+│ │ ├── TS28532_PerfMnS.yaml
+│ │ ├── TS28532_ProvMnS.yaml
+│ │ ├── TS28532_StreamingDataMnS.yaml
+│ │ ├── TS28536_CoslaNrm.yaml
+│ │ ├── TS28541_5GcNrm.yaml
+│ │ ├── TS28541_NrNrm.yaml
+│ │ ├── TS28541_SliceNrm.yaml
+│ │ ├── TS28550_PerfMeasJobCtrlMnS.yaml
+│ │ ├── TS28623_ComDefs.yaml
+│ │ ├── TS28623_GenericNrm.yaml
+│ │ ├── TS29512_Npcf_SMPolicyControl.yaml
+│ │ ├── TS29514_Npcf_PolicyAuthorization.yaml
+│ │ └── TS29571_CommonData.yaml
+│ └── SA88-Rel16
+│ └── OpenAPI
+│ ├── 5gcNrm.yaml
+│ ├── PerDataFileReportMnS.yaml
+│ ├── PerMeasJobCtlMnS.yaml
+│ ├── PerThresMonMnS.yaml
+│ ├── PerfDataStreamingMnS.yaml
+│ ├── README.md
+│ ├── comDefs.yaml
+│ ├── coslaNrm.yaml
+│ ├── faultMnS.yaml
+│ ├── genericNrm.yaml
+│ ├── heartbeatNtf.yaml
+│ ├── nrNrm.yaml
+│ ├── provMnS.yaml
+│ ├── sliceNrm.yaml
+│ └── streamingDataMnS.yaml
+```
+
## Expected Folder Structure
```
│ ├── docker
│ ├── identity
│ ├── kafka
+ │ ├── o-ran-sc-topology-service
│ └── zookeeper
├── non-rt-ric
│ ├── docker-compose.yml
nano network/.env
```
+The tested configuration uses the following external https ports:
+
+ * 8443 for the ves-collector
+ * 8453 for web access to ODLUX (SDNC_WEB_PORT)
+ * 8463 for the keyclock web administrator user interface.
+
#### Startup solution
Please note that it is necessary to configure first the identity service,
docker-compose -f smo/non-rt-ric/docker-compose.yml up -d
```
-In order to create/deploy the apex policy for O-RU closed loop recovery usecase,
+In order to create/deploy the apex policy for O-RU closed loop recovery use case,
refer to the section named "Create/Deploy apex policy for O-RU & O-DU use case" in
this page:
https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=35881325
### populate data into Non-RT-RIC
-Full instrucion on how to run Non-RT-RIC can be found in this page:
+Full instruction on how to run Non-RT-RIC can be found in this page:
<https://wiki.o-ran-sc.org/display/RICNR/Release+D>
-When containers in Non-RT-RIC are all up, by default, there is no data running inside. Folder `non-rt-ric/data/` contains serveral scripts to populate data into Non-RT-RIC for test & demo purpose.
+When containers in Non-RT-RIC are all up, by default, there is no data running inside. Folder `non-rt-ric/data/` contains several scripts to populate data into Non-RT-RIC for test & demo purpose.
```
bash prepareDmaapMsg.sh
```
-script `prepareDmaapMsg.sh` sends messages to dmaap message router, then Non-RT-RIC policy-agent service polls messages from dmaap, and creates policy instances accordingly.
+script `prepareDmaapMsg.sh` sends messages to DMaaP message router, then Non-RT-RIC policy-agent service polls messages from DMaaP, and creates policy instances accordingly.
```
bash preparePmsData.sh
bash prepareEcsData.sh
```
-script `prepareEcsData.sh` sends http requests to ecs service, and creates data accordingly.
+script `prepareIcsData.sh` sends http requests to ics service, and creates data accordingly.
Afterwards, open webpage:
<http://localhost:8182/>
In case of trouble, please update the commands with your customized '.env' file.
+#### Access to Topology Service
+
+```
+curl -u admin:admin http://localhost:18181/rests/data/network-topology:network-topology/topology=topology-netconf/node=o-ran-sc-topology-service/yang-ext:mount/tapi-common:context/tapi-topology:topology-context
+```
+
+#### Access to Wireshark
+
+```
+ http://localhost:3000
+```
+
+Select the interfaces you would like to capture.
+As first guess, please select the bridge interfaces.
### Terminate solution
To stop all container please respect the following order