You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

Deployment diagram:

5G - Real Time PM and High Volume Stream Data Collection - deployment

Link to specification:

5G-Real Time PM and High Volume Streaming Status

Hardware requirements:

  • ONAP - standard ONAP instance located in Wind River lab
  • Virtual machine dedicated for High Volume PNF Simulator
    • 8 VCPU
    • 30 GB of RAM
    • 100 GB of HDD

Sequence diagram:

5G Real Time PV with HV-VES Collector Flow

High level test cases:


Flow Step

Test Case Description

Status

TC1

Authenticate Connection

Verifying the connection can be established using TCP

NOT TESTED

TC2

NF sends Real Time PM event and HV-VES Collector validates Event

Verify that VES Collector can receive and validate the hvMeas event—a) success—event header and field population agrees with GPB and b) failure event does not agree with GPB specification

NOT TESTED

TC3

Publish Event

Verify that direct publication is done successfully to Kafka)

NOT TESTED

TC4

Topic Content Validation

Using a simple analytics program subscribe to the RTPM topic and verify amount events in topic.


NOT TESTED
TC5Topic Content Validation (stretched goal)

Using a simple analytics program subscribe to the RTPM topic and using PM Dictionary/e.g. PM Content Meta Data and proto file generated code decode the data and display (stretched goal)

NOT TESTED

TC6

Additional Test Case for Performance

PNF High Volume Simulator sends N correct messages. DCAE Analytics application should consume N messages from DMaaP Kafka

NOT TESTED

TC7

Additional Test Case for Performance

PNF High Volume Simulator sends N1 correct messages, N2 incorrect due to wrong domain, N3 correct ones. DCAE Analytics application should consume N1+N3 messages from DMaaP Kafka

NOT TESTED

TC8

Additional Test Case for Performance

PNF High Volume Simulator sends N1 correct messages, N2 incorrect due to wrong wireprotocol, N3 correct ones. DCAE Analytics application should consume N1+N3 messages from DMaaP Kafka

NOT TESTED

TC9

Additional Test Case for Performance

PNF High Volume Simulator sends N1 correct messages, N2 incorrect due to undecodable GPB, N3 correct ones. DCAE Analytics application should consume N1+N3 messages from DMaaP Kafka

NOT TESTED

TC10

Additional Test Case for Performance

PNF High Volume Simulator sends N1 correct messages wherein one message have to big GPB payload.  DCAE Analytics application should consume less then N1 messages from DMaaP Kafka. Verify if HV-VES has disconnected from such PNF

NOT TESTED

Detail test cases

TC1 : Authenticate Connection

TC1 : Authenticate Connection

Spec flow1.
StatusNo run
TesterMarek Pondel
PreconditionHV-VES XNF simulator (https://wiki.onap.org/display/DW/HV-VES+simulator) integrated to ONAP.
Steps1.

Check if HV-VES component supports TLS using nmap command , e.g. :

nmap --script ssl-enum-ciphers -p6061 172.18.0.5
Expected results1.

HV-VES supports TCP and TLS connections :

root@marekpl-rtpmsim:~# nmap --script ssl-enum-ciphers -p6061 172.18.0.5

Starting Nmap 7.01 ( https://nmap.org ) at 2018-08-30 11:39 UTC
Nmap scan report for 172.18.0.5
Host is up (0.000026s latency).
PORT     STATE SERVICE
6061/tcp open  unknown
| ssl-enum-ciphers: 
|   TLSv1.0: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|     compressors: 
|       NULL
|     cipher preference: server
|   TLSv1.1: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|     compressors: 
|       NULL
|     cipher preference: server
|   TLSv1.2: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|     compressors: 
|       NULL
|     cipher preference: server
|_  least strength: A
MAC Address: 02:42:AC:12:00:05 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.78 seconds
root@marekpl-rtpmsim:~#
2.

Gather TCP traffic during event is sent to HV-VES via XNF simulator, e.g. :

tcpdump -i br-2663c4bf9ffd -X tcp portrange 6060-6061 -w ~/ssl.cap
2.

Based on gathered cap file check if TLS connection was established during message sending to HV-VES :

TC2 : NF sends Real Time PM event and HV-VES Collector validates Event

TC2 : NF sends Real Time PM event and HV-VES Collector validates Event

Spec flow2.
StatusNo run
TesterMarek Pondel
PreconditionHV-VES XNF simulator (https://wiki.onap.org/display/DW/HV-VES+simulator) integrated to ONAP.
Steps1.

Send valid GPB format event to HV-VES and check logs , e.g.

root@marekpl-rtpmsim:~# cat validXNF.json
[
  {
    "commonEventHeader": {
      "version": "sample-version",
      "domain": "HVRANMEAS",
      "sequence": 1,
      "priority": 1,
      "eventId": "sample-event-id",
      "eventName": "sample-event-name",
      "eventType": "sample-event-type",
      "startEpochMicrosec": 120034455,
      "lastEpochMicrosec": 120034455,
      "nfNamingCode": "sample-nf-naming-code",
      "nfcNamingCode": "sample-nfc-naming-code",
      "reportingEntityId": "sample-reporting-entity-id",
      "reportingEntityName": "sample-reporting-entity-name",
      "sourceId": "sample-source-id",
      "sourceName": "sample-source-name"
    },
    "messageType": "FIXED_PAYLOAD",
    "messagesAmount": 1
  }
]
root@marekpl-rtpmsim:~# ./simulator.sh send ./validXNF.json
{"response":"Request accepted"}
root@marekpl-rtpmsim:~#
Expected results1.

Message is sent properly :

root@marekpl-rtpmsim:~# docker logs --tail 0 -f 26c0470fef94
2018-08-30T12:20:44.098Z INFO  [o.o.d.c.v.i.s.NettyTcpServer            ] - Handling connection from /172.18.0.6:60070
2018-08-30T12:20:44.099Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder          ] - Got message with total size of 336 B
2018-08-30T12:20:44.099Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder          ] - Wire payload size: 328 B
2018-08-30T12:20:44.100Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder          ] - Received end-of-transmission message
2018-08-30T12:20:44.100Z INFO  [o.o.d.c.v.i.VesHvCollector              ] - Completing stream because of receiving EOT message
2018-08-30T12:20:44.101Z TRACE [o.o.d.c.v.i.a.k.KafkaSink               ] - Message #76 has been sent to ves_hvRanMeas:0
2018-08-30T12:20:44.101Z INFO  [o.o.d.c.v.i.s.NettyTcpServer            ] - Connection from /172.18.0.6:60070 has been closed
2.

Send invalid GPB format event to HV-VES and check logs :

root@marekpl-rtpmsim:~# cat invalidXNF.json
[
  {
    "commonEventHeader": {
      "version": "sample-version",
      "domain": "HVRANMEAS",
      "sequence": 1,
      "priority": 1,
      "eventId": "sample-event-id",
      "eventName": "sample-event-name",
      "eventType": "sample-event-type",
      "startEpochMicrosec": 120034455,
      "lastEpochMicrosec": 120034455,
      "nfNamingCode": "sample-nf-naming-code",
      "nfcNamingCode": "sample-nfc-naming-code",
      "reportingEntityId": "sample-reporting-entity-id",
      "reportingEntityName": "sample-reporting-entity-name",
      "sourceId": "sample-source-id",
      "sourceName": "sample-source-name"
    },
    "messageType": "VALID",
    "messagesAmount": 1
  },
  {
    "commonEventHeader": {
      "version": "sample-version",
      "domain": "HVRANMEAS",
      "sequence": 1,
      "priority": 1,
      "eventId": "sample-event-id",
      "eventName": "sample-event-name",
      "eventType": "sample-event-type",
      "startEpochMicrosec": 120034455,
      "lastEpochMicrosec": 120034455,
      "nfNamingCode": "sample-nf-naming-code",
      "nfcNamingCode": "sample-nfc-naming-code",
      "reportingEntityId": "sample-reporting-entity-id",
      "reportingEntityName": "sample-reporting-entity-name",
      "sourceId": "sample-source-id",
      "sourceName": "sample-source-name"
    },
    "messageType": "INVALID_GPB_DATA",
    "messagesAmount": 1
  },
  {
    "commonEventHeader": {
      "version": "sample-version",
      "domain": "HVRANMEAS",
      "sequence": 1,
      "priority": 1,
      "eventId": "sample-event-id",
      "eventName": "sample-event-name",
      "eventType": "sample-event-type",
      "startEpochMicrosec": 120034455,
      "lastEpochMicrosec": 120034455,
      "nfNamingCode": "sample-nf-naming-code",
      "nfcNamingCode": "sample-nfc-naming-code",
      "reportingEntityId": "sample-reporting-entity-id",
      "reportingEntityName": "sample-reporting-entity-name",
      "sourceId": "sample-source-id",
      "sourceName": "sample-source-name"
    },
    "messageType": "VALID",
    "messagesAmount": 1
  }
]
root@marekpl-rtpmsim:~# ./simulator.sh send invalidXNF.json 
{"response":"Request accepted"}
2.

Invalid message was not sent to DMaaP topic. HV-VES log points proper number of messages processed :

root@marekpl-rtpmsim:~# docker logs --tail 0 -f 26c0470fef94
2018-08-30T12:41:22.941Z INFO  [o.o.d.c.v.i.s.NettyTcpServer            ] - Handling connection from /172.18.0.6:60880
2018-08-30T12:41:22.941Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder          ] - Got message with total size of 693 B
2018-08-30T12:41:22.941Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder          ] - Wire payload size: 327 B
2018-08-30T12:41:22.942Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder          ] - Wire payload size: 16 B
2018-08-30T12:41:22.943Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder          ] - Wire payload size: 328 B
2018-08-30T12:41:22.943Z TRACE [o.o.d.c.v.i.a.k.KafkaSink               ] - Message #86 has been sent to ves_hvRanMeas:0
2018-08-30T12:41:22.944Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder          ] - Received end-of-transmission message
2018-08-30T12:41:22.944Z INFO  [o.o.d.c.v.i.VesHvCollector              ] - Completing stream because of receiving EOT message
2018-08-30T12:41:22.944Z TRACE [o.o.d.c.v.i.a.k.KafkaSink               ] - Message #87 has been sent to ves_hvRanMeas:0
2018-08-30T12:41:22.945Z INFO  [o.o.d.c.v.i.s.NettyTcpServer            ] - Connection from /172.18.0.6:60880 has been closed

TC3 : Publish Event

TC3 : Publish Event

Spec flow3.
StatusNo run
TesterMarek Pondel
PreconditionHV-VES XNF simulator (https://wiki.onap.org/display/DW/HV-VES+simulator) integrated to ONAP.
Steps1.

Start Kafka log on ves_hvRanMeas topic :

root@marekpl-rtpmsim:~# docker exec -ti 0e0d1e4599b6 sh
/ # kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ves_hvRanMeas
Expected results1.

The log is enabled.

2.
Send valid event to HV-VES using XNF simulator.
2.

The message is published on DMaaP ves_hvRanMeas topic :

/ # kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ves_hvRanMeas

?
sample-version
                *sample-version2sample-version:sample-version@???9H???9Rsample-nf-naming-codeZsample-nfc-naming-codebsample-reporting-entity-idjsample-reporting-entity-namersample-source-idzsample-source-named

TC4 : Topic Content Validation

TC4 : Topic Content Validation

Spec flow4.
StatusNo run
TesterMarek Pondel
PreconditionHV-VES XNF simulator (https://wiki.onap.org/display/DW/HV-VES+simulator) integrated to ONAP.
Steps1.

Start Kafka log.

Expected results1.

The log is enabled.

2.
Send valid event to HV-VES and validate its content , e.g.


root@hv-ves-sim:~# cat hv-ves_sim/samples/xnf-simulator-smaller-valid-request_edited.json
[
 {
 "commonEventHeader": {
 "version": "sample-version",
 "domain": "HVRANMEAS",
 "sequence": 1,
 "priority": 1,
 "eventId": "SAMPLE-EVENT-ID",
 "eventName": "sample-event-name",
 "eventType": "sample-event-type",
 "startEpochMicrosec": 120034455,
 "lastEpochMicrosec": 120034455,
 "nfNamingCode": "sample-nf-naming-code",
 "nfcNamingCode": "sample-nfc-naming-code",
 "reportingEntityId": "sample-reporting-entity-id",
 "reportingEntityName": "sample-reporting-entity-name",
 "sourceId": "sample-source-id",
 "sourceName": "SAMPLE-SOURCE-NAME"
 },
 "messageType": "FIXED_PAYLOAD",
 "messagesAmount": 1
 }
]
root@hv-ves-sim:~#
2.

 Published event contains expected content , e.g.


root@hv-ves-sim:~# kafkacat -C -b localhost:9092 -t ves_hvRanMeas -D "" -o -1 -c 1 | protoc --decode_raw --proto_path=~/hv-ves_sim/proto/
 1 {
 1: "sample-version"
 2: 11
 3: 1
 4: 1
 5: "SAMPLE-EVENT-ID"
 6: "sample-event-name"
 7: "sample-event-type"
 8: 120034455
 9: 120034455
 10: "sample-nf-naming-code"
 11: "sample-nfc-naming-code"
 12: "sample-reporting-entity-id"
 13: "sample-reporting-entity-name"
 14: "sample-source-id"
 15: "SAMPLE-SOURCE-NAME"
 }
 2: "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 root@hv-ves-sim:~#

To do

  • Define non-functional (performance) requirements for HV-VES.
  • TC5 - TC10 update based on non-functional HV-VES requirements.
  • No labels