From c75b80b620e56b2b1730fc5605f8e3d4e0f9c3ca Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Mon, 23 Sep 2019 05:40:08 -0700 Subject: [PATCH] Add RNI tests --- TODO.md | 29 ++- ttcn/AtsMec/AtsMec_Grant_TestCases.ttcn | 8 +- ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn | 14 +- ...AtsMec_RadioNodeLocationAPI_TestCases.ttcn | 64 ++++- ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn | 238 ++++++++++++++++++ ttcn/AtsMec/AtsMec_TestControl.ttcn | 7 +- ttcn/LibIts | 2 +- .../LocationAPI/ttcn/LocationAPI_Pixits.ttcn | 2 +- .../RnisAPI/ttcn/RnisAPI_Templates.ttcn | 100 ++++++++ .../RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn | 7 +- .../LibItsHttp_JsonMessageBodyTypes.ttcn | 4 + .../LibItsHttp_JsonTemplates.ttcn | 48 ++++ 12 files changed, 498 insertions(+), 25 deletions(-) diff --git a/TODO.md b/TODO.md index e9fa9cf..9283c47 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 113baf5..98e994f 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 471ebc7..060f0bb 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 ab831df..c6ee32a 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 99d78ef..596ffce 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 fe7b4ea..452f7e3 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 fa803fc..8b156c8 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 d5c8ac3..6152ceb 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 4d9e20e..c70bc23 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 80b2c74..e5ba61f 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 c6f81eb..fbe3e0c 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 b1706fc..08714d3 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 ) := { -- GitLab