Merge "Update docker-compose of onap-policy in smo"
authorMartin Skorupski <martin.skorupski@highstreet-technologies.com>
Wed, 15 Dec 2021 06:43:15 +0000 (06:43 +0000)
committerGerrit Code Review <gerrit@o-ran-sc.org>
Wed, 15 Dec 2021 06:43:15 +0000 (06:43 +0000)
15 files changed:
.gitignore
solution/integration/network/.env
solution/integration/network/docker-compose.yml
solution/integration/network/ntsim-ng-o-du/config.json
solution/integration/network/ntsim-ng-o-du/o-ran-sc-du-hello-world-operational.xml
solution/integration/network/ntsim-ng-o-du/o-ran-sc-du-hello-world-running.xml
solution/integration/network/ntsim-ng-topology-server/tapi-common-operational.xml
solution/integration/smo/common/.env
solution/integration/smo/oam/.env
solution/integration/smo/oam/docker-compose.yml
solution/integration/smo/oam/ves-collector/collector.properties
solution/integration/smo/oam/ves-collector/externalRepo/3gpp/rep/sa5/MnS/blob/Rel16/OpenAPI/README.md [new file with mode: 0644]
solution/integration/smo/oam/ves-collector/externalRepo/o-ran-sc/experimental/o-ran-sc-du-hello-world-pm-streaming-oas3.yaml [new file with mode: 0644]
solution/integration/smo/oam/ves-collector/externalRepo/schema-map.json [new file with mode: 0644]
solution/integration/smo/oam/ves-collector/ves-dmaap-config.json [new file with mode: 0644]

index cb8beae..6d66eea 100644 (file)
@@ -52,6 +52,9 @@ release.properties
 */**/__pycache__
 *.log
 
+# avoid copyright issues with 3GPP
+*/**/3gpp/**/*.yaml
+
 # documentation
 
 .tox
index f382b3d..756cd75 100644 (file)
@@ -14,7 +14,7 @@
 # limitations under the License.
 #
 
-COMPOSE_PROJECT_NAME=o-ran-sc-d-release
+COMPOSE_PROJECT_NAME=o-ran-sc-e-release
 
 # Credentials
 ADMIN_USERNAME=admin
@@ -28,10 +28,9 @@ SDNC_OAM_IPv6=2001:db8:1:50::23
 VES_COLLECTOR_OAM_IPv6=2001:db8:1:50::27
 
 # NTS NG settings
-PUBLIC_DOCKER_REPO=docker.io/hightec/
-NEXUS3_DOCKER_REPO=nexus3.o-ran-sc.org:10002/o-ran-sc/
+NEXUS3_DOCKER_REPO=nexus3.o-ran-sc.org:10004/o-ran-sc/
 NTS_MANAGER_PORT=8300
-NTS_BUILD_VERSION=1.3.3
+NTS_BUILD_VERSION=1.4.3
 
 IPv6_ENABLED=true
 SSH_CONNECTIONS=0
@@ -46,8 +45,8 @@ NTS_HOST_TRANSFER_SFTP_BASE_PORT=2000
 NTS_NF_MOUNT_POINT_ADDRESSING_METHOD=docker-mapping
 
 SDN_CONTROLLER_PROTOCOL=http
-SDN_CONTROLLER_CALLHOME_PORT=6666
-# TLS: SDN_CONTROLLER_CALLHOME_PORT=4335
+# ssh: SDN_CONTROLLER_CALLHOME_PORT=6666
+SDN_CONTROLLER_CALLHOME_PORT=4335
 
 VES_COMMON_HEADER_VERSION=7.2.1
 VES_ENDPOINT_PROTOCOL=https
index a07b98d..8e0921d 100755 (executable)
@@ -31,6 +31,7 @@ x-common_env: &common_env
     SDN_CONTROLLER_PROTOCOL: ${SDN_CONTROLLER_PROTOCOL}
     SDN_CONTROLLER_IP: ${SDNC_OAM_IPv6}
     SDN_CONTROLLER_PORT: ${SDNC_REST_PORT}
+    SDN_CONTROLLER_CALLHOME_IP: ${SDNC_OAM_IPv6}
     SDN_CONTROLLER_CALLHOME_PORT: ${SDN_CONTROLLER_CALLHOME_PORT}
     SDN_CONTROLLER_USERNAME: ${ADMIN_USERNAME}
     SDN_CONTROLLER_PASSWORD: ${ADMIN_PASSWORD}
@@ -119,7 +120,7 @@ services:
 
   ntsim-ng-topology-server:
     <<: *common_nf
-    image: "${PUBLIC_DOCKER_REPO}smo-nts-ng-topology-server:${NTS_BUILD_VERSION}"
+    image: "${NEXUS3_DOCKER_REPO}smo-nts-ng-topology-server:${NTS_BUILD_VERSION}"
     container_name: ntsim-ng-topology-server
     hostname: highstreet-TAPI-topology-server
     volumes:
index 299a6cf..3151184 100644 (file)
             "stderr": "log/netopeer-stderr.log"
         },
     
+        "sshd": {
+            "path": "/usr/sbin/sshd",
+            "args": ["-D"],
+            "autorestart": true,
+            "stdout": "log/sshd-stdout.log",
+            "stderr": "log/sshd-stderr.log"
+        },
+    
         "ntsim-network-function": {
             "path": "/opt/dev/ntsim-ng/ntsim-ng",
             "args": ["-w/opt/dev/ntsim-ng", "-f"],
             "ietf-truststore",
             "ietf-system",
             "ietf-netconf-server",
-            "nts-network-function"
+            "nts-network-function",
+            "o-ran-sc-du-hello-world"
         ],
         
-        "default-list-instances": 2,
+        "default-list-instances": 1,
         "custom-list-instances" : []
     },
 
     "datastore-populate-rules": {
-        "random-generation-enabled": true,
+        "random-generation-enabled": false,
 
         "pre-generated-operational-data": [
-            "/opt/dev/deploy/data/o-ran-sc-du-hello-world-operational.xml"
+            "../deploy/data/o-ran-sc-du-hello-world-operational.xml"
         ],
         "pre-generated-running-data": [
-            "/opt/dev/deploy/data/o-ran-sc-du-hello-world-running.xml"
+            "../deploy/data/o-ran-sc-du-hello-world-running.xml"
         ]
     },
 
         "choosing-method" : "linear",
         "faults" : [
             {
-                "condition" : "O-RU Port Down",
-                "object"    : "/o-ran-sc-du-hello-world:network-function/du-to-ru-connection[name='highstreet-O-RU-11221']",
-                "severity"  : "CRITICAL",
+                "condition" : "CPRI Port Down",
+                "object"    : "Slot-0-Port-A",
+                "severity"  : "MAJOR",
                 "date-time" : "$$time$$",
-                "specific-problem" : "O-RU Port Down",
+                "specific-problem" : "CPRI Port Down",
 
-                "fault-severity" : "CRITICAL",
+                "fault-severity" : "MAJOR",
                 "affected-object" : "%%object%%",
                 "cleared" : "false",
-                "text" : "O-RU Port Down"
+                "text" : "CPRI Port Down"
             },
 
             {
-                "condition" : "O-RU Port Down",
-                "object"    : "/o-ran-sc-du-hello-world:network-function/du-to-ru-connection[name='highstreet-O-RU-11221']",
+                "condition" : "CPRI Port Down",
+                "object"    : "Slot-0-Port-A",
                 "severity"  : "NORMAL",
                 "date-time" : "$$time$$",
-                "specific-problem" : "O-RU Port Down",
+                "specific-problem" : "CPRI Port Down",
 
-                "fault-severity" : "CRITICAL",
+                "fault-severity" : "MAJOR",
                 "affected-object" : "%%object%%",
                 "cleared" : "true",
-                "text" : "O-RU Port Down"
+                "text" : "CPRI Port Down"
             },
 
             {
-                "condition" : "O-RU Port Down",
-                "object"    : "/o-ran-sc-du-hello-world:network-function/du-to-ru-connection[name='highstreet-O-RU-11222']",
-                "severity"  : "CRITICAL",
+                "condition" : "CPRI Port Down",
+                "object"    : "Slot-0-Port-C",
+                "severity"  : "MAJOR",
                 "date-time" : "$$time$$",
-                "specific-problem" : "O-RU Port Down",
+                "specific-problem" : "CPRI Port Down",
 
-                "fault-severity" : "CRITICAL",
+                "fault-severity" : "MAJOR",
                 "affected-object" : "%%object%%",
                 "cleared" : "false",
-                "text" : "O-RU Port Down"
+                "text" : "CPRI Port Down"
             },
 
             {
-                "condition" : "O-RU Port Down",
-                "object"    : "/o-ran-sc-du-hello-world:network-function/du-to-ru-connection[name='highstreet-O-RU-11222']",
+                "condition" : "CPRI Port Down",
+                "object"    : "Slot-0-Port-C",
                 "severity"  : "NORMAL",
                 "date-time" : "$$time$$",
-                "specific-problem" : "O-RU Port Down",
+                "specific-problem" : "CPRI Port Down",
 
-                "fault-severity" : "CRITICAL",
+                "fault-severity" : "MAJOR",
                 "affected-object" : "%%object%%",
                 "cleared" : "true",
-                "text" : "O-RU Port Down"
+                "text" : "CPRI Port Down"
             },
 
             {
-                "condition" : "O-RU Port Down",
-                "object"    : "/o-ran-sc-du-hello-world:network-function/du-to-ru-connection[name='highstreet-O-RU-11223']",
-                "severity"  : "CRITICAL",
+                "condition" : "CPRI Port Down",
+                "object"    : "Slot-2-Port-B",
+                "severity"  : "MAJOR",
                 "date-time" : "$$time$$",
-                "specific-problem" : "O-RU Port Down",
+                "specific-problem" : "CPRI Port Down",
 
-                "fault-severity" : "CRITICAL",
+                "fault-severity" : "MAJOR",
                 "affected-object" : "%%object%%",
                 "cleared" : "false",
-                "text" : "O-RU Port Down"
+                "text" : "CPRI Port Down"
             },
 
             {
-                "condition" : "O-RU Port Down",
-                "object"    : "/o-ran-sc-du-hello-world:network-function/du-to-ru-connection[name='highstreet-O-RU-11223']",
+                "condition" : "CPRI Port Down",
+                "object"    : "Slot-2-Port-B",
                 "severity"  : "NORMAL",
                 "date-time" : "$$time$$",
-                "specific-problem" : "O-RU Port Down",
+                "specific-problem" : "CPRI Port Down",
 
-                "fault-severity" : "CRITICAL",
+                "fault-severity" : "MAJOR",
                 "affected-object" : "%%object%%",
                 "cleared" : "true",
-                "text" : "O-RU Port Down"
+                "text" : "CPRI Port Down"
             }
         ]
     }
index c2d132a..0bc12be 100644 (file)
 <network-function xmlns="urn:o-ran-sc:yang:o-ran-sc-du-hello-world">
-    <du-to-ru-connection>
-      <name>highstreet-O-RU-11221</name>
-      <administrative-state>LOCKED</administrative-state>
-      <operational-state>ENABLED</operational-state>
-      <status>disconnected</status>
-    </du-to-ru-connection>
-    <du-to-ru-connection>
-      <name>highstreet-O-RU-11222</name>
-      <administrative-state>UNLOCKED</administrative-state>
-      <operational-state>ENABLED</operational-state>
-      <status>connected</status>
-    </du-to-ru-connection>
-    <du-to-ru-connection>
-      <name>highstreet-O-RU-11223</name>
-      <administrative-state>LOCKED</administrative-state>
-      <operational-state>DISABLED</operational-state>
-      <status>unable-to-connect</status>
-    </du-to-ru-connection>
-  </network-function>
\ No newline at end of file
+    <id>network-function-1</id>
+    <administrative-state>locked</administrative-state>
+    <operational-state>enabled</operational-state>
+    <user-label>nf1</user-label>
+    <distinguished-name-prefix>CN=KarenBerge,CN=admin,DC=corp,DC=Fabrikam,DC=COM</distinguished-name-prefix>
+    <location-name>address name</location-name>
+    <distributed-unit-functions>
+      <id>O-DU-1211</id>
+      <administrative-state>locked</administrative-state>
+      <operational-state>enabled</operational-state>
+      <user-label>o-du-1</user-label>
+      <cell>
+        <id>cell-1</id>
+        <administrative-state>locked</administrative-state>
+        <operational-state>enabled</operational-state>
+        <user-label>cell-1</user-label>
+        <traffic-state>active</traffic-state>
+        <local-id>1</local-id>
+        <public-land-mobile-networks>
+          <mobile-country-code>310</mobile-country-code>
+          <mobile-network-code>150</mobile-network-code>
+          <slice-differentiator>1</slice-differentiator>
+          <slice-service-type>1</slice-service-type>
+        </public-land-mobile-networks>
+        <physical-cell-id>1</physical-cell-id>
+        <tracking-area-code>10</tracking-area-code>
+        <absolute-radio-frequency-channel-number>
+          <downlink>15000</downlink>
+          <uplink>14000</uplink>
+          <supplementary-uplink>14500</supplementary-uplink>
+        </absolute-radio-frequency-channel-number>
+        <base-station-channel-bandwidth>
+          <downlink>80000</downlink>
+          <uplink>83000</uplink>
+          <supplementary-uplink>84000</supplementary-uplink>
+        </base-station-channel-bandwidth>
+        <synchronization-signal-block>
+          <frequency-channel-number>12</frequency-channel-number>
+          <periodicity>10</periodicity>
+          <subcarrier-spacing>30</subcarrier-spacing>
+          <offset>3</offset>
+          <duration>2</duration>
+        </synchronization-signal-block>
+        <supported-measurements>
+          <performance-measurement-type>user-equipment-average-throughput-downlink</performance-measurement-type>
+          <supported-snssai-subcounter-instances>
+            <slice-differentiator>1</slice-differentiator>
+            <slice-service-type>1</slice-service-type>
+          </supported-snssai-subcounter-instances>
+          <supported-snssai-subcounter-instances>
+            <slice-differentiator>1</slice-differentiator>
+            <slice-service-type>2</slice-service-type>
+          </supported-snssai-subcounter-instances>
+          <supported-snssai-subcounter-instances>
+            <slice-differentiator>2</slice-differentiator>
+            <slice-service-type>1</slice-service-type>
+          </supported-snssai-subcounter-instances>
+          <supported-snssai-subcounter-instances>
+            <slice-differentiator>2</slice-differentiator>
+            <slice-service-type>2</slice-service-type>
+          </supported-snssai-subcounter-instances>
+        </supported-measurements>
+        <supported-measurements>
+          <performance-measurement-type>user-equipment-average-throughput-uplink</performance-measurement-type>
+          <supported-snssai-subcounter-instances>
+            <slice-differentiator>1</slice-differentiator>
+            <slice-service-type>1</slice-service-type>
+          </supported-snssai-subcounter-instances>
+          <supported-snssai-subcounter-instances>
+            <slice-differentiator>1</slice-differentiator>
+            <slice-service-type>2</slice-service-type>
+          </supported-snssai-subcounter-instances>
+          <supported-snssai-subcounter-instances>
+            <slice-differentiator>2</slice-differentiator>
+            <slice-service-type>1</slice-service-type>
+          </supported-snssai-subcounter-instances>
+          <supported-snssai-subcounter-instances>
+            <slice-differentiator>2</slice-differentiator>
+            <slice-service-type>2</slice-service-type>
+          </supported-snssai-subcounter-instances>
+        </supported-measurements>
+      </cell>
+      <radio-resource-management-policy-ratio>
+        <id>rrm-pol-1</id>
+        <administrative-state>locked</administrative-state>
+        <operational-state>enabled</operational-state>
+        <user-label>rrm-pol-1</user-label>
+        <resource-type>prb</resource-type>
+        <radio-resource-management-policy-members>
+          <mobile-country-code>310</mobile-country-code>
+          <mobile-network-code>150</mobile-network-code>
+          <slice-differentiator>1</slice-differentiator>
+          <slice-service-type>1</slice-service-type>
+        </radio-resource-management-policy-members>
+        <radio-resource-management-policy-max-ratio>20</radio-resource-management-policy-max-ratio>
+        <radio-resource-management-policy-min-ratio>10</radio-resource-management-policy-min-ratio>
+        <radio-resource-management-policy-dedicated-ratio>15</radio-resource-management-policy-dedicated-ratio>
+      </radio-resource-management-policy-ratio>
+    </distributed-unit-functions>
+  </network-function>
+  
\ No newline at end of file
index d1d7e74..2d7baf0 100644 (file)
@@ -1,14 +1,58 @@
 <network-function xmlns="urn:o-ran-sc:yang:o-ran-sc-du-hello-world">
-    <du-to-ru-connection>
-      <name>highstreet-O-RU-11221</name>
-      <administrative-state>UNLOCKED</administrative-state>
-    </du-to-ru-connection>
-    <du-to-ru-connection>
-      <name>highstreet-O-RU-11222</name>
-      <administrative-state>LOCKED</administrative-state>
-    </du-to-ru-connection>
-    <du-to-ru-connection>
-      <name>highstreet-O-RU-11223</name>
-      <administrative-state>LOCKED</administrative-state>
-    </du-to-ru-connection>
-  </network-function>
\ No newline at end of file
+    <id>network-function-1</id>
+    <administrative-state>unlocked</administrative-state>
+    <user-label>nf1</user-label>
+    <distinguished-name-prefix>CN=KarenBerge,CN=admin,DC=corp,DC=Fabrikam,DC=COM</distinguished-name-prefix>
+    <distributed-unit-functions>
+      <id>O-DU-1211</id>
+      <administrative-state>unlocked</administrative-state>
+      <user-label>o-du-1</user-label>
+      <cell>
+        <id>cell-1</id>
+        <administrative-state>unlocked</administrative-state>
+        <user-label>cell-1</user-label>
+        <local-id>1</local-id>
+        <public-land-mobile-networks>
+          <mobile-country-code>310</mobile-country-code>
+          <mobile-network-code>150</mobile-network-code>
+          <slice-differentiator>1</slice-differentiator>
+          <slice-service-type>1</slice-service-type>
+        </public-land-mobile-networks>
+        <physical-cell-id>1</physical-cell-id>
+        <tracking-area-code>10</tracking-area-code>
+        <absolute-radio-frequency-channel-number>
+          <downlink>15000</downlink>
+          <uplink>14000</uplink>
+          <supplementary-uplink>14500</supplementary-uplink>
+        </absolute-radio-frequency-channel-number>
+        <base-station-channel-bandwidth>
+          <downlink>80000</downlink>
+          <uplink>83000</uplink>
+          <supplementary-uplink>84000</supplementary-uplink>
+        </base-station-channel-bandwidth>
+        <synchronization-signal-block>
+          <frequency-channel-number>12</frequency-channel-number>
+          <periodicity>10</periodicity>
+          <subcarrier-spacing>30</subcarrier-spacing>
+          <offset>3</offset>
+          <duration>2</duration>
+        </synchronization-signal-block>
+      </cell>
+      <radio-resource-management-policy-ratio>
+        <id>rrm-pol-1</id>
+        <administrative-state>unlocked</administrative-state>
+        <user-label>rrm-pol-1</user-label>
+        <resource-type>prb</resource-type>
+        <radio-resource-management-policy-members>
+          <mobile-country-code>310</mobile-country-code>
+          <mobile-network-code>150</mobile-network-code>
+          <slice-differentiator>1</slice-differentiator>
+          <slice-service-type>1</slice-service-type>
+        </radio-resource-management-policy-members>
+        <radio-resource-management-policy-max-ratio>20</radio-resource-management-policy-max-ratio>
+        <radio-resource-management-policy-min-ratio>10</radio-resource-management-policy-min-ratio>
+        <radio-resource-management-policy-dedicated-ratio>15</radio-resource-management-policy-dedicated-ratio>
+      </radio-resource-management-policy-ratio>
+    </distributed-unit-functions>
+  </network-function>
+  
\ No newline at end of file
index 861c09b..2c847af 100644 (file)
@@ -27,7 +27,7 @@
           <layer-protocol-name>ETH</layer-protocol-name>
           <name>
             <value-name>device-name</value-name>
-            <value>highstreet-O-DU-1122</value>
+            <value>O-DU-1122</value>
           </name>
           <administrative-state>LOCKED</administrative-state>
           <operational-state>ENABLED</operational-state>
@@ -69,7 +69,7 @@
           <layer-protocol-name>ETH</layer-protocol-name>
           <name>
             <value-name>device-name</value-name>
-            <value>highstreet-O-RU-11221</value>
+            <value>O-RU-11221</value>
           </name>
           <administrative-state>LOCKED</administrative-state>
           <operational-state>ENABLED</operational-state>
           <layer-protocol-name>ETH</layer-protocol-name>
           <name>
             <value-name>device-name</value-name>
-            <value>highstreet-O-RU-11222</value>
+            <value>O-RU-11222</value>
           </name>
           <administrative-state>LOCKED</administrative-state>
           <operational-state>ENABLED</operational-state>
           <layer-protocol-name>ETH</layer-protocol-name>
           <name>
             <value-name>device-name</value-name>
-            <value>highstreet-O-RU-11223</value>
+            <value>O-RU-11223</value>
           </name>
           <administrative-state>LOCKED</administrative-state>
           <operational-state>ENABLED</operational-state>
           <direction>BIDIRECTIONAL</direction>
           <name>
             <value-name>link-name</value-name>
-            <value>highstreet-O-DU-1122-to-highstreet-O-RU-11221</value>
+            <value>O-DU-1122-to-O-RU-11221</value>
           </name>
           <administrative-state>LOCKED</administrative-state>
           <operational-state>ENABLED</operational-state>
           <direction>BIDIRECTIONAL</direction>
           <name>
             <value-name>link-name</value-name>
-            <value>highstreet-O-DU-1122-to-highstreet-O-RU-11222</value>
+            <value>O-DU-1122-to-O-RU-11222</value>
           </name>
           <administrative-state>LOCKED</administrative-state>
           <operational-state>ENABLED</operational-state>
           <direction>BIDIRECTIONAL</direction>
           <name>
             <value-name>link-name</value-name>
-            <value>highstreet-O-DU-1122-to-highstreet-O-RU-11223</value>
+            <value>O-DU-1122-to-O-RU-11223</value>
           </name>
           <administrative-state>LOCKED</administrative-state>
           <operational-state>ENABLED</operational-state>
index 6f4e5c8..ae91017 100644 (file)
@@ -14,7 +14,7 @@
 # limitations under the License.
 #
 
-COMPOSE_PROJECT_NAME=o-ran-sc-d-release
+COMPOSE_PROJECT_NAME=o-ran-sc-e-release
 
 # Credentials
 
index 15e585a..c21df2b 100644 (file)
@@ -14,7 +14,7 @@
 # limitations under the License.
 #
 
-COMPOSE_PROJECT_NAME=o-ran-sc-d-release
+COMPOSE_PROJECT_NAME=o-ran-sc-e-release
 
 # Credentials
 ADMIN_USERNAME=admin
@@ -31,15 +31,15 @@ NETWORK_GATEWAY_OAM_IPv6=2001:db8:1:50::1
 IDENTITY_PROVIDER_URL=http://identity:8081
 
 # SDN Controller
-SDNC_IMAGE=docker.io/hightec/smo-onap-sdnc-image:2.1.5
+SDNC_IMAGE=nexus3.onap.org:10001/onap/sdnc-image:2.2.3
 SDNC_REST_PORT=8181
 SDNC_OAM_IPv6=2001:db8:1:50::23
 SDNC_CERT_DIR=/opt/opendaylight/current/certs
 
 # SDN Controller Web
-SDNC_WEB_IMAGE=docker.io/hightec/smo-sdnc-web-image:2.2.0-SNAPSHOT-20210604T122348Z
+SDNC_WEB_IMAGE=nexus3.onap.org:10001/onap/sdnc-web-image:2.2.3
 SDNC_WEB_PORT=8453
 
 ## VES Collector
-VES_COLLECTOR_IMAGE=nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.8.0
+VES_COLLECTOR_IMAGE=nexus3.onap.org:10003/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.10.1
 VES_COLLECTOR_OAM_IPv6=2001:db8:1:50::27
index 14550a0..c73471a 100755 (executable)
@@ -87,6 +87,8 @@ services:
       - 8443:8443
     volumes:
       - ./ves-collector/collector.properties:/opt/app/VESCollector/etc/collector.properties
+      - ./ves-collector/ves-dmaap-config.json:/opt/app/VESCollector/etc/ves-dmaap-config.json
+      - ./ves-collector/externalRepo:/opt/app/VESCollector/etc/externalRepo
     networks:
       smo:
       default:
index ea4e2ac..a85f051 100644 (file)
@@ -61,8 +61,8 @@ event.externalSchema.schemaRefPath=$.event.stndDefinedFields.schemaReference
 event.externalSchema.stndDefinedDataPath=$.event.stndDefinedFields.data
 
 ## List all streamid per domain to be supported. The streamid should match to channel name on dmaapfile
-collector.dmaap.streamid=fault=ves-fault|syslog=ves-syslog|heartbeat=ves-heartbeat|measurementsForVfScaling=ves-measurement|mobileFlow=ves-mobileflow|other=ves-other|stateChange=ves-statechange|thresholdCrossingAlert=ves-thresholdCrossingAlert|voiceQuality=ves-voicequality|sipSignaling=ves-sipsignaling|notification=ves-notification|pnfRegistration=ves-pnfRegistration|3GPP-FaultSupervision=ves-3gpp-fault-supervision|3GPP-Heartbeat=ves-3gpp-heartbeat|3GPP-Provisioning=ves-3gpp-provisioning|3GPP-PerformanceAssurance=ves-3gpp-performance-assurance
-collector.dmaapfile=./etc/DmaapConfig.json
+collector.dmaap.streamid=fault=ves-fault|syslog=ves-syslog|heartbeat=ves-heartbeat|measurementsForVfScaling=ves-measurement|mobileFlow=ves-mobileflow|other=ves-other|stateChange=ves-statechange|thresholdCrossingAlert=ves-thresholdCrossingAlert|voiceQuality=ves-voicequality|sipSignaling=ves-sipsignaling|notification=ves-notification|pnfRegistration=ves-pnfRegistration|3GPP-FaultSupervision=ves-3gpp-fault-supervision|3GPP-Heartbeat=ves-3gpp-heartbeat|3GPP-Provisioning=ves-3gpp-provisioning|3GPP-PerformanceAssurance=ves-3gpp-performance-assurance|o-ran-sc-du-hello-world-pm-streaming-oas3=ves-o-ran-sc-du-hello-world-pm-streaming-oas3
+collector.dmaapfile=etc/ves-dmaap-config.json
 
 ## Path to the file containing description of api versions
 collector.description.api.version.location=etc/api_version_description.json
diff --git a/solution/integration/smo/oam/ves-collector/externalRepo/3gpp/rep/sa5/MnS/blob/Rel16/OpenAPI/README.md b/solution/integration/smo/oam/ves-collector/externalRepo/3gpp/rep/sa5/MnS/blob/Rel16/OpenAPI/README.md
new file mode 100644 (file)
index 0000000..906dc9e
--- /dev/null
@@ -0,0 +1,52 @@
+# 3gpp Release 16 
+
+This folder should contain the 3GPP YAML files. Such files are used be the VES
+Collector to valid VES messages for domain 'stndDefined'.
+
+Please copy the files from 
+```
+https://forge.3gpp.org/rep/sa5/MnS/tree/Rel-16/OpenAPI
+```
+
+For E-Release only the following schemas ...
+
+ * comDefs.yaml
+ * faultMnS.yaml
+ * fileDataReportingMnS.yaml
+ * heartbeatNtf.yaml
+ * perfMnS.yaml
+ * provMnS.yaml
+
+.. are supported.
+
+Therefore the references (dependencies) in the file 'provMnS.yaml' to other schemas must be commanded, otherwise the schema itself would invalid.
+
+# Temporary modification for E-Release in 'provMnS.yaml'
+
+In this release only a subset of 3GPP Release 16 schema are supported. References to non supported schemas should be commanded, until those are supported.
+
+```
+developer @ localhost ~/workspace/_3gpp/MnS/OpenAPI (Rel-16)
+└─ $ ▶ git diff .
+diff --git a/OpenAPI/provMnS.yaml b/OpenAPI/provMnS.yaml
+index 1dd467e..699bdce 100644
+--- a/OpenAPI/provMnS.yaml
++++ b/OpenAPI/provMnS.yaml
+@@ -412,11 +412,11 @@ components:
+             type: array
+             items:
+               type: object
+-        - anyOf:
+-            - $ref: 'genericNrm.yaml#/components/schemas/resources-genericNrm'
+-            - $ref: 'nrNrm.yaml#/components/schemas/resources-nrNrm'
+-            - $ref: '5gcNrm.yaml#/components/schemas/resources-5gcNrm'
+-            - $ref: 'sliceNrm.yaml#/components/schemas/resources-sliceNrm'
++        # - anyOf:
++        #     - $ref: 'genericNrm.yaml#/components/schemas/resources-genericNrm'
++        #     - $ref: 'nrNrm.yaml#/components/schemas/resources-nrNrm'
++        #     - $ref: '5gcNrm.yaml#/components/schemas/resources-5gcNrm'
++        #     - $ref: 'sliceNrm.yaml#/components/schemas/resources-sliceNrm'
+     MoiChange:
+       type: object
+```
diff --git a/solution/integration/smo/oam/ves-collector/externalRepo/o-ran-sc/experimental/o-ran-sc-du-hello-world-pm-streaming-oas3.yaml b/solution/integration/smo/oam/ves-collector/externalRepo/o-ran-sc/experimental/o-ran-sc-du-hello-world-pm-streaming-oas3.yaml
new file mode 100644 (file)
index 0000000..361fc7e
--- /dev/null
@@ -0,0 +1,222 @@
+openapi: 3.0.3
+info:
+  version: 0.0.0
+  title: O-RAN-SC-DU PM Streaming
+  description: >-
+    The O-RAN-SC E-Release provides a mechanism for Performance Measurement
+    streaming.
+
+
+    The streaming interfaces depends on the o-ran-sc-du-hello-world.yang and
+    the schemas could be used as extension sot the VES domain 'stndDefind'.
+    The event message is send from a network-function to a SMO.
+
+
+    Copyright 2021 highstreet technologies GmbH
+
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+
+    reference: https://jira.o-ran-sc.org/browse/OAM-234.
+
+servers:
+  - url: https://management-service-consumer:8443/v1
+    description: The url of an event stream consumer.
+paths:
+  /performance-measurement-stream:
+    post:
+      description: Posts a collection of measurements.
+      summary: POST performance-measurement-stream
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/performance-measurement-job'
+        description: Collection of measurements.
+      responses:
+        '201':
+          description: Posted
+        '400':
+          description: Bad Request
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error-response'
+        '401':
+          description: Unauthorized
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error-response'
+        '403':
+          description: Forbidden
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error-response'
+        '404':
+          description: Not Found
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error-response'
+        '405':
+          description: Method Not allowed
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error-response'
+        '409':
+          description: Conflict
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error-response'
+        '500':
+          description: Internal Server Error
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error-response'
+        default:
+          description: Error case.
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/error-response'
+components:
+  schemas:
+    error-response:
+      description: >-
+        Used when an API throws an error with a HTTP error response-code (3xx,
+        4xx, 5xx)
+      type: object
+      required:
+        - reason
+      properties:
+        reason:
+          type: string
+          description: >-
+            Explanation of the reason for the error which can be shown to a
+            human user.
+        message:
+          type: string
+          description: >-
+            More details and corrective actions related to the error which can
+            be shown to a human user.
+        documentation-reference:
+          type: string
+          format: uri
+          description: URI of describing the error.
+    measurement:
+      description: An abstract object class of a measurement.
+      type: object
+      required:
+        - measurement-type-instance-reference
+        - value
+      properties:
+        measurement-type-instance-reference:
+          type: string
+          description: >-
+            A YANG instance identifier for a supported measurement type
+            according to the definitions in o-ran-sc-du-hello-world.yang.
+
+            Example for average downlink user equipment throughput per cell
+            /network-function/distributed-unit-functions[id='<id-value>']/cell[id='<id-value']/supported-measurements/performance-measurement-type[.='user-equipment-average-throughput-downlink']
+
+            Example for a specific slice-differentiator (here sd=12345) subcounter of average downlink user equipment throughput
+            /network-function/distributed-unit-functions[id='<id-value>']/cell[id='<id-value']/supported-measurements/performance-measurement-type[.='user-equipment-average-throughput-downlink']/supported-snssai-subcounter-instances/slice-differentiator[.=12345]";
+        value:
+          # oneOf:
+          #   - type: boolean
+          #     description: A boolean value for the measurement.
+          type: integer
+          description: A integer value for the measurement.
+            # - type: number
+            #   description: A number value for the measurement.
+            # - type: string
+            #   description: A string value for the measurement.
+          # description: 'The value of the measurement type for its period. '
+        unit:
+          type: string
+          maxLength: 255
+          description: >-
+            The unit for the measurement. If there is a unit associated to the
+            measurement the network-function MUST provide this field. It is
+            recommended to follow International System of Units (SI).
+    measurements:
+      description: A collection of measurements.
+      type: array
+      items:
+        $ref: '#/components/schemas/measurement'
+    performance-measurement-job:
+      description: The performance measurement job header and a collection of measurements.
+      type: object
+      required:
+        - id
+        - start-time
+        - granularity-period
+        - measurements
+      properties:
+        id:
+          type: string
+          description: >-
+            The identifier configured by the event stream consumer within a
+            event stream provider for a performance-measurement-job.
+        start-time:
+          type: string
+          format: date-time
+          description: 'The timestamp when the measurement was started. '
+        administrative-state:
+          description: >-
+            Administrative state of an object. Indicates the permission to use
+            or prohibition against the object, imposed through the OAM services.
+          type: string
+          default: locked
+          enum:
+            - locked
+            - unlocked
+            - shutting-down
+        operational-state:
+          type: string
+          default: disabled
+          enum:
+            - enabled
+            - disabled
+          description: >-
+            Operational state of the object. Indicates whether the associated
+            resource is installed and partially or fully operable (enabled) or
+            the associated resource is not installed or not operable (disabled).
+        user-label:
+          type: string
+          maxLength: 255
+          description: >-
+            A user defined label of the object. There is no function associated
+            to the user label. However, the network function stores the value
+            persistently.
+        job-tag:
+          type: string
+          maxLength: 255
+          description: >-
+            A job group identifier to combine several
+            performance-measurement-jobs to one logical job.
+        granularity-period:
+          type: number
+          format: int32
+          description: >-
+            The interval time in seconds between the start of a measurement and
+            the end of a measurement
+        measurements:
+          $ref: '#/components/schemas/measurements'
+          description: The collection of measurements.
diff --git a/solution/integration/smo/oam/ves-collector/externalRepo/schema-map.json b/solution/integration/smo/oam/ves-collector/externalRepo/schema-map.json
new file mode 100644 (file)
index 0000000..4e83711
--- /dev/null
@@ -0,0 +1,42 @@
+[
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/faultMnS.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/faultMnS.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/heartbeatNtf.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/heartbeatNtf.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/PerDataFileReportMnS.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/PerDataFileReportMnS.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/provMnS.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/SA88-Rel16/OpenAPI/provMnS.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/Rel16/OpenAPI/faultMnS.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/Rel16/OpenAPI/faultMnS.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/Rel16/OpenAPI/heartbeatNtf.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/Rel16/OpenAPI/heartbeatNtf.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/Rel16/OpenAPI/fileDataReportingMnS.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/Rel16/OpenAPI/fileDataReportingMnS.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/Rel16/OpenAPI/perfMnS.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/Rel16/OpenAPI/perfMnS.yaml"
+  },
+  {
+    "publicURL": "https://forge.3gpp.org/rep/sa5/MnS/blob/Rel16/OpenAPI/provMnS.yaml",
+    "localURL": "3gpp/rep/sa5/MnS/blob/Rel16/OpenAPI/provMnS.yaml"
+  },
+  {
+    "publicURL": "https://gerrit.o-ran-sc.org/r/gitweb?p=scp/oam/modeling.git;a=blob_plain;f=data-model/oas3/experimental/o-ran-sc-du-hello-world-pm-streaming-oas3.yaml",
+    "localURL": "o-ran-sc/experimental/o-ran-sc-du-hello-world-pm-streaming-oas3.yaml"
+  }
+]
\ No newline at end of file
diff --git a/solution/integration/smo/oam/ves-collector/ves-dmaap-config.json b/solution/integration/smo/oam/ves-collector/ves-dmaap-config.json
new file mode 100644 (file)
index 0000000..8653ac0
--- /dev/null
@@ -0,0 +1,212 @@
+{
+  "ves-syslog": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-statechange": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-thresholdCrossingAlert": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-heartbeat": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT/"
+    }
+  },
+  "ves-other": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.SEC_OTHER_OUTPUT/"
+    }
+  },
+  "ves-mobileflow": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-sipsignaling": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-voicequality": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-fault": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.SEC_FAULT_OUTPUT/"
+    }
+  },
+  "ves-measurement": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT/"
+    }
+  },
+  "ves-3gpp-fault-supervision": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT/"
+    }
+  },
+  "ves-3gpp-provisioning": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.SEC_3GPP_PROVISIONING_OUTPUT/"
+    }
+  },
+  "ves-3gpp-heartbeat": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.SEC_3GPP_HEARTBEAT_OUTPUT/"
+    }
+  },
+  "ves-3gpp-performance-assurance": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.SEC_3GPP_PERFORMANCEASSURANCE_OUTPUT/"
+    }
+  },
+  "ves-syslog-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-statechange-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-thresholdCrossingAlert-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-heartbeat-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-other-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-mobileflow-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-sipsignaling-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTSves7_valid_ip_v4.json-DEV"
+    }
+  },
+  "ves-voicequality-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-fault-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-measurement-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-3gpp-fault-supervision-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT"
+    }
+  },
+  "ves-3gpp-provisioning-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT"
+    }
+  },
+  "ves-3gpp-heartbeat-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-3gpp-performance-assurance-secondary": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/DCAE-SE-COLLECTOR-EVENTS-DEV"
+    }
+  },
+  "ves-pnfRegistration": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.VES_PNFREG_OUTPUT/"
+    }
+  },
+  "ves-o-ran-sc-du-hello-world-pm-streaming-oas3": {
+    "type": "message_router",
+    "dmaap_info": {
+      "location": "mtl5",
+      "topic_url": "http://onap-dmaap:3904/events/unauthenticated.VES_O_RAN_SC_HELLO_WORLD_PM_STREAMING_OUTPUT/"
+    }
+  }
+}
\ No newline at end of file