# Service Management and Orchestration (SMO)
-With respect to OAM the SMO implements the O1-interface provider. According to the O-RAN OAM Architecture and the O-RAN OAM Interface Specification, the SMO has a NetConf Client for configuration and HTTP/REST/VES Server for receiving all kind of events in a VES format.
+With respect to OAM the SMO implements the O1-interface provider. According to the O-RAN OAM Architecture and the O-RAN OAM Interface Specification, the SMO has a NetConf Client for configuration and HTTP/REST/VES Server for receiving all kind of events in a VES format.
The setup contains an OpenDaylight based NetConf client and a VES Test Collector.
* **SDN-R** single node instance
... representing the NetConf consumer on the Service Management and Orchstration framework (SMO) for the O1 interface.
- ODL-Neon/CCSDK/SDNC-ElAlto
+ based on ODL-Sodium/ONAP-Guilin
- * **VES test collector**
+ * **VES collector**
... representing the VES (REST) provider at SMO for all kind of events.
- DCAE-ElAlto/VES 5.0
- * **NTSDevice simulator**
-
- ... represents the NetConf Provider of an O-RAN component.
-
- * **NetconfServerSimulator**
-
- ... another simulator
+ * **DMaaP**
+ ... representing SMO DMaaP component, includes message-router
## Prerequisites
-docker-compose file version 3.3 is used and tested with
+docker-compose file version 2.2 is used and tested with
* Ubuntu 18.04 LTS
* Docker version 19.03.x
docker --version
docker-compose --version
git --version
-cd
-mkdir git
-cd git
-git clone https://git-highstreet-technologies.com/highstreet/CICD_environment.git
-cd CICD_environment/docker/solution/o-ran-dev
+cd ~
+git clone https://gerrit.o-ran-sc.org:29418/oam.git
+cd ~/oam/solution/integration/smo
```
## Usage
-### Bring Up Solution
+### Bring Up Solution
* Check (adjust if required) environment variables
```
-cd ~/git/CICD_environment/docker/solution/o-ran-dev
+cd ~/oam/solution/integration/smo
nano .env
```
-
- * startup solution
+
+ * startup solution
```
-cd ~/git/CICD_environment/docker/solution/o-ran-dev
+cd ~/oam/solution/integration/smo
docker-compose up -d
```
### Log files and karaf console
- * ODL karaf.logs can be found on docker host
+ * ODL karaf.logs
```
-tail -f /var/tmp/sdnr/logs/karaf.log
+docker exec -it sdnr tail -f /opt/opendaylight/data/log/karaf.log
```
* karaf console access (karaf:karaf)
ssh karaf@localhost -p 8101
```
- * ves-testcollector logs
+ * vescollector logs
```
- tail -f /var/tmp/ves-v5/logs/evel-output.log
+ docker logs -f vescollector
```
### Customizing Solution
* login into SDN-R
http://<host_ip>:8181/odlux/index.html
User:admin
- Password:admin
-
-#### Connectivity NETCONF interface to simulator of type 'NTSdevice'
-
- * Mount simulated network element (default parameters if not changed in '.env'
- * Open 'Connect'
- * Required Network Elements: add ('+' sign)
- * Name: NTSDevice
- * IP: <host_ip>
- * Port: 2240
- * User: netconf
- * Password: netconf
-
- Network Element 'NTSDevice' Should be connected
-
-#### Connectivity NETCONF interface to simulator of type 'netconfserversimulator'
-
- * Mount simulated network element (default parameters if not changed in '.env'
- * Open 'Connect'
- * Required Network Elements: add ('+' sign)
- * Name: SIMTEST
- * IP: <host_ip>
- * Port: 2230
- * User: admin
- * Password: admin
-
- Network Element 'SIMTEST' Should be connected
-
-
-#### Connectivity SDN-R to VES-testcollector
- * verify VES-testcollector on host terminal
- ```
- tail -f /var/tmp/ves-v5/logs/evel-output.log
- ```
-
- * heart beat events should be visible
-
- ```
- Authenticated OK
-==== Wed Aug 14 12:28:51 2019 =================================================
-Valid body decoded & checked against schema OK:
-{
- "event": {
- "commonEventHeader": {
- "domain": "heartbeat",
- "eventId": "testpattern-ab305d54-85b4-a31b-7db2-fb6b9e546015",
- "eventName": "heartbeat_Controller",
- "eventType": "Controller",
- "lastEpochMicrosec": 11087481660,
- "priority": "Low",
- "reportingEntityId": "",
- "reportingEntityName": "bf0c1c6deac1",
- "sequence": 7,
- "sourceId": "",
- "sourceName": "bf0c1c6deac1",
- "startEpochMicrosec": 11087481660,
- "version": 3.0
- },
- "heartbeatFields": {
- "additionalFields": [
- {
- "name": "eventTime",
- "value": "2019-08-14T12:28:51.5Z"
- }
- ],
- "heartbeatFieldsVersion": 1.0,
- "heartbeatInterval": 30
- }
- }
-}172.20.0.3 - - [14/Aug/2019 12:28:51] "POST /eventListener/v5 HTTP/1.1" 202 0
-
- ```
-#### Verify e2e event flow from 'NTSDevice' to VES-testcollector
-
-NTSDevice simulator raise new alarms every 60 seconds. Time interval can be configured within .env file
-This alarm shoulld be visible within the ves testcollector log file
-
-
-#### Verify e2e event flow from 'netconfserversimulator' to VES-testcollector
-
-Raise test event via device simulator and check VES log file
-
-* login to simulator with admin:admin
-
- ```
- ssh admin@<host_IP> -p 8000
-
- ```
- * type 'n2' (or 'n1') for m and clear event
-
-
-```
-==== Wed Aug 14 12:36:34 2019 =================================================
-Valid body decoded & checked against schema OK:
-{
- "event": {
- "commonEventHeader": {
- "domain": "fault",
- "eventId": "SIMTEST_LP-MWPS-RADIO_signalIsLostMajor",
- "eventName": "fault_Microwave_Radio_Alarms_signalIsLostMajor",
- "eventType": "Microwave_Radio_Alarms",
- "lastEpochMicrosec": 1565786194600000,
- "priority": "High",
- "reportingEntityId": "",
- "reportingEntityName": "bf0c1c6deac1",
- "sequence": 23,
- "sourceId": "",
- "sourceName": "SIMTEST",
- "startEpochMicrosec": 1565786194600000,
- "version": 3.0
- },
- "faultFields": {
- "alarmAdditionalInformation": [
- {
- "name": "eventTime",
- "value": "2019-08-14T12:36:34.6Z"
- },
- {
- "name": "equipType",
- "value": "unknown"
- },
- {
- "name": "vendor",
- "value": "unknown"
- },
- {
- "name": "model",
- "value": "unknown"
- }
- ],
- "alarmCondition": "signalIsLostMajor",
- "alarmInterfaceA": "LP-MWPS-RADIO",
- "eventSeverity": "MAJOR",
- "eventSourceType": "Microwave_Radio",
- "faultFieldsVersion": 2.0,
- "specificProblem": "signalIsLostMajor",
- "vfStatus": "Active"
- }
- }
-}172.20.0.3 - - [14/Aug/2019 12:36:34] "POST /eventListener/v5 HTTP/1.1" 202 0
-```
- * type '~.' to exit ssh
- *
-
+ Password:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+
+
### Terminate solution
To stop all container:
```
-cd ~/git/CICD_environment/docker/solution/o-ran-dev
+cd ~/oam/solution/integration/smo
docker-compose down
```
-re-start solution at any point in time with
+re-start solution at any point in time with
```
-cd ~/git/CICD_environment/docker/solution/o-ran-dev
+cd ~/oam/solution/integration/smo
docker-compose up -d
```
!!! be careful if other stopped containers are on the same system
```
docker system prune -a -f
-sudo rm -rf /var/tmp/ves-v5/
+
```
### Troubleshooting
-Issue: no VES events, no heartbeat events
- * For some reasons SDN-R overwrites DCAE settings in devicemanager.properties.
-
-```
-sudo docker-compose down
-git checkout -- devicemanager.properties
-sudo docker-compose up -d
-```
\ No newline at end of file