diff --git a/SRV/RNIS/RnisSpecificSubscription_BV.robot b/SRV/RNIS/RnisSpecificSubscription_BV.robot new file mode 100644 index 0000000000000000000000000000000000000000..f22246a1e62b2718dfe7f5e8979b48acf49b5a56 --- /dev/null +++ b/SRV/RNIS/RnisSpecificSubscription_BV.robot @@ -0,0 +1,35 @@ +''[Documentation] robot --outputdir ../../outputs ./RnisSpecificSubscription_BV.robot +... Test Suite to validate RNIS/Subscription (RNIS) operations. + +*** Settings *** +Resource environment/variables.txt +Resource environment/pics.txt +Resource resources/GenericKeywords.robot +Resource resources/RadioNetworkInformationAPI.robot +Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_verify=false + + + +*** Test Cases *** +Request RNIS subscription list + [Documentation] TC_MEC_SRV_RNIS_011_OK + ... Check that the RNIS service sends the list of links to the relevant RNIS subscriptions when requested + ... ETSI GS MEC 012 2.0.4, clause 7.6.3.1 + ... Reference https://forge.etsi.org/gitlab/mec/gs012-rnis-api/blob/master/RniAPI.yaml#/definitions/SubscriptionLinkList + Get RNIS subscription list + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is RadioNetworkInformationAPI + log ${response['body']['SubscriptionLinkList']['_links']} + Should Be Equal ${response['body']['SubscriptionLinkList']['_links']['self']} ${LINKS_SELF} + + +*** Keywords *** +Get RNIS subscription list + Should Be True ${PIC_RNIS_SPECIFIC_SUBSCRIPTION} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Length":"0"} + Get /exampleAPI/rni/v2/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} diff --git a/SRV/RNIS/environment/pics.txt b/SRV/RNIS/environment/pics.txt new file mode 100644 index 0000000000000000000000000000000000000000..19566139cfab662f9cfe098172bb155ac23947cc --- /dev/null +++ b/SRV/RNIS/environment/pics.txt @@ -0,0 +1,3 @@ +*** Variables *** + +${PIC_RNIS_SPECIFIC_SUBSCRIPTION} 1 diff --git a/SRV/RNIS/environment/variables.txt b/SRV/RNIS/environment/variables.txt new file mode 100644 index 0000000000000000000000000000000000000000..0ab03a2d6b3403fa841612d3a6c7fa4b7f674dca --- /dev/null +++ b/SRV/RNIS/environment/variables.txt @@ -0,0 +1,11 @@ +*** Variables *** +${MEC-APP_SCHEMA} http +#${MEC-APP_HOST} 172.28.4.87 +#${MEC-APP_HOST} 127.0.0.1 +${MEC-APP_HOST} 192.168.56.1 +${MEC-APP_PORT} 8081 +${SUBSCRIPTION_ID} 7777 +${NON_EXISTENT_SUBSCRIPTION_ID} 6666 +${LINKS_SELF} http://example.com/exampleAPI/rni/v2/subscriptions +${response} {} +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l diff --git a/SRV/RNIS/resources/GenericKeywords.robot b/SRV/RNIS/resources/GenericKeywords.robot new file mode 100644 index 0000000000000000000000000000000000000000..d06df4d60538eb2fb1bb5860c1317a6929dea76a --- /dev/null +++ b/SRV/RNIS/resources/GenericKeywords.robot @@ -0,0 +1,38 @@ +*** Settings *** +Resource ../environment/variables.txt +Resource GenericKeywords.robot +Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_verify=false +Library JSONSchemaLibrary schemas/ + +*** Keywords *** +Get User Equipment for location with filters + [Arguments] ${value} + Set Headers {"Accept":"application/json"} + Get /location/v2/users/${value} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + ${status}= Convert To Integer ${expected_status} + Should Be Equal ${response['status']} ${status} + Log Status code validated + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK + +Should Be Present In Json List + [Arguments] ${expr} ${json_field} ${json_value} + Log Check if ${json_field} is present in ${expr} with the value ${jsonvalue} + :FOR ${item} IN @{expr} + \ Exit For Loop If "${item['${json_field}']}" == "${json_value}" + Log Item found ${item} + [return] ${item} + +Check Result Contains + [Arguments] ${source} ${parameter} ${value} + Should Be Present In Json List ${source} ${parameter} ${value} diff --git a/SRV/RNIS/resources/LocationAPI.robot b/SRV/RNIS/resources/LocationAPI.robot new file mode 100644 index 0000000000000000000000000000000000000000..012566b6272c851febfcbd5da8e253a8e7733b2c --- /dev/null +++ b/SRV/RNIS/resources/LocationAPI.robot @@ -0,0 +1,12 @@ +*** Settings *** +Resource ../environment/variables.txt +Resource LocationAPI.robot +#Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_verify=false +Library JSONSchemaLibrary schemas/ + +*** Keywords *** +Check Location + [Arguments] ${value} + Log Check Location for userInfo element + Should be Equal ${response['body']['userInfo']['zoneId']} ${value} + Log Location OK diff --git a/SRV/RNIS/resources/RadioNetworkInformationAPI.robot b/SRV/RNIS/resources/RadioNetworkInformationAPI.robot new file mode 100644 index 0000000000000000000000000000000000000000..662e0b3e6b6ee0360a7c8a0597a8f57643278572 --- /dev/null +++ b/SRV/RNIS/resources/RadioNetworkInformationAPI.robot @@ -0,0 +1,9 @@ +*** Settings *** +Resource ../environment/variables.txt +Resource ../environment/pics.txt +Resource GenericKeywords.robot +Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_verify=false +Library JSONSchemaLibrary schemas/ + + +*** Keywords *** diff --git a/SRV/RNIS/schemas/RadioNetworkInformationAPI.schema.json b/SRV/RNIS/schemas/RadioNetworkInformationAPI.schema.json new file mode 100644 index 0000000000000000000000000000000000000000..493ec2da587369f4765fcca6b39b73d623afea0b --- /dev/null +++ b/SRV/RNIS/schemas/RadioNetworkInformationAPI.schema.json @@ -0,0 +1,968 @@ +{ + "ProblemDetails": { + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/Problem.type" + }, + "title": { + "$ref": "#/definitions/Problem.title" + }, + "status": { + "$ref": "#/definitions/Problem.status" + }, + "detail": { + "$ref": "#/definitions/Problem.detail" + }, + "instance": { + "$ref": "#/definitions/Problem.instance" + } + } + }, + "Problem.type": { + "type": "string", + "format": "uri", + "description": "A URI reference according to IETF RFC 3986 that identifies the problem type" + }, + "Problem.title": { + "type": "string", + "description": "A short, human-readable summary of the problem type" + }, + "Problem.status": { + "type": "integer", + "format": "uint32", + "description": "The HTTP status code for this occurrence of the problem" + }, + "Problem.detail": { + "type": "string", + "description": "A human-readable explanation specific to this occurrence of the problem" + }, + "Problem.instance": { + "type": "string", + "format": "uri", + "description": "A URI reference that identifies the specific occurrence of the problem" + }, + "PlmnInfo": { + "type": "object", + "required": [ + "appInsId", + "ecgi" + ], + "properties": { + "timeStamp": { + "$ref": "#/definitions/TimeStamp" + }, + "appInsId": { + "$ref": "#/definitions/AppInsId" + }, + "ecgi": { + "$ref": "#/definitions/Ecgi" + } + } + }, + "RabInfo": { + "type": "object", + "required": [ + "appInsId", + "requestId" + ], + "properties": { + "timeStamp": { + "$ref": "#/definitions/TimeStamp" + }, + "appInsId": { + "$ref": "#/definitions/AppInsId" + }, + "requestId": { + "$ref": "#/definitions/RequestId" + }, + "cellUserInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/CellUserInfo" + } + } + } + }, + "S1BearerInfo": { + "type": "object", + "required": [ + "s1UeInfo" + ], + "properties": { + "timeStamp": { + "$ref": "#/definitions/TimeStamp" + }, + "s1UeInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/S1UeInfo" + } + } + } + }, + "S1UeInfo": { + "type": "object", + "required": [ + "tempUeId", + "ecgi", + "s1BearerInfoDetailed" + ], + "properties": { + "tempUeId": { + "type": "array", + "items": { + "$ref": "#/definitions/TempUeId" + } + }, + "associateId": { + "type": "array", + "items": { + "$ref": "#/definitions/AssociateId" + } + }, + "ecgi": { + "type": "array", + "items": { + "$ref": "#/definitions/Ecgi" + } + }, + "s1BearerInfoDetailed": { + "type": "array", + "items": { + "$ref": "#/definitions/S1BearerInfoDetailed" + } + } + }, + "description": "The information on users per cell." + }, + "S1BearerInfoDetailed": { + "type": "object", + "required": [ + "erabId", + "s1EnbInfo" + ], + "properties": { + "erabId": { + "$ref": "#/definitions/ErabId" + }, + "s1EnbInfo": { + "$ref": "#/definitions/S1EnbInfo" + }, + "sGwInfo": { + "$ref": "#/definitions/SGwInfo" + } + }, + "description": "Information on UEs in the specific cell." + }, + "ErabId": { + "type": "integer", + "format": "int32", + "description": "The element that uniquely identifies a S1 bearer for a specific UE, as defined in ETSI TS 136 413", + "example": 10 + }, + "TempUeId": { + "type": "object", + "required": [ + "mmec", + "mtmsi" + ], + "properties": { + "mmec": { + "$ref": "#/definitions/Mmec" + }, + "mtmsi": { + "$ref": "#/definitions/Mtmsi" + } + } + }, + "Mmec": { + "type": "string", + "description": "MMEC as defined in ETSI TS 136 413", + "example": "0" + }, + "Mtmsi": { + "type": "string", + "description": "M-TMSI as defined in ETSI TS 136 413", + "example": "1234" + }, + "S1EnbInfo": { + "type": "object", + "required": [ + "ipAddress", + "tunnelId" + ], + "properties": { + "ipAddress": { + "type": "string", + "description": "eNB transport layer address of this S1 bearer.", + "example": "192.0.2.0" + }, + "tunnelId": { + "type": "string", + "description": "eNB GTP-U TEID of this S1 bearer.", + "example": "1111" + } + } + }, + "SGwInfo": { + "type": "object", + "required": [ + "ipAddress", + "tunnelId" + ], + "properties": { + "ipAddress": { + "type": "string", + "description": "SGW transport layer address of this S1 bearer.", + "example": "192.0.2.1" + }, + "tunnelId": { + "type": "string", + "description": "SGW GTP-U TEID of this S1 bearer.", + "example": "2222" + } + } + }, + "TimeStamp": { + "type": "object", + "required": [ + "nanoSeconds", + "seconds" + ], + "properties": { + "seconds": { + "type": "integer", + "format": "uint32", + "description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", + "example": 1577836800 + }, + "nanoSeconds": { + "type": "integer", + "format": "uint32", + "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", + "example": 0 + } + } + }, + "AppInsId": { + "type": "string", + "format": "string", + "description": "Unique identifier for the mobile edge application instance", + "example": "01" + }, + "RequestId": { + "type": "string", + "format": "string", + "description": "Unique identifier allocated by the Mobile Edge application for the Information request.", + "example": "01" + }, + "CellUserInfo": { + "type": "object", + "required": [ + "ecgi", + "ueInfo" + ], + "properties": { + "ecgi": { + "$ref": "#/definitions/Ecgi" + }, + "ueInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/UeInfo" + } + } + }, + "description": "The information on users per cell." + }, + "Ecgi": { + "type": "object", + "required": [ + "cellId", + "plmn" + ], + "properties": { + "plmn": { + "$ref": "#/definitions/Plmn" + }, + "cellId": { + "$ref": "#/definitions/CellId" + } + }, + "description": "E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413" + }, + "Plmn": { + "type": "object", + "required": [ + "mcc", + "mnc" + ], + "properties": { + "mcc": { + "type": "string", + "format": "string", + "description": "The Mobile Country Code part of PLMN Identity as defined in 3GPP TS 36.413", + "example": "001" + }, + "mnc": { + "type": "string", + "format": "string", + "description": "The Mobile Network Code part of PLMN Identity as defined in 3GPP TS 36.413", + "example": "01" + } + } + }, + "CellId": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "description": "The E-UTRAN Cell Identity as a bit string (size (28)), as defined in 3GPP TS 36.413", + "example": "0x800000A" + }, + "UeInfo": { + "type": "object", + "required": [ + "erabInfo" + ], + "properties": { + "associateId": { + "type": "array", + "items": { + "$ref": "#/definitions/AssociateId" + } + }, + "erabInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/ErabQosParameters" + } + } + }, + "description": "Information on UEs in the specific cell." + }, + "AssociateId": { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "RESERVED", + "UE_IPV4_ADDRESS", + "UE_IPV6_ADDRESS", + "NATED_IP_ADDRESS", + "GTP_TEID" + ], + "description": "Numeric value (0-255) corresponding to specified type of identifier", + "example": "UE_IPV4_ADDRESS" + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Value for the identifier", + "example": 1 + } + } + }, + "ErabQosParameters": { + "type": "object", + "properties": { + "qci": { + "$ref": "#/definitions/Qci" + }, + "qci_information": { + "$ref": "#/definitions/QosInformation" + } + } + }, + "Qci": { + "type": "integer", + "format": "int32", + "description": "QoS Class Identifier as defined in TS 23.401", + "example": 7 + }, + "QosInformation": { + "type": "object", + "required": [ + "erabGbrDl", + "erabGbrUl", + "erabMbrDl", + "erabMbrUl" + ], + "properties": { + "erabMbrDl": { + "type": "integer", + "format": "int32", + "description": "This IE indicates the maximum downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer.", + "example": 10 + }, + "erabMbrUl": { + "type": "integer", + "format": "int32", + "description": "This IE indicates the maximum uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer.", + "example": 10 + }, + "erabGbrDl": { + "type": "integer", + "format": "int32", + "description": "This IE indicates the guaranteed downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer.", + "example": 10 + }, + "erabGbrUl": { + "type": "integer", + "format": "int32", + "description": "This IE indicates the guaranteed uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer.", + "example": 10 + } + } + }, + "SubscriptionLinkList": { + "type": "object", + "required": [ + "_links" + ], + "properties": { + "_links": { + "$ref": "#/definitions/Link" + }, + "subscription": { + "type": "array", + "items": { + "$ref": "#/definitions/Subscription" + } + } + } + }, + "MeasRepUeSubscriptionPost": { + "type": "object", + "required": [ + "callbackReference", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssocTri" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "MeasRepUeSubscription": { + "type": "object", + "required": [ + "callbackReference", + "_links", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "_links": { + "$ref": "#/definitions/Link" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssocTri" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "S1BearerSubscriptionPost": { + "type": "object", + "required": [ + "callbackReference", + "s1BearerSubscriptionCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "eventType": { + "$ref": "#/definitions/EventType" + }, + "s1BearerSubscriptionCriteria": { + "$ref": "#/definitions/S1BearerSubscriptionCriteria" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "S1BearerSubscription": { + "type": "object", + "required": [ + "callbackReference", + "_links", + "s1BearerSubscriptionCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "_links": { + "$ref": "#/definitions/Link" + }, + "eventType": { + "$ref": "#/definitions/EventType" + }, + "s1BearerSubscriptionCriteria": { + "$ref": "#/definitions/S1BearerSubscriptionCriteria" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "RabEstSubscription": { + "type": "object", + "required": [ + "callbackReference", + "_links", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "_links": { + "$ref": "#/definitions/Link" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssocQci" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "RabEstSubscriptionPost": { + "type": "object", + "required": [ + "callbackReference", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssocQci" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "RabModSubscription": { + "type": "object", + "required": [ + "callbackReference", + "_links", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "_links": { + "$ref": "#/definitions/Link" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssocQci" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "RabModSubscriptionPost": { + "type": "object", + "required": [ + "callbackReference", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssocQci" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "RabRelSubscription": { + "type": "object", + "required": [ + "callbackReference", + "_links", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "_links": { + "$ref": "#/definitions/Link" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssocQci" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "RabRelSubscriptionPost": { + "type": "object", + "required": [ + "callbackReference", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssocQci" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "CaReConfSubscription": { + "type": "object", + "required": [ + "callbackReference", + "_links", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "_links": { + "$ref": "#/definitions/Link" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssoc" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "CaReConfSubscriptionPost": { + "type": "object", + "required": [ + "callbackReference", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssoc" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "CellChangeSubscriptionPost": { + "type": "object", + "required": [ + "callbackReference", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssocHo" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "CellChangeSubscription": { + "type": "object", + "required": [ + "callbackReference", + "_links", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "_links": { + "$ref": "#/definitions/Link" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssocHo" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "MeasTaSubscriptionPost": { + "type": "object", + "required": [ + "callbackReference", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssoc" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "MeasTaSubscription": { + "type": "object", + "required": [ + "callbackReference", + "_links", + "filterCriteria" + ], + "properties": { + "callbackReference": { + "$ref": "#/definitions/CallbackReference" + }, + "_links": { + "$ref": "#/definitions/Link" + }, + "filterCriteria": { + "$ref": "#/definitions/FilterCriteriaAssoc" + }, + "expiryDeadline": { + "$ref": "#/definitions/TimeStamp" + } + } + }, + "CallbackReference": { + "type": "string", + "format": "uri", + "description": "URL selected by the Mobile Edge application to receive notifications on the subscribed RNIS information.", + "example": "http://meAppClient.example.com/rni/v1/" + }, + "Link": { + "type": "object", + "properties": { + "self": { + "$ref": "#/definitions/LinkType" + } + }, + "description": "List of hyperlinks related to the resource" + }, + "LinkType": { + "description": "URI referring to a resource", + "type": "string", + "format": "uri", + "example": "http://meAppClient.example.com/rni/v1/" + }, + "Subscription": { + "type": "object", + "required": [ + "href", + "subscriptionType" + ], + "properties": { + "href": { + "$ref": "#/definitions/LinkType" + }, + "subscriptionType": { + "$ref": "#/definitions/SubscriptionType" + } + }, + "description": "A link to a subscription." + }, + "SubscriptionType": { + "type": "string", + "description": "Numeric value corresponding to specified type of subscription.", + "enum": [ + "RESERVED", + "CELL_CHANGE", + "RAB_ESTABLISHMENT", + "RAB_MODIFICATION", + "RAB_RELEASE", + "MEAS_REPORT_UE", + "MEAS_TIMING_ADVANCE", + "CA_RECONF", + "S1_BEARE" + ], + "example": "CELL_CHANGE" + }, + "FilterCriteriaAssoc": { + "type": "object", + "properties": { + "appInsId": { + "$ref": "#/definitions/AppInsId" + }, + "associateId": { + "$ref": "#/definitions/AssociateId" + }, + "plmn": { + "$ref": "#/definitions/Plmn" + }, + "cellId": { + "$ref": "#/definitions/CellId" + } + }, + "description": "List of filtering criteria for the subscription." + }, + "FilterCriteriaAssocQci": { + "type": "object", + "properties": { + "appInsId": { + "$ref": "#/definitions/AppInsId" + }, + "associateId": { + "$ref": "#/definitions/AssociateId" + }, + "plmn": { + "$ref": "#/definitions/Plmn" + }, + "cellId": { + "$ref": "#/definitions/CellId" + }, + "qci": { + "$ref": "#/definitions/Qci" + } + }, + "description": "List of filtering criteria for the subscription." + }, + "FilterCriteriaAssocHo": { + "type": "object", + "properties": { + "appInsId": { + "$ref": "#/definitions/AppInsId" + }, + "associateId": { + "$ref": "#/definitions/AssociateId" + }, + "plmn": { + "$ref": "#/definitions/Plmn" + }, + "cellId": { + "$ref": "#/definitions/CellId" + }, + "hoStatus": { + "$ref": "#/definitions/HoStatus" + } + }, + "description": "List of filtering criteria for the subscription." + }, + "FilterCriteriaAssocTri": { + "type": "object", + "properties": { + "appInsId": { + "$ref": "#/definitions/AppInsId" + }, + "associateId": { + "$ref": "#/definitions/AssociateId" + }, + "plmn": { + "$ref": "#/definitions/Plmn" + }, + "cellId": { + "$ref": "#/definitions/CellId" + }, + "trigger": { + "$ref": "#/definitions/Trigger" + } + }, + "description": "List of filtering criteria for the subscription." + }, + "S1BearerSubscriptionCriteria": { + "type": "object", + "properties": { + "associateId": { + "$ref": "#/definitions/AssociateId" + }, + "plmn": { + "$ref": "#/definitions/Plmn" + }, + "cellId": { + "$ref": "#/definitions/CellId" + }, + "erabId": { + "$ref": "#/definitions/ErabId" + } + }, + "description": "List of filtering criteria for the subscription." + }, + "HoStatus": { + "type": "string", + "description": "Description of the subscribed to event", + "enum": [ + "RESERVED", + "IN_PREPARATION", + "IN_EXECUTION", + "COMPLETED", + "REJECTED", + "CANCELLED" + ], + "example": "COMPLETED" + }, + "EventType": { + "type": "string", + "description": "Description of the subscribed event.", + "enum": [ + "RESERVED", + "S1_BEARER_ESTABLISH", + "S1_BEARER_MODIFY", + "S1_BEARER_RELEASE" + ], + "example": "S1_BEARER_ESTABLISH" + }, + "Trigger": { + "type": "string", + "description": "Unique identifier for the mobile edge application instance", + "enum": [ + "NOT_AVAILABLE", + "PERIODICAL_REPORT_STRONGEST_CELLS", + "PERIODICAL_REPORT_STRONGEST_CELLS_FOR_SON", + "PERIODICAL_REPORT_CGI", + "EVENT_A1", + "EVENT_A2", + "EVENT_A3", + "EVENT_A4", + "EVENT_A5", + "EVENT_A6", + "EVENT_B1", + "EVENT_B2", + "EVENT_C1", + "EVENT_C2", + "EVENT_W1", + "EVENT_W2", + "EVENT_W3" + ], + "example": "EVENT_A3" + } +} diff --git a/SRV/UETAG/PlatUeIdentity.robot b/SRV/UETAG/PlatUeIdentity.robot index 836b914bebcace024f7fd5015eb2f8b476d7db3a..e45c2d65891cf86828f3908345b5483fad2a8db3 100644 --- a/SRV/UETAG/PlatUeIdentity.robot +++ b/SRV/UETAG/PlatUeIdentity.robot @@ -1,4 +1,4 @@ -''[Documentation] robot --outputdir ./outputs ./SRV/UETAG/PlatUeIdentity.robot +''[Documentation] robot --outputdir ../../outputs ./PlatUeIdentity.robot ... Test Suite to validate UE Identity Tag (UETAG) operations. *** Settings *** diff --git a/TODO.md b/TODO.md index 0b89a892c478188d0ab0a58e9a1e59dfd52e15f8..1ab5281588b822809d33e70c999a3c12bc9c5e1b 100644 --- a/TODO.md +++ b/TODO.md @@ -11,9 +11,9 @@ This file provides the list of the TODOs related to the STF 569. ### APPSUB -### BWA +### BWA -### DNS +### DNS ### FAIS @@ -21,6 +21,13 @@ This file provides the list of the TODOs related to the STF 569. ### RNIS +Draft ETSI GS MEC 012 2.0.4 + +https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisSpecificSubscription_BV.tplan2 +https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisSpecificSubscription_BV.tplan2 + +- TC_MEC_SRV_RNIS_011_OK To be tested + ### SAQ ### SRVSUB @@ -29,7 +36,7 @@ This file provides the list of the TODOs related to the STF 569. ### TRAF -### TRANS +### TRANS ### UEAREASUB @@ -74,7 +81,7 @@ https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UELO -### UETAG +### UETAG ETSI GS MEC 014 V1.1.1 (2018-02) @@ -99,4 +106,3 @@ https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purpo Draft ETSI GS MEC 013 V2.0.3 (2018-10) https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20Purposes/SRV/UETRACKSUB/PlatUeTrackingSubscription.tplan2 -