Intial version for solution/dev
[oam.git] / solution / dev / smo / README.md
diff --git a/solution/dev/smo/README.md b/solution/dev/smo/README.md
new file mode 100644 (file)
index 0000000..92fda8d
--- /dev/null
@@ -0,0 +1,278 @@
+# 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. 
+
+The setup contains an OpenDaylight based NetConf client and a VES Test Collector.
+
+## Overview
+
+This docker-compose file starts a pre-configured, self-contained SDN-R solution for developer test or demo purposes
+
+  * **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
+
+  * **VES test 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
+
+## Prerequisites
+
+docker-compose file version 3.3 is used and tested with
+
+  * Ubuntu 18.04 LTS
+  * Docker version 19.03.x
+  * docker-compose version 1.24.x
+  * git version 2.17.1
+  * docker-compose for the solution
+  * enable git private docker registry, if used
+
+```
+cat /etc/os-release
+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
+```
+
+## Usage
+
+### Bring Up Solution 
+
+  * Check (adjust if required) environment variables
+
+```
+cd ~/git/CICD_environment/docker/solution/o-ran-dev
+nano .env
+```
+  
+  * startup solution 
+
+```
+cd ~/git/CICD_environment/docker/solution/o-ran-dev
+docker-compose up -d
+```
+
+### Log files and karaf console
+
+  * ODL karaf.logs can be found on docker host
+```
+tail -f /var/tmp/sdnr/logs/karaf.log
+```
+
+  * karaf console access (karaf:karaf)
+
+```
+ssh karaf@localhost -p 8101
+```
+
+  * ves-testcollector logs
+
+```
+  tail -f /var/tmp/ves-v5/logs/evel-output.log
+```
+
+### Customizing Solution
+
+'.env' file contains customizing parameters
+
+
+### Verification Solution
+
+#### Access to SDN-R UX
+
+  * 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
+  * 
+  
+### Terminate solution
+
+To stop all container:
+
+```
+cd ~/git/CICD_environment/docker/solution/o-ran-dev
+docker-compose down
+```
+
+re-start solution at any point in time with 
+```
+cd ~/git/CICD_environment/docker/solution/o-ran-dev
+docker-compose up -d
+```
+
+
+### Cleanup
+
+!!! 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