diff --git a/TODO.md b/TODO.md index e9fa9cfb922bc4c918403d7a214ef778a89c0ed5..9283c47b672a3aee80101578e4179e43188cbe17 100644 --- a/TODO.md +++ b/TODO.md @@ -59,7 +59,16 @@ https://forge.etsi.org/rep/mec/gs032p2-test-purposes/blob/master/Test%20Purposes ### FAIS -### RLOC +### RLOCLOOK + +ETSI GS MEC 013 V1.5.0 + +https://forge.etsi.org/gitlab/mec/gs013-location-api/blob/master/LocationAPI.yaml#/definitions/AccessPointList + +- TC_MEC_PLAT_RLOCLOOK_001_OK To be tested + +- TC_MEC_PLAT_RLOCLOOK_001_NF To be tested + ### RNIS @@ -81,6 +90,16 @@ https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purpo - TC_MEC_SRV_RNIS_004_OK To be tested +- TC_MEC_SRV_RNIS_005_OK To be tested + +- TC_MEC_SRV_RNIS_006_OK To be tested + +- TC_MEC_SRV_RNIS_007_OK To be tested + +- TC_MEC_SRV_RNIS_008_OK To be tested + +- TODO TC_MEC_SRV_RNIS_009_OK & TC_MEC_SRV_RNIS_010_OK + - TC_MEC_SRV_RNIS_011_OK To be tested - TC_MEC_SRV_RNIS_012_OK To be tested @@ -189,17 +208,17 @@ https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20 - TC_MEC_SRV_UEINFSUB_002_NF To be tested -### UELOC +### UELOCLOOK Draft ETSI GS MEC 013 V2.0.3 (2018-10) https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UELOC/PlatUeLocationLookup.tplan2 -- TC_MEC_SRV_UELOC_001_OK Done +- TC_MEC_SRV_UELOCLOOK_001_OK Done -- TC_MEC_SRV_UELOC_001_BR To be tested +- TC_MEC_SRV_UELOCLOOK_001_BR To be tested -- TC_MEC_SRV_UELOC_001_NF To be tested +- TC_MEC_SRV_UELOCLOOK_001_NF To be tested ### UELOCSUB diff --git a/ttcn/AtsMec/AtsMec_Grant_TestCases.ttcn b/ttcn/AtsMec/AtsMec_Grant_TestCases.ttcn index 113baf57f20ec86df5db694705936d198ef58fc7..98e994f51440104efdd4c0324dc1467788fe7f86 100644 --- a/ttcn/AtsMec/AtsMec_Grant_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_Grant_TestCases.ttcn @@ -78,7 +78,7 @@ group grant { alt { [] httpPort.receive( mw_http_response( - mw_http_response_ok( + mw_http_response_201_created( mw_http_message_body_json( mw_body_json_grant_response( mw_grant_response( @@ -87,10 +87,8 @@ group grant { ))))) -> value v_response { tc_ac.stop; - if (v_response.response.statuscode == 201) { - log("*** " & testcasename() & ": PASS: IUT successfully responds with a Grant Response ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } + log("*** " & testcasename() & ": PASS: IUT successfully responds with a Grant Response ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); diff --git a/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn index 471ebc796af0c3c34231794cdae3aeed0c9e4cf9..060f0bbad426174f2a1cde9174b486879d3fbbb0 100644 --- a/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn @@ -38,7 +38,7 @@ module AtsMec_LocationAPI_TestCases { * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UELOC/PlatUeLocationLookup.tplan2 * @see https://forge.etsi.org/gitlab/mec/gs013-location-api/blob/master/LocationAPI.yaml#/definitions/UserInfo */ - testcase TC_MEC_SRV_UELOC_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UELOCLOOK_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; @@ -94,14 +94,14 @@ module AtsMec_LocationAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TC_MEC_SRV_UELOC_001_OK + } // End of testcase TC_MEC_SRV_UELOCLOOK_001_OK /** * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UELOC/PlatUeLocationLookup.tplan2 * @see https://forge.etsi.org/gitlab/mec/gs013-location-api/blob/master/LocationAPI.yaml#/definitions/UserInfo */ - testcase TC_MEC_SRV_UELOC_001_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UELOCLOOK_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; @@ -149,14 +149,14 @@ module AtsMec_LocationAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TC_MEC_SRV_UELOC_001_BR + } // End of testcase TC_MEC_SRV_UELOCLOOK_001_BR /** * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UELOC/PlatUeLocationLookup.tplan2 * @see https://forge.etsi.org/gitlab/mec/gs013-location-api/blob/master/LocationAPI.yaml#/definitions/UserInfo */ - testcase TC_MEC_SRV_UELOC_001_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UELOCLOOK_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; @@ -177,7 +177,7 @@ module AtsMec_LocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_LIST_URI & "?zoneId=" & oct2char(unichar2oct(PX_ZONE_ID_UNKNOWN, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_LIST_URI & "?zoneId=" & oct2char(unichar2oct(NON_EXISTENT_ZONE_ID, "UTF-8")), v_headers ) ) @@ -204,7 +204,7 @@ module AtsMec_LocationAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TC_MEC_SRV_UELOC_001_NF + } // End of testcase TC_MEC_SRV_UELOCLOOK_001_NF } // End of group ueLocationLookup diff --git a/ttcn/AtsMec/AtsMec_RadioNodeLocationAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_RadioNodeLocationAPI_TestCases.ttcn index ab831df3c0a2df02684d8a96f9e8fcda62b94922..c6ee32ae3dd35345e845eda7406345bb5ef217bb 100644 --- a/ttcn/AtsMec/AtsMec_RadioNodeLocationAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_RadioNodeLocationAPI_TestCases.ttcn @@ -34,7 +34,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { import from LibMec_Pics all; import from LibMec_Pixits all; - group me_app_role { + group rloclook { /** * @desc Check that the IUT responds with the list of radio nodes currently associated with the MEC host and the location of each radio node when queried by a MEC Application @@ -96,6 +96,66 @@ module AtsMec_RadioNodeLocationAPI_TestCases { f_cf_01_http_down(); } // End of testcase TC_MEC_PLAT_RLOC_001_OK - } // End of group me_app_role + /** + * @desc Check that the IUT responds with an error when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + * @see https://forge.etsi.org/rep/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RLOCLOOK/PlatRadioNodeLocation.tplan2 + * @see https://forge.etsi.org/gitlab/mec/gs013-location-api/blob/master/LocationAPI.yaml#/definitions/AccessPointList + */ + testcase TC_MEC_PLAT_RLOC_001_NF() runs on HttpComponent system HttpTestAdapter { + // Local variables + var HeaderLines v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_LOCATION_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_LOCATION_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cf_01_http_up(); + + // Test adapter configuration + + // Preamble + f_init_default_headers_list(-, -, v_headers); + httpPort.send( + m_http_request( + m_http_request_get( + PX_ME_APP_Q_ZONE_ID_URI & "/" & oct2char(unichar2oct(NON_EXISTENT_ZONE_ID, "UTF-8")) & "/accessPoints", + v_headers + ) + ) + ); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] httpPort.receive( + mw_http_response( + mw_http_response_ok( + mw_http_message_body_json( + mw_body_json_access_point_list( + mw_access_point_list( + PX_ZONE_ID + )))))) -> value v_response { + tc_ac.stop; + + log("*** " & testcasename() & ": PASS: IUT successfully responds with an AccessPoint list containing a ZoneId ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cf_01_http_down(); + } // End of testcase TC_MEC_PLAT_RLOC_001_NF + + } // End of group rloclook } // End of module AtsMec_RadioNodeLocationAPI_TestCases diff --git a/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn index 99d78efb2e333cb615d59d9fa3f0423b467674be..596ffce74ef5bac13257076588376e8a219c68ef 100644 --- a/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn @@ -1305,6 +1305,244 @@ module AtsMec_RnisAPI_TestCases { f_cf_01_http_notif_down(); } // End of testcase TC_MEC_SRV_RNIS_004_OK + /** + * @desc Check that the RNIS service sends an RNIS notification about UE measurement report if the RNIS service has an associated subscription and the event is generated. + * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 + */ + testcase TC_MEC_SRV_RNIS_005_OK() runs on HttpComponent system HttpTestAdapter { + // Local variables + var HeaderLines v_headers; + + // Test control + if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { + log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cf_01_http_notif_up(); + + // Test adapter configuration + + // Preamble + f_init_default_headers_list(-, -, v_headers); + action("Trigger a MeasTaSubscription event"); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + tc_wait.start; + alt { + [] httpPort_notif.receive( + mw_http_request( + mw_http_request_post( + PX_CALLBACK_URI, + -, + mw_http_message_body_json( + mw_body_json_meas_rep_ue_subscription( + mw_meas_rep_ue_subscription( + PX_CALLBACK_REFERENCE, + PX_LINKS_SELF, + mw_filter_criteria_tri( + PX_APP_INS_ID, + -//TODO PX_E_RAB_ID + ))))))) { + tc_wait.stop; + + // Send 204 No Content + httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); + + log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_wait.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cf_01_http_notif_down(); + } // End of testcase TC_MEC_SRV_RNIS_005_OK + + /** + * @desc Check that the RNIS service sends an RNIS notification about UE timing advance if the RNIS service has an associated subscription and the event is generated. + * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 + */ + testcase TC_MEC_SRV_RNIS_006_OK() runs on HttpComponent system HttpTestAdapter { + // Local variables + var HeaderLines v_headers; + + // Test control + if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { + log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cf_01_http_notif_up(); + + // Test adapter configuration + + // Preamble + f_init_default_headers_list(-, -, v_headers); + action("Trigger a MeasTaSubscription event"); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + tc_wait.start; + alt { + [] httpPort_notif.receive( + mw_http_request( + mw_http_request_post( + PX_CALLBACK_URI, + -, + mw_http_message_body_json( + mw_body_json_meas_ta_subscription( + mw_meas_ta_subscription( + PX_CALLBACK_REFERENCE, + PX_LINKS_SELF, + mw_filter_criteria_ho( + PX_APP_INS_ID, + -//TODO PX_E_RAB_ID + ))))))) { + tc_wait.stop; + + // Send 204 No Content + httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); + + log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_wait.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cf_01_http_notif_down(); + } // End of testcase TC_MEC_SRV_RNIS_006_OK + + /** + * @desc Check that the RNIS service sends an RNIS notification about UE carrier aggregation reconfiguration if the RNIS service has an associated subscription and the event is generated. + * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 + */ + testcase TC_MEC_SRV_RNIS_007_OK() runs on HttpComponent system HttpTestAdapter { + // Local variables + var HeaderLines v_headers; + + // Test control + if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { + log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cf_01_http_notif_up(); + + // Test adapter configuration + + // Preamble + f_init_default_headers_list(-, -, v_headers); + action("Trigger a MeasTaSubscription event"); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + tc_wait.start; + alt { + [] httpPort_notif.receive( + mw_http_request( + mw_http_request_post( + PX_CALLBACK_URI, + -, + mw_http_message_body_json( + mw_body_json_ca_reconf_subscription( + mw_ca_reconfig_subscription( + PX_CALLBACK_REFERENCE, + PX_LINKS_SELF, + mw_filter_criteria( + PX_APP_INS_ID, + -//TODO PX_E_RAB_ID + ))))))) { + tc_wait.stop; + + // Send 204 No Content + httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); + + log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_wait.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cf_01_http_notif_down(); + } // End of testcase TC_MEC_SRV_RNIS_007_OK + + /** + * @desc Check that the RNIS service sends an RNIS notification about S1-U bearer if the RNIS service has an associated subscription and the event is generated. + * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 + */ + testcase TC_MEC_SRV_RNIS_008_OK() runs on HttpComponent system HttpTestAdapter { + // Local variables + var HeaderLines v_headers; + + // Test control + if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { + log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cf_01_http_notif_up(); + + // Test adapter configuration + + // Preamble + f_init_default_headers_list(-, -, v_headers); + action("Trigger a MeasTaSubscription event"); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + tc_wait.start; + alt { + [] httpPort_notif.receive( + mw_http_request( + mw_http_request_post( + PX_CALLBACK_URI, + -, + mw_http_message_body_json( + mw_body_json_s1_bearer_subscription( + mw_s1_bearer_subscription( + PX_CALLBACK_REFERENCE, + PX_LINKS_SELF, + -//mw_filter_criteria + )))))) { + tc_wait.stop; + + // Send 204 No Content + httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); + + log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_wait.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cf_01_http_notif_down(); + } // End of testcase TC_MEC_SRV_RNIS_008_OK + } // End of group rnis_notifications } // End of module AtsMec_RnisAPI_TestCases diff --git a/ttcn/AtsMec/AtsMec_TestControl.ttcn b/ttcn/AtsMec/AtsMec_TestControl.ttcn index fe7b4ea89f776abf92eedd016550eb2c17572855..452f7e3ecb9699c6cb2f0db52fdfb4cb0cff4c76 100644 --- a/ttcn/AtsMec/AtsMec_TestControl.ttcn +++ b/ttcn/AtsMec/AtsMec_TestControl.ttcn @@ -34,9 +34,9 @@ module AtsMec_TestControl { execute(TC_MEC_SRV_UETAG_002_PF()); } if (PICS_LOCATION_API_SUPPORTED) { - execute(TC_MEC_SRV_UELOC_001_OK()); - execute(TC_MEC_SRV_UELOC_001_BR()); - execute(TC_MEC_SRV_UELOC_001_NF()); + execute(TC_MEC_SRV_UELOCLOOK_001_OK()); + execute(TC_MEC_SRV_UELOCLOOK_001_BR()); + execute(TC_MEC_SRV_UELOCLOOK_001_NF()); execute(TC_MEC_SRV_UELOCSUB_001_OK()); execute(TC_MEC_SRV_UELOCSUB_001_BR()); @@ -58,6 +58,7 @@ module AtsMec_TestControl { execute(TC_MEC_SRV_UEINFSUB_002_NF()); execute(TC_MEC_PLAT_RLOC_001_OK()); + execute(TC_MEC_PLAT_RLOC_001_NF()); } if (PICS_ENABLE_APP_API_SUPPORTED) { diff --git a/ttcn/LibIts b/ttcn/LibIts index fa803fc714e8896de7ce12d0ecec822b5e8949dc..8b156c8b0781f511dc4444742ee2eed9818aa865 160000 --- a/ttcn/LibIts +++ b/ttcn/LibIts @@ -1 +1 @@ -Subproject commit fa803fc714e8896de7ce12d0ecec822b5e8949dc +Subproject commit 8b156c8b0781f511dc4444742ee2eed9818aa865 diff --git a/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn b/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn index d5c8ac30cfb9c5896607aca47247b8d2c298cd71..6152ceb5d3bcd3d3fba3230af0b17017482878d7 100644 --- a/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn +++ b/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn @@ -22,7 +22,7 @@ module LocationAPI_Pixits { modulepar ZoneId PX_ZONE_ID := "zone01"; - modulepar ZoneId PX_ZONE_ID_UNKNOWN := "zone51"; + modulepar ZoneId NON_EXISTENT_ZONE_ID := "zone51"; modulepar ResourceURL PX_RESOURCE_URL := "http://example.com/exampleAPI/location/v2/users?address:acr:192.0.0.1"; diff --git a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn index 4d9e20e9466472367d8a71aa6ef58300148fd139..c70bc23f74613705de9b24a41df98c109d8bdc37 100644 --- a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn +++ b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn @@ -189,6 +189,58 @@ module RnisAPI_Templates { expiryDeadline := p_expiryDeadline } // End of template mw_rab_rel_subscription + template (present) MeasRepUeSubscription mw_meas_rep_ue_subscription( + template (present) CallbackReference p_callbackReference := ?, + template (present) Link p_links := ?, + template (present) FilterCriteriaAssocTri p_filterCriteria := ?, + template (present)TimeStamp p_expiryDeadline := ? + ) := { + subscriptionType := MEAS_REPORT_UE, + callbackReference := p_callbackReference, + links := p_links, + filterCriteria := p_filterCriteria, + expiryDeadline := p_expiryDeadline + } // End of template mw_meas_rep_ue_subscription + + template (present) MeasTaSubscription mw_meas_ta_subscription( + template (present) CallbackReference p_callbackReference := ?, + template (present) Link p_links := ?, + template (present) FilterCriteriaAssocHo p_filterCriteria := ?, + template (present)TimeStamp p_expiryDeadline := ? + ) := { + subscriptionType := MEAS_TIMING_ADVANCE, + callbackReference := p_callbackReference, + links := p_links, + filterCriteria := p_filterCriteria, + expiryDeadline := p_expiryDeadline + } // End of template mw_meas_ta_subscription + + template (present) CaReConfSubscription mw_ca_reconfig_subscription( + template (present) CallbackReference p_callbackReference := ?, + template (present) Link p_links := ?, + template (present) FilterCriteriaAssoc p_filterCriteria := ?, + template (present)TimeStamp p_expiryDeadline := ? + ) := { + subscriptionType := CA_RECONF, + callbackReference := p_callbackReference, + links := p_links, + filterCriteria := p_filterCriteria, + expiryDeadline := p_expiryDeadline + } // End of template mw_ca_reconfig_subscription + + template (present) S1BearerSubscription mw_s1_bearer_subscription( + template (present) CallbackReference p_callbackReference := ?, + template (present) Link p_links := ?, + template (present) S1BearerSubscriptionCriteria p_s1BearerSubscriptionCriteria := ?, + template (present)TimeStamp p_expiryDeadline := ? + ) := { + subscriptionType := S1_BEARER, + callbackReference := p_callbackReference, + links := p_links, + s1BearerSubscriptionCriteria := p_s1BearerSubscriptionCriteria, + expiryDeadline := p_expiryDeadline + } // End of template mw_s1_bearer_subscription + } // End of group notifications group info_request { @@ -297,6 +349,30 @@ module RnisAPI_Templates { nanoSeconds := p_nanoSeconds } // End of temlate mw_time_stamp + template (value) FilterCriteriaAssoc m_filter_criteria( + in AppInsId p_appInsId, + in template (value) AssociateId p_associateId, + in template (value) Plmn p_plmn, + in template (value) CellId p_cellId + ) := { + appInsId := p_appInsId, + associateId := p_associateId, + plmn := p_plmn, + cellId := p_cellId + } // End of template m_filter_criteria + + template (present) FilterCriteriaAssoc mw_filter_criteria( + template (present) AppInsId p_appInsId := ?, + template (present) AssociateId p_associateId := ?, + template (present) Plmn p_plmn := ?, + template (present) CellId p_cellId := ? + ) := { + appInsId := p_appInsId, + associateId := p_associateId, + plmn := p_plmn, + cellId := p_cellId + } // End of template mw_filter_criteria + template (value) FilterCriteriaAssocHo m_filter_criteria_ho( in AppInsId p_appInsId, in template (value) AssociateId p_associateId, @@ -349,6 +425,30 @@ module RnisAPI_Templates { qci := p_qci } // End of template mw_filter_criteria_qci + template (value) FilterCriteriaAssocTri m_filter_criteria_tri( + in AppInsId p_appInsId, + in template (value) Plmn p_plmn, + in template (value) CellId p_cellId, + in template (value) Trigger p_trigger + ) := { + appInsId := p_appInsId, + plmn := p_plmn, + cellId := p_cellId, + trigger_ := p_trigger + } // End of template m_filter_criteria_tri + + template (present) FilterCriteriaAssocTri mw_filter_criteria_tri( + template (present) AppInsId p_appInsId := ?, + template (present) Plmn p_plmn := ?, + template (present) CellId p_cellId := ?, + template (present) Trigger p_trigger := ? + ) := { + appInsId := p_appInsId, + plmn := p_plmn, + cellId := p_cellId, + trigger_ := p_trigger + } // End of template mw_filter_criteria_tri + template (value) CellUserInfo_ m_cell_user_info( in template (value) Ecgi p_ecgi, in template (value) UeInfo p_ueInfo diff --git a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn index 80b2c74e85e417731ad10cdb9263ffaca3d7e92f..e5ba61fe92e26b69edc3ee6079d20808f77e80ba 100644 --- a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn +++ b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn @@ -294,6 +294,7 @@ module RnisAPI_TypesAndValues { * @member expiryDeadline */ type record MeasRepUeSubscription { + SubscriptionType subscriptionType, CallbackReference callbackReference, Link links, FilterCriteriaAssocTri filterCriteria, @@ -324,6 +325,7 @@ module RnisAPI_TypesAndValues { * @member expiryDeadline */ type record S1BearerSubscription { + SubscriptionType subscriptionType, CallbackReference callbackReference, Link links, S1BearerSubscriptionCriteria s1BearerSubscriptionCriteria, @@ -430,6 +432,7 @@ module RnisAPI_TypesAndValues { * @member expiryDeadline */ type record CaReConfSubscription { + SubscriptionType subscriptionType, CallbackReference callbackReference, Link links, FilterCriteriaAssoc filterCriteria, @@ -486,6 +489,7 @@ module RnisAPI_TypesAndValues { * @member expiryDeadline */ type record MeasTaSubscriptionPost { + SubscriptionType subscriptionType, CallbackReference callbackReference, FilterCriteriaAssoc filterCriteria, TimeStamp expiryDeadline optional @@ -499,6 +503,7 @@ module RnisAPI_TypesAndValues { * @member expiryDeadline */ type record MeasTaSubscription { + SubscriptionType subscriptionType, CallbackReference callbackReference, Link links, FilterCriteriaAssocHo filterCriteria, @@ -556,7 +561,7 @@ module RnisAPI_TypesAndValues { MEAS_REPORT_UE, MEAS_TIMING_ADVANCE, CA_RECONF, - S1_BEARE, + S1_BEARER, WRONG_PARAMETER } diff --git a/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn b/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn index c6f81ebfbf3ffadd0ffe753b7bc9b8fd11053783..fbe3e0c1d1dccde89567cda333be80f4dcede69a 100644 --- a/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn +++ b/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn @@ -38,6 +38,10 @@ module LibItsHttp_JsonMessageBodyTypes { RabEstSubscription rabEstSubscription, RabModSubscription rabModSubscription, RabRelSubscription rabRelSubscription, + MeasRepUeSubscription measRepUeSubscription, + MeasTaSubscription measTaSubscription, + CaReConfSubscription caReConfSubscription, + S1BearerSubscription s1BearerSubscription, RnisAPI_TypesAndValues.ProblemDetails problemDetails_rnis, BwInfo bwInfo, BwManagementAPI_TypesAndValues.ProblemDetails problemDetails_bw_management, diff --git a/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn b/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn index b1706fc182f707366d41a9f00e52a76d73f6c4d6..08714d30714e55f11e5c511e87b4c2ca3aece6ba 100644 --- a/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn +++ b/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn @@ -304,6 +304,54 @@ group ams_api { rabRelSubscription := p_rabRelSubscription } // End of template mw_body_json_rab_rel_subscription + template (value) JsonBody m_body_json_meas_rep_ue_subscription( + in template (value) MeasRepUeSubscription p_measRepUeSubscription + ) := { + measRepUeSubscription := p_measRepUeSubscription + } // End of template m_body_json_meas_rep_ue_subscription + + template (present) JsonBody mw_body_json_meas_rep_ue_subscription( + template (present) MeasRepUeSubscription p_measRepUeSubscription := ? + ) := { + measRepUeSubscription := p_measRepUeSubscription + } // End of template mw_body_json_meas_rep_ue_subscription + + template (value) JsonBody m_body_json_meas_ta_subscription( + in template (value) MeasTaSubscription p_measTaSubscription + ) := { + measTaSubscription := p_measTaSubscription + } // End of template m_body_json_meas_ta_subscription + + template (present) JsonBody mw_body_json_meas_ta_subscription( + template (present) MeasTaSubscription p_measTaSubscription := ? + ) := { + measTaSubscription := p_measTaSubscription + } // End of template mw_body_json_meas_ta_subscription + + template (value) JsonBody m_body_json_ca_reconf_subscription( + in template (value) CaReConfSubscription p_caReconfSubscription + ) := { + caReConfSubscription := p_caReconfSubscription + } // End of template m_body_json_ca_reconf_subscription + + template (present) JsonBody mw_body_json_ca_reconf_subscription( + template (present) CaReConfSubscription p_caReconfSubscription := ? + ) := { + caReConfSubscription := p_caReconfSubscription + } // End of template mw_body_json_ca_reconf_subscription + + template (value) JsonBody m_body_json_s1_bearer_subscription( + in template (value) S1BearerSubscription p_s1BearerSubscription + ) := { + s1BearerSubscription := p_s1BearerSubscription + } // End of template m_body_json_s1_bearer_subscription + + template (present) JsonBody mw_body_json_s1_bearer_subscription( + template (present) S1BearerSubscription p_s1BearerSubscription := ? + ) := { + s1BearerSubscription := p_s1BearerSubscription + } // End of template mw_body_json_s1_bearer_subscription + template (value) JsonBody m_body_json_rni_problem_details( in template (value) RnisAPI_TypesAndValues.ProblemDetails p_problemDetails ) := {