D.2 Performance data streaming for stopping measurement collection

28.5503GPPManagement and orchestrationPerformance assuranceRelease 18TS

D.2.1 Sequence flow

This annex shows the holistic sequence for performance data streaming in connection with the measurement collection termination.

Figure D.2.1-1

1. The consumer of MnS for measurement control requests the MnS producer to stop the measurement collection by the following two alternatives:

1) by the measurement job control service

1a. The MnS consumer invokes the stopMeasurementJob operation towards the MnS producer;

2) by the configurable measurement control service (a.k.a, NRM fragment-based measurement control service)

1b. The MnS consumer deletes the PerfMetricJob MOI , by invoking the deleteMOI operation towards the MnS producer;

1c. The MnS consumer modifies the PerfMetricJob MOI with deletion of the measurements that do not need to be collected anymore, by invoking the modifyMOIAttributes operation towards the MnS producer.

2. The producer of MnS for measurement control requests the NF to stop collecting the measurements. The mechanism of this step is vendor specific. If producer of MnS for measurement control is in the NF, this step can be skipped.

3. The NF stops collecting the measurements. This step is the internal behaviour of the NF.

4. The NF triggers the producer of MnS for performance data streaming to terminate streaming for the measurements. The mechanism of this step is vendor specific. If producer of MnS for performance data streaming is in the NF, this step can be skipped.

5. The producer of MnS for performance data streaming communicates with the consumer to:

5a. terminate the streaming (WebSocket) connection if no measurements need to be reported to the consumer anymore, by invoking the terminateStreamingConnection operation;

5b. delete the information for the stream(s) obsoleted due to the termination of the measruements collection if the streaming connection still needs to be retained, by invoking the deleteStreamInfo operation;

5c. update the information for the stream(s) partially affected by the termination of the measurements collection, by invoking the updateStreamInfo operation.

D.2.2 PlantUML codes

@startuml

skinparam shadowing false

skinparam monochrome true

hide footbox

participant "Consumer of MnS for\n measurement control" as MC

participant "Producer of MnS for\n measurement control" as MP

participant "NF" as NF

participant "Producer of MnS for\n performance data streaming" as SP

participant "Consumer of MnS for\n performance data streaming" as SC

alt Measurement job control service

MC -> MP : 1a. stopMeasurementJob\n(jobId)

else configurable measurement job control service (i.e., NRM fragment based MnS)

alt delete the MOI to terminate measurements collection

MC -> MP : 1b. deleteMOI\n(for PerfMetricJob MOI)

Else update existing MOI to terminate measurements collection

MC -> MP : 1c. modifyMOIAttributes\n(for PerfMetricJob MOI) end

end

MP –> NF: 2. terminate measurement\n collection (proprietory)

NF -> NF: 3. stop collecting the measurements

NF –> SP: 4. terminate streaming for the\n measurements (proprietory)

alt Streaming (WebSocket) connection is not needed anymore\n (e.g., no measurements need to be reported to the stream target)

SP->SC: 5a. terminateStreamingConnection()

else Streaming (WebSocket) connection is still needed

alt delete the obsolete stream(s)

loop For all of streams need to be deleted

SP->SC: 5b. deleteStreamInfo()

end

else update existing stream(s)

SP->SC: 5c. updateStreamInfo()

end

end

@enduml

Annex E (normative):
OpenAPI specification

E.1 Introduction

This clause describes the capabilities of the Management Services in the structure of the OpenAPI Specification Version 3.0.1. The OpenAPI document is represented in the YAML format option.

E.2 OpenAPI document " TS28550_PerMeasJobCtlMnS.yaml"

openapi: 3.0.1

info:

title: TS 28.550 Performance Measurement Job Control Service

version: 16.8.0

description: >-

OAS 3.0.1 specification of the Performance Measurement Job Control Service

@ 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).

All rights reserved.

externalDocs:

description: 3GPP TS 28.550 V16.8.0; Performance assurance

url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.550/

servers:

– url: ‘{MnSRoot}/PerfMeasJobCtrlMnS/{MnSVersion}’

variables:

MnSRoot:

description: See clause 4.4.2 of TS 32.158

default: http://example.com/3GPPManagement

MnSVersion:

description: Version number of the OpenAPI definition

default: XXX

paths:

/measJobs:

post:

summary: Create a measurement job

description: To create a measurement job the representation of the measurement job is POSTed on the /measJobs collection resource.

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/measJobCreation-RequestType’

responses:

‘201’:

description: Success case ("201 Created"). The representation of the newly created measurement job resource shall be returned.

content:

application/json:

schema:

$ref: ‘#/components/schemas/measJobCreation-ResponseType’

‘202’:

description: Partial success case ("202 Partically created"). The representation of the newly created measurement job resource with unsupported list shall be returned.

content:

application/json:

schema:

$ref: ‘#/components/schemas/measJobCreation-ResponseType’

default:

description: Error case.

content:

application/json:

schema:

$ref: ‘#/components/schemas/error-ResponseType’

get:

summary: Read resources of measurement jobs

description: ‘With HTTP GET, resources of measurement jobs are read. The resources to be read are identified with the path component (base resource) and the query component (jobIdList) of the URI. The fields query component allows to select the resource properties to be returned.’

parameters:

– name: jobIdList

in: query

description: This parameter identifies the list of jobId to select the resources from the collection resources identified with the path component of the URI.

required: true

schema:

type: array

items:

type: string

responses:

‘200’:

description: ‘Success case ("200 OK"). The resources identified in the request for retrieval are returned in the response message body. In case the fields query parameter is used, the selected resources are returned.’

content:

application/json:

schema:

$ref: ‘#/components/schemas/measJobsRetrieval-ResponseType’

default:

description: Error case.

content:

application/json:

schema:

$ref: ‘#/components/schemas/error-ResponseType’

‘/measJobs/{jobId}’:

get:

summary: Read resource of a single measurement job

description: ‘With HTTP GET, resource of a measurement job is read. The resource to be read is identified with the path component of the URI.’

parameters:

– name: jobId

in: path

description: Identifies the measurement job to be read.

required: true

schema:

$ref: ‘#/components/schemas/uri-Type’

responses:

‘200’:

description: ‘Success case ("200 OK"). The resource identified in the path for retrieval is returned in the response message body. ‘

content:

application/json:

schema:

$ref: ‘#/components/schemas/measJobsRetrieval-ResponseType’

default:

description: Error case.

content:

application/json:

schema:

$ref: ‘#/components/schemas/error-ResponseType’

delete:

summary: Delete a single measurement job

description: The measurement job is deleted by deleting the corresponding measurement job resource. The resource to be deleted is identified with the path component of the URI.

parameters:

– name: jobId

in: path

description: Identifies the measurement job to be deleted.

required: true

schema:

$ref: ‘#/components/schemas/uri-Type’

responses:

‘204’:

description: Success case ("204 No Content"). The measurement job resource has been deleted. The response message body is absent.

default:

description: Error case.

content:

application/json:

schema:

$ref: ‘#/components/schemas/error-ResponseType’

components:

schemas:

dateTime-Type:

type: string

format: date-Time

uri-Type:

type: string

measJobCreation-RequestType:

type: object

properties:

iOCName:

type: string

iOCInstanceList:

type: array

items:

$ref: ‘#/components/schemas/uri-Type’

measurementCategoryList:

type: array

items:

type: string

reportingMethod:

$ref: ‘#/components/schemas/reportingMethod-Type’

granularityPeriod:

type: integer

reportingPeriod:

type: integer

startTime:

$ref: ‘#/components/schemas/dateTime-Type’

stopTime:

$ref: ‘#/components/schemas/dateTime-Type’

schedule:

$ref: ‘#/components/schemas/schedule-Type’

streamTarget:

type: string

priority:

$ref: ‘#/components/schemas/priority-Type’

reliability:

type: string

measJobCreation-ResponseType:

type: object

properties:

unsupportedList:

type: array

items:

$ref: ‘#/components/schemas/unsupportedMeas-Type’

measJobsRetrieval-ResponseType:

type: object

properties:

jobInfoList:

type: array

items:

$ref: ‘#/components/schemas/measJobInfo-ResourceType’

error-ResponseType:

type: object

properties:

error:

type: object

properties:

errorInfo:

type: string

measJobInfo-ResourceType:

type: object

properties:

href:

$ref: ‘#/components/schemas/uri-Type’

iOCName:

type: string

iOCInstanceList:

type: array

items:

$ref: ‘#/components/schemas/uri-Type’

measurementCategoryList:

type: array

items:

type: string

reportingMethod:

$ref: ‘#/components/schemas/reportingMethod-Type’

granularityPeriod:

type: integer

reportingPeriod:

type: integer

startTime:

$ref: ‘#/components/schemas/dateTime-Type’

stopTime:

$ref: ‘#/components/schemas/dateTime-Type’

schedule:

$ref: ‘#/components/schemas/schedule-Type’

streamTarget:

type: string

priority:

$ref: ‘#/components/schemas/priority-Type’

reliability:

type: string

schedule-Type:

type: object

properties:

scheduleOption:

$ref: ‘#/components/schemas/scheduleOption-Type’

dailySchedule:

type: array

items:

$ref: ‘#/components/schemas/timeInterval-Type’

weeklySchedule:

type: array

items:

$ref: ‘#/components/schemas/scheduleOfDay-Type’

timeInterval-Type:

type: object

properties:

intervalStart:

type: string

format: Time

intervalEnd:

type: string

format: Time

scheduleOfDay-Type:

type: object

properties:

dayOfWeek:

$ref: ‘#/components/schemas/dayOfWeek-Type’

intervalsOfDay:

type: array

items:

$ref: ‘#/components/schemas/timeInterval-Type’

unsupportedMeas-Type:

type: object

properties:

iOCInstance:

$ref: ‘#/components/schemas/uri-Type’

measurementTypeName:

type: string

reason:

type: string

reportingMethod-Type:

type: string

enum:

– file

– streaming

priority-Type:

type: string

enum:

– low

– medium

– high

scheduleOption-Type:

type: string

enum:

– daily

– weekly

dayOfWeek-Type:

type: string

enum:

– Monday

– Tuesday

– Wednesday

– Thursday

– Friday

– Saturday

– Sunday