diff --git a/TODO.md b/TODO.md
index 8ff1e43b4586c4f1d62a1fe1e722ec8bca77e527..2fc4976e499dc47938e2fa38b3e7530ce0a63084 100644
--- a/TODO.md
+++ b/TODO.md
@@ -27,8 +27,37 @@ https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purpo
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
+
- TC_MEC_SRV_RNIS_012_OK To be tested
+- TC_MEC_SRV_RNIS_011_BR To be tested
+
+- TC_MEC_SRV_RNIS_012_BR To be tested
+
+- TC_MEC_SRV_RNIS_016_OK To be tested
+
+- TC_MEC_SRV_RNIS_016_BR To be tested
+
+- TC_MEC_SRV_RNIS_016_NF To be tested
+
+- TC_MEC_SRV_RNIS_017_OK To be tested
+
+- TC_MEC_SRV_RNIS_017_BR To be tested
+
+- TC_MEC_SRV_RNIS_017_NF To be tested
+
+- TC_MEC_SRV_RNIS_018_OK To be tested
+
+- TC_MEC_SRV_RNIS_018_BR To be tested
+
+- TC_MEC_SRV_RNIS_018_NF To be tested
+
+- TC_MEC_SRV_RNIS_019_OK To be tested
+
+- TC_MEC_SRV_RNIS_019_BR To be tested
+
+- TC_MEC_SRV_RNIS_019_NF To be tested
+
### SAQ
### SRVSUB
diff --git a/ccsrc/Protocols/Json/json_codec.cc b/ccsrc/Protocols/Json/json_codec.cc
index d1759cebe25cc1317dd99f9b717de481ef4e741e..2ab1698fabdfd9adfa47c491b45757353f2ec9e2 100644
--- a/ccsrc/Protocols/Json/json_codec.cc
+++ b/ccsrc/Protocols/Json/json_codec.cc
@@ -99,14 +99,126 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy
traffic_rule.decode(AppEnablementAPI__TypesAndValues::TrafficRule_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
msg.trafficRule() = traffic_rule;
} else if (it->second.find("\"CellChangeSubscription\"") != std::string::npos) {
+ // Replace "type": "1" by type": "EU_IPV4_ADDRESS", "type": "2"...
+ // TODO Create a method instead of copy/past
+ //loggers::get_instance().log("json_codec::decode: Before, str=%s", str.c_str());
+ std::size_t it_start = str.find("\"type\"");
+ loggers::get_instance().log("json_codec::decode: id_start=%d", it_start);
+ if (it_start != std::string::npos) {
+ std::size_t it_stop = str.find(",", it_start);
+ //loggers::get_instance().log("json_codec::decode: id_stop=%d", it_stop);
+ //loggers::get_instance().log("json_codec::decode: segment=%s", str.substr(it_start, it_stop - it_start).c_str());
+ std::size_t it = str.find("1", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "UE_IPV4_ADDRESS" + str.substr(it + 1);
+ } else {
+ it = str.find("2", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "UE_IPV6_ADDRESS" + str.substr(it + 1);
+ } else {
+ it = str.find("3", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "NATED_IP_ADDRESS" + str.substr(it + 1);
+ } else {
+ it = str.find("4", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "GTP_TEID" + str.substr(it + 1);
+ }
+ }
+ }
+ }
+ }
+ //loggers::get_instance().log("json_codec::decode: After, str=%s", str.c_str());
+ decoding_buffer.clear();
+ decoding_buffer.put_os(OCTETSTRING(str.length(), (const unsigned char*)str.c_str()));
RnisAPI__TypesAndValues::CellChangeSubscription cell_change_subscription;
cell_change_subscription.decode(RnisAPI__TypesAndValues::CellChangeSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
msg.cellChangeSubscription() = cell_change_subscription;
//TODO Continue with other ChangeSubscription
} else if (it->second.find("\"RabInfo\"") != std::string::npos) {
+ // Replace "type": "1" by type": "EU_IPV4_ADDRESS", "type": "2"...
+ // TODO Create a method instead of copy/past
+ // loggers::get_instance().log("json_codec::decode: Before, str=%s", str.c_str());
+ std::size_t it_start = str.find("\"type\"");
+ loggers::get_instance().log("json_codec::decode: id_start=%d", it_start);
+ if (it_start != std::string::npos) {
+ std::size_t it_stop = str.find(",", it_start);
+ //loggers::get_instance().log("json_codec::decode: id_stop=%d", it_stop);
+ //loggers::get_instance().log("json_codec::decode: segment=%s", str.substr(it_start, it_stop - it_start).c_str());
+ std::size_t it = str.find("1", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "UE_IPV4_ADDRESS" + str.substr(it + 1);
+ } else {
+ it = str.find("2", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "UE_IPV6_ADDRESS" + str.substr(it + 1);
+ } else {
+ it = str.find("3", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "NATED_IP_ADDRESS" + str.substr(it + 1);
+ } else {
+ it = str.find("4", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "GTP_TEID" + str.substr(it + 1);
+ }
+ }
+ }
+ }
+ }
+ //loggers::get_instance().log("json_codec::decode: After, str=%s", str.c_str());
+ decoding_buffer.clear();
+ decoding_buffer.put_os(OCTETSTRING(str.length(), (const unsigned char*)str.c_str()));
RnisAPI__TypesAndValues::RabInfo rab_info;
rab_info.decode(RnisAPI__TypesAndValues::RabInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
msg.rabInfo() = rab_info;
+ } else if (it->second.find("\"S1BearerInfo\"") != std::string::npos) {
+ // Replace "type": "1" by type": "EU_IPV4_ADDRESS", "type": "2"...
+ // TODO Create a method instead of copy/past
+ // loggers::get_instance().log("json_codec::decode: Before, str=%s", str.c_str());
+ std::size_t it_start = str.find("\"type\"");
+ loggers::get_instance().log("json_codec::decode: id_start=%d", it_start);
+ if (it_start != std::string::npos) {
+ std::size_t it_stop = str.find(",", it_start);
+ //loggers::get_instance().log("json_codec::decode: id_stop=%d", it_stop);
+ //loggers::get_instance().log("json_codec::decode: segment=%s", str.substr(it_start, it_stop - it_start).c_str());
+ std::size_t it = str.find("1", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "UE_IPV4_ADDRESS" + str.substr(it + 1);
+ } else {
+ it = str.find("2", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "UE_IPV6_ADDRESS" + str.substr(it + 1);
+ } else {
+ it = str.find("3", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "NATED_IP_ADDRESS" + str.substr(it + 1);
+ } else {
+ it = str.find("4", it_start, 1);
+ //loggers::get_instance().log("json_codec::decode: it=%d", it);
+ if ((it != std::string::npos) && (it < it_stop)) {
+ str = str.substr(0, it) + "GTP_TEID" + str.substr(it + 1);
+ }
+ }
+ }
+ }
+ }
+ //loggers::get_instance().log("json_codec::decode: After, str=%s", str.c_str());
+ decoding_buffer.clear();
+ decoding_buffer.put_os(OCTETSTRING(str.length(), (const unsigned char*)str.c_str()));
+ RnisAPI__TypesAndValues::S1BearerInfo s1_nearer_info;
+ s1_nearer_info.decode(RnisAPI__TypesAndValues::S1BearerInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
+ msg.s1BearerInfo() = s1_nearer_info;
} else if (it->second.find("\"PlmnInfo\"") != std::string::npos) {
RnisAPI__TypesAndValues::PlmnInfo plmn_info;
plmn_info.decode(RnisAPI__TypesAndValues::PlmnInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
@@ -139,7 +251,7 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy
RnisAPI__TypesAndValues::ProblemDetails problem_details;
problem_details.decode(RnisAPI__TypesAndValues::ProblemDetails_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
- msg.problemDetails__rni() = problem_details;
+ msg.problemDetails__rnis() = problem_details;
} else {
diff --git a/etc/AtsMec/AtsMec.cfg b/etc/AtsMec/AtsMec.cfg
index 72661f999429d9660be7eb07fa7148a66c920270..e9ce60d97babfd0c990c784f6f1e6977ceab1623 100644
--- a/etc/AtsMec/AtsMec.cfg
+++ b/etc/AtsMec/AtsMec.cfg
@@ -104,7 +104,18 @@ system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=192.1
#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_012_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_011_BR
#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_012_BR
-AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_OK
+#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_OK
+#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_OK
+#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_OK
+#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_OK
+AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_BR
+AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_NF
+AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_BR
+AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_NF
+AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_BR
+AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_NF
+AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_BR
+AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_NF
#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRANS_001_OK
#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_OK
diff --git a/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn
index 30e65fae717a03708ea05fbe52905ffa5a90345c..abe21a4177ee99bcc3f42e880c284816b3f1788f 100644
--- a/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn
+++ b/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn
@@ -355,7 +355,7 @@ module AtsMec_RnisAPI_TestCases {
httpPort.send(
m_http_request(
m_http_request_get(
- "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "?cell_id=" & oct2char(unichar2oct(PX_CELL_ID, "UTF-8")),
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/rab_info?cell_id=" & oct2char(unichar2oct(PX_CELL_ID, "UTF-8")),
v_headers
)
)
@@ -374,11 +374,15 @@ module AtsMec_RnisAPI_TestCases {
mw_time_stamp,
PX_APP_INS_ID,
-,
- mw_cell_user_info(
- mw_ecgi(
- mw_plmn,
- PX_CELL_ID
- )))))))) {
+ {
+ mw_cell_user_info(
+ mw_ecgi(
+ mw_plmn,
+ PX_CELL_ID
+ )
+ )
+ }
+ )))))) {
tc_ac.stop;
log("*** " & testcasename() & ": PASS: IUT successfully responds with a RAB information ***");
@@ -419,7 +423,7 @@ module AtsMec_RnisAPI_TestCases {
httpPort.send(
m_http_request(
m_http_request_get(
- "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "?cell_id=" & oct2char(unichar2oct(PX_CELL_ID, "UTF-8")),
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/plmn_info?app_ins_id=" & oct2char(unichar2oct(PX_APP_INS_ID, "UTF-8")),
v_headers
)
)
@@ -437,10 +441,8 @@ module AtsMec_RnisAPI_TestCases {
mw_plmn_info(
mw_time_stamp,
PX_APP_INS_ID,
- mw_ecgi(
- mw_plmn,
- PX_CELL_ID
- ))))))) {
+ { mw_plmn }
+ )))))) {
tc_ac.stop;
log("*** " & testcasename() & ": PASS: IUT successfully responds with a PLMN information ***");
@@ -456,7 +458,572 @@ module AtsMec_RnisAPI_TestCases {
f_cf_01_http_down();
} // End of testcase TC_MEC_SRV_RNIS_017_OK
+ /**
+ * @desc Check that the RNIS service returns the S1 bearer information.
+ * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BV.tplan2
+ */
+ testcase TC_MEC_SRV_RNIS_018_OK() runs on HttpComponent system HttpTestAdapter {
+ // Local variables
+ var HeaderLines v_headers;
+
+ // Test control
+ if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) {
+ log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY 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(
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/s1_bearer_info?cell_id=" & oct2char(unichar2oct(PX_CELL_ID, "UTF-8")),
+ 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_s1_bearer_info(
+ mw_s1_bearer_info(
+ mw_time_stamp,
+ {
+ mw_s1_ue_info(
+ { mw_temp_ue_id },
+ { mw_associate_id },
+ { *, mw_ecgi(mw_plmn, PX_CELL_ID), * },
+ {
+ mw_s1_bearer_info_detailed
+ // TODO To be refined
+ })
+ })))))) {
+ tc_ac.stop;
+
+ log("*** " & testcasename() & ": PASS: IUT successfully responds with a S1BearerInfo information ***");
+ 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_SRV_RNIS_018_OK
+
+ /**
+ * @desc Check that the RNIS service returns the L2 measurements information.
+ * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BV.tplan2
+ */
+ testcase TC_MEC_SRV_RNIS_019_OK() runs on HttpComponent system HttpTestAdapter {
+ // Local variables
+ var HeaderLines v_headers;
+
+ // Test control
+ if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) {
+ log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***");
+ setverdict(inconc);
+ stop;
+ }
+
+ // Test component configuration
+ f_cf_01_http_up();
+
+ // Test adapter configuration
+
+ // Preamble
+
+ // Test Body
+ log("*** " & testcasename() & ": INCONC: Too many changes in JSON data description, not implemented ***");
+ f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
+
+ // Postamble
+ f_cf_01_http_down();
+ } // End of testcase TC_MEC_SRV_RNIS_019_OK
+
} // End of group rnis_query
+ group rnis_query_bi_bo {
+
+ /**
+ * @desc Check that the RNIS service returns an error when the RAB information is requested with a malformatted message.
+ * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2
+ */
+ testcase TC_MEC_SRV_RNIS_016_BR() runs on HttpComponent system HttpTestAdapter {
+ // Local variables
+ var HeaderLines v_headers;
+
+ // Test control
+ if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) {
+ log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY 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(
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/rab_info?c_id=" & oct2char(unichar2oct(PX_CELL_ID, "UTF-8")),
+ v_headers
+ )
+ )
+ );
+ f_selfOrClientSyncAndVerdict(c_prDone, e_success);
+
+ // Test Body
+ tc_ac.start;
+ alt {
+ [] httpPort.receive(
+ mw_http_response(
+ mw_http_response_400_bad_request(
+ mw_http_message_body_json(
+ mw_body_json_rni_problem_details(
+ mw_problem_details(
+ -, -, 400
+ )))))) {
+ tc_ac.stop;
+
+ log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***");
+ 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_SRV_RNIS_016_BR
+
+ /**
+ * @desc Check that the RNIS service returns an error when the RAB information is requested with a malformatted message.
+ * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2
+ */
+ testcase TC_MEC_SRV_RNIS_016_NF() runs on HttpComponent system HttpTestAdapter {
+ // Local variables
+ var HeaderLines v_headers;
+
+ // Test control
+ if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) {
+ log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY 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(
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/rab_info?cell_id=" & oct2char(unichar2oct(PX_NOT_EXISTENT_CELL_ID, "UTF-8")),
+ v_headers
+ )
+ )
+ );
+ f_selfOrClientSyncAndVerdict(c_prDone, e_success);
+
+ // Test Body
+ tc_ac.start;
+ alt {
+ [] httpPort.receive(
+ mw_http_response(
+ mw_http_response_404_not_found(
+ mw_http_message_body_json(
+ mw_body_json_rni_problem_details(
+ mw_problem_details(
+ -, -, 404
+ )))))) {
+ tc_ac.stop;
+
+ log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***");
+ 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_SRV_RNIS_016_NF
+
+ /**
+ * @desc Check that the RNIS service returns an error when the PLMN information is requested with a malformatted message.
+ * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2
+ */
+ testcase TC_MEC_SRV_RNIS_017_BR() runs on HttpComponent system HttpTestAdapter {
+ // Local variables
+ var HeaderLines v_headers;
+
+ // Test control
+ if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) {
+ log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY 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(
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/plmn_info?app_id=" & oct2char(unichar2oct(PX_APP_ID, "UTF-8")),
+ v_headers
+ )
+ )
+ );
+ f_selfOrClientSyncAndVerdict(c_prDone, e_success);
+
+ // Test Body
+ tc_ac.start;
+ alt {
+ [] httpPort.receive(
+ mw_http_response(
+ mw_http_response_400_bad_request(
+ mw_http_message_body_json(
+ mw_body_json_rni_problem_details(
+ mw_problem_details(
+ -, -, 400
+ )))))) {
+ tc_ac.stop;
+
+ log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***");
+ 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_SRV_RNIS_017_BR
+
+ /**
+ * @desc Check that the RNIS service returns an error when the PLMN information for a not existing element is requested.
+ * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2
+ */
+ testcase TC_MEC_SRV_RNIS_017_NF() runs on HttpComponent system HttpTestAdapter {
+ // Local variables
+ var HeaderLines v_headers;
+
+ // Test control
+ if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) {
+ log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY 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(
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/plmn_info?app_ins_id=" & oct2char(unichar2oct(PX_NOT_EXISTENT_APP_INS_ID, "UTF-8")),
+ v_headers
+ )
+ )
+ );
+ f_selfOrClientSyncAndVerdict(c_prDone, e_success);
+
+ // Test Body
+ tc_ac.start;
+ alt {
+ [] httpPort.receive(
+ mw_http_response(
+ mw_http_response_404_not_found(
+ mw_http_message_body_json(
+ mw_body_json_rni_problem_details(
+ mw_problem_details(
+ -, -, 404
+ )))))) {
+ tc_ac.stop;
+
+ log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***");
+ 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_SRV_RNIS_017_NF
+
+ /**
+ * @desc Check that the RNIS service returns an error when the S1 bearer information is requested with a malformatted message.
+ * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2
+ */
+ testcase TC_MEC_SRV_RNIS_018_BR() runs on HttpComponent system HttpTestAdapter {
+ // Local variables
+ var HeaderLines v_headers;
+
+ // Test control
+ if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) {
+ log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY 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(
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/s1_bearer_info?c_id=" & oct2char(unichar2oct(PX_C_ID, "UTF-8")),
+ v_headers
+ )
+ )
+ );
+ f_selfOrClientSyncAndVerdict(c_prDone, e_success);
+
+ // Test Body
+ tc_ac.start;
+ alt {
+ [] httpPort.receive(
+ mw_http_response(
+ mw_http_response_400_bad_request(
+ mw_http_message_body_json(
+ mw_body_json_rni_problem_details(
+ mw_problem_details(
+ -, -, 400
+ )))))) {
+ tc_ac.stop;
+
+ log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***");
+ 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_SRV_RNIS_018_BR
+
+ /**
+ * @desc Check that the RNIS service returns an error when the S1 bearer information for a not existing element is requested.
+ * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2
+ */
+ testcase TC_MEC_SRV_RNIS_018_NF() runs on HttpComponent system HttpTestAdapter {
+ // Local variables
+ var HeaderLines v_headers;
+
+ // Test control
+ if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) {
+ log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY 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(
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/s1_bearer_info?cell_id=" & oct2char(unichar2oct(PX_NOT_EXISTENT_CELL_ID, "UTF-8")),
+ v_headers
+ )
+ )
+ );
+ f_selfOrClientSyncAndVerdict(c_prDone, e_success);
+
+ // Test Body
+ tc_ac.start;
+ alt {
+ [] httpPort.receive(
+ mw_http_response(
+ mw_http_response_404_not_found(
+ mw_http_message_body_json(
+ mw_body_json_rni_problem_details(
+ mw_problem_details(
+ -, -, 404
+ )))))) {
+ tc_ac.stop;
+
+ log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***");
+ 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_SRV_RNIS_018_NF
+
+ /**
+ * @desc Check that the RNIS service returns an error when the L2 measurements information is requested with a malformatted message.
+ * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2
+ */
+ testcase TC_MEC_SRV_RNIS_019_BR() runs on HttpComponent system HttpTestAdapter {
+ // Local variables
+ var HeaderLines v_headers;
+
+ // Test control
+ if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) {
+ log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY 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(
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/layer2_meas?c_id=" & oct2char(unichar2oct(PX_C_ID, "UTF-8")),
+ v_headers
+ )
+ )
+ );
+ f_selfOrClientSyncAndVerdict(c_prDone, e_success);
+
+ // Test Body
+ tc_ac.start;
+ alt {
+ [] httpPort.receive(
+ mw_http_response(
+ mw_http_response_400_bad_request(
+ mw_http_message_body_json(
+ mw_body_json_rni_problem_details(
+ mw_problem_details(
+ -, -, 400
+ )))))) {
+ tc_ac.stop;
+
+ log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***");
+ 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_SRV_RNIS_019_BR
+
+ /**
+ * @desc Check that the RNIS service returns an error when the L2 measurements information for a not existing element is requested.
+ * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2
+ */
+ testcase TC_MEC_SRV_RNIS_019_NF() runs on HttpComponent system HttpTestAdapter {
+ // Local variables
+ var HeaderLines v_headers;
+
+ // Test control
+ if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) {
+ log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY 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(
+ "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/layer2_meas?cell_id=" & oct2char(unichar2oct(PX_NOT_EXISTENT_CELL_ID, "UTF-8")),
+ v_headers
+ )
+ )
+ );
+ f_selfOrClientSyncAndVerdict(c_prDone, e_success);
+
+ // Test Body
+ tc_ac.start;
+ alt {
+ [] httpPort.receive(
+ mw_http_response(
+ mw_http_response_404_not_found(
+ mw_http_message_body_json(
+ mw_body_json_rni_problem_details(
+ mw_problem_details(
+ -, -, 404
+ )))))) {
+ tc_ac.stop;
+
+ log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***");
+ 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_SRV_RNIS_019_NF
+
+ } // End of group rnis_query_bi_bo
+
} // End of module AtsMec_RnisAPI_TestCases
diff --git a/ttcn/AtsMec/AtsMec_TestControl.ttcn b/ttcn/AtsMec/AtsMec_TestControl.ttcn
index ddbcae6fd567d2d25ca3c47e0018160fa4046b02..95fee7447f171b851348fc04d4d91321a7370cee 100644
--- a/ttcn/AtsMec/AtsMec_TestControl.ttcn
+++ b/ttcn/AtsMec/AtsMec_TestControl.ttcn
@@ -78,7 +78,17 @@ module AtsMec_TestControl {
}
if (PICS_RNIS_QUERY) {
execute(TC_MEC_SRV_RNIS_016_OK());
-
+ execute(TC_MEC_SRV_RNIS_016_BR());
+ execute(TC_MEC_SRV_RNIS_016_NF());
+ execute(TC_MEC_SRV_RNIS_017_OK());
+ execute(TC_MEC_SRV_RNIS_017_BR());
+ execute(TC_MEC_SRV_RNIS_017_NF());
+ execute(TC_MEC_SRV_RNIS_018_OK());
+ execute(TC_MEC_SRV_RNIS_018_BR());
+ execute(TC_MEC_SRV_RNIS_018_NF());
+ execute(TC_MEC_SRV_RNIS_019_OK());
+ execute(TC_MEC_SRV_RNIS_019_BR());
+ execute(TC_MEC_SRV_RNIS_019_NF());
}
}
diff --git a/ttcn/LibIts b/ttcn/LibIts
index 806e133118639e261fc589daeffb078559ca605c..1e93108a94eaa6f95f5b508194bd0632c11f1a1b 160000
--- a/ttcn/LibIts
+++ b/ttcn/LibIts
@@ -1 +1 @@
-Subproject commit 806e133118639e261fc589daeffb078559ca605c
+Subproject commit 1e93108a94eaa6f95f5b508194bd0632c11f1a1b
diff --git a/ttcn/LibMec/Ams/ttcn/Ams_Templates.ttcn b/ttcn/LibMec/Ams/ttcn/Ams_Templates.ttcn
index 974f2d7170e8c17b8d21aa640016254995f89646..e50246d412ed1bfc3b73191b83ff14da0a292f5f 100644
--- a/ttcn/LibMec/Ams/ttcn/Ams_Templates.ttcn
+++ b/ttcn/LibMec/Ams/ttcn/Ams_Templates.ttcn
@@ -10,43 +10,41 @@ module Ams_Templates {
import from Ams_TypesAndValues all;
import from Ams_Pixits all;
- template (value) AppMobilityServiceInfo m_app_mobility_service_info(
- in String p_app_mobility_service_id := PX_APP_MOBILITY_SERVICE_ID,
- in template (omit) RegistrationInfos p_registration_info := omit
+ template (omit) AppMobilityServiceInfo m_app_mobility_service_info(
+ in String p_app_mobility_service_id := PX_APP_MOBILITY_SERVICE_ID,
+ in template (omit) RegistrationInfos p_registration_info := omit
) := {
- appMobilityServiceId := p_app_mobility_service_id,
- registeredAppMobilityService := p_registration_info
+ registeredAppMobilityService := p_registration_info,
+ appMobilityServiceId := p_app_mobility_service_id
} // End of template m_app_mobility_service_info
template (present) AppMobilityServiceInfo mw_app_mobility_service_info(
- template (present) RegistrationInfos p_registration_info := omit,
- in String p_app_mobility_service_id
+ template (present) RegistrationInfos p_registration_info := ?,
+ template (present) String p_app_mobility_service_id := ?
) := {
- appMobilityServiceId := p_app_mobility_service_id,
- registeredAppMobilityService := p_registration_info
+ registeredAppMobilityService := p_registration_info,
+ appMobilityServiceId := p_app_mobility_service_id
}
-
-
-
- template (value) RegistrationRequest m_registration_request (
- in template (omit) ServiceConsumerId p_service_consumer_id := omit,
- in template (omit) DeviceInformations p_device_info := omit,
- in UInt32 p_expire_time
+
+ template (omit) RegistrationRequest m_registration_request (
+ in template (omit) ServiceConsumerId p_service_consumer_id := omit,
+ in template (omit) DeviceInformations p_device_info := omit,
+ in UInt32 p_expire_time
) := {
serviceConsumerId := p_service_consumer_id,
deviceInformation := p_device_info,
- expiryTime := p_expire_time
+ expiryTime := p_expire_time
}
- template (present) RegistrationRequest mw_registration_request (
- in template (present) ServiceConsumerId p_service_consumer_id := omit,
- in template (present) DeviceInformations p_device_info := omit,
- in UInt32 p_expire_time := omit
+ template RegistrationRequest mw_registration_request(
+ template ServiceConsumerId p_service_consumer_id := ?,
+ template DeviceInformations p_device_info := omit,
+ template UInt32 p_expire_time := omit
) := {
serviceConsumerId := p_service_consumer_id,
- deviceInformation := omit,
- expiryTime := omit
+ deviceInformation := p_device_info,
+ expiryTime := p_expire_time
}
@@ -60,13 +58,13 @@ module Ams_Templates {
expiryTime := p_expire_time
}
- template (present) RegistrationInfo mw_registration_info (
- in template (present) ServiceConsumerId p_service_consumer_id := omit,
- in template (present) DeviceInformations p_device_info := omit,
- in UInt32 p_expire_time
+ template (present) RegistrationInfo mw_registration_info(
+ template (present) ServiceConsumerId p_service_consumer_id := ?,
+ template (present) DeviceInformations p_device_info := ?,
+ template (present) UInt32 p_expire_time
) := {
serviceConsumerId := p_service_consumer_id,
- deviceInformation := omit,
+ deviceInformation := p_device_info,
expiryTime := p_expire_time
}
@@ -90,12 +88,12 @@ module Ams_Templates {
- template (omit) ServiceConsumerId mw_service_consumer_id (
- in String p_app_instance_id,
- in String p_mep_id
+ template ServiceConsumerId mw_service_consumer_id(
+ template (present) String p_app_instance_id := ?,
+ template (present) String p_mep_id := ?
) := {
- appInstanceId := omit,
- mepId := omit
+ appInstanceId := p_app_instance_id,
+ mepId := p_mep_id
}
diff --git a/ttcn/LibMec/RnisAPI/json/RnisAPI.json b/ttcn/LibMec/RnisAPI/json/RnisAPI.json
index f3a79b32682a32ef26baf9c90951f2a097ccc2bc..a6c7ee5b57b7e59b66c46d5ef82f603628852885 100644
--- a/ttcn/LibMec/RnisAPI/json/RnisAPI.json
+++ b/ttcn/LibMec/RnisAPI/json/RnisAPI.json
@@ -5645,7 +5645,7 @@
"type": "object",
"required": [
"appInsId",
- "ecgi"
+ "plmn"
],
"properties": {
"timeStamp": {
@@ -5654,8 +5654,11 @@
"appInsId": {
"$ref": "#/definitions/AppInsId"
},
- "ecgi": {
- "$ref": "#/definitions/Ecgi"
+ "plmn": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Plmn"
+ }
}
}
},
@@ -5703,7 +5706,6 @@
"S1UeInfo": {
"type": "object",
"required": [
- "tempUeId",
"ecgi",
"s1BearerInfoDetailed"
],
@@ -5739,13 +5741,14 @@
"type": "object",
"required": [
"erabId",
- "s1EnbInfo"
+ "enbInfo",
+ "sGwInfo"
],
"properties": {
"erabId": {
"$ref": "#/definitions/ErabId"
},
- "s1EnbInfo": {
+ "enbInfo": {
"$ref": "#/definitions/S1EnbInfo"
},
"sGwInfo": {
@@ -5962,10 +5965,10 @@
"example": "UE_IPV4_ADDRESS"
},
"value": {
- "type": "integer",
- "format": "int32",
+ "type": "String",
+ "format": "String",
"description": "Value for the identifier",
- "example": 1
+ "example": "192.0.0.2"
}
}
},
@@ -5975,8 +5978,11 @@
"qci": {
"$ref": "#/definitions/Qci"
},
- "qci_information": {
- "$ref": "#/definitions/QosInformation"
+ "qosInformation": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QosInformation"
+ }
}
}
},
diff --git a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Pixits.ttcn b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Pixits.ttcn
index f4302fb535bc480f739124dcca4d7c1bc18e4af8..3edeabfae7e47d90e08fadb7cfdc6ae8fe83ac87 100644
--- a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Pixits.ttcn
+++ b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Pixits.ttcn
@@ -18,10 +18,18 @@ module RnisAPI_Pixits {
modulepar CallbackReference PX_CALLBACK_REFERENCE := "http://meAppClient.example.com/rni/v2/notifications/cell_change/77777";
- modulepar UInt32 PX_ASSOCIATE_ID_VALUE := 1;
+ modulepar JSON.String PX_ASSOCIATE_ID_VALUE := "192.0.0.2";
modulepar CellId PX_CELL_ID := "0x0800000A";
+ modulepar CellId PX_C_ID := "0xFFFFFFFF";
+
+ modulepar CellId PX_NOT_EXISTENT_CELL_ID := "0x8000099";
+
modulepar AppInsId PX_APP_INS_ID := "01";
+ modulepar AppInsId PX_APP_ID := "19";
+
+ modulepar AppInsId PX_NOT_EXISTENT_APP_INS_ID := "99";
+
} // End of module RnisAPI_Pixits
diff --git a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn
index 8c29fd5e2fb537d75d9ce70f0e13f411b7988081..8c895d7fb4cb513fb66f92bfdc285b0b153b2bf2 100644
--- a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn
+++ b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn
@@ -72,6 +72,45 @@ module RnisAPI_Templates {
subscriptionType := p_subscriptionType
} // End of temlate mw_subscription
+ template (omit) CellChangeSubscription m_cell_change_subscription(
+ in template (value) CallbackReference p_callbackReference,
+ in template (value) Link p_links,
+ in template (value) FilterCriteriaAssocHo p_filterCriteria,
+ in template (omit) TimeStamp p_expiryDeadline := omit
+ ) := {
+ subscriptionType := CELL_CHANGE,
+ callbackReference := p_callbackReference,
+ links := p_links,
+ filterCriteria := p_filterCriteria,
+ expiryDeadline := p_expiryDeadline
+ } // End of template m_cell_change_subscription
+
+ template (omit) CellChangeSubscription m_cell_change_subscription_wrong_subscription_type(
+ in template (value) CallbackReference p_callbackReference,
+ in template (value) Link p_links,
+ in template (value) FilterCriteriaAssocHo p_filterCriteria,
+ in template (omit) TimeStamp p_expiryDeadline := omit
+ ) modifies m_cell_change_subscription := {
+ subscriptionType := WRONG_PARAMETER
+ } // End of template m_cell_change_subscription_wrong_subscription_type
+
+ template CellChangeSubscription mw_cell_change_subscription(
+ template (present) CallbackReference p_callbackReference := ?,
+ template (present) Link p_links := ?,
+ template (present) FilterCriteriaAssocHo p_filterCriteria := ?,
+ template TimeStamp p_expiryDeadline := *
+ ) := {
+ subscriptionType := CELL_CHANGE,
+ callbackReference := p_callbackReference,
+ links := p_links,
+ filterCriteria := p_filterCriteria,
+ expiryDeadline := p_expiryDeadline
+ } // End of template mw_cell_change_subscription
+
+ } // End of group subscriptions
+
+ group info_request {
+
template (value) RabInfo m_rab_info(
in template (value) TimeStamp p_timeStamp,
in AppInsId p_appInsId,
@@ -97,25 +136,69 @@ module RnisAPI_Templates {
} // End of temlate mw_rab_info
template (value) PlmnInfo m_plmn_info(
- in template (value) TimeStamp p_timeStamp,
- in AppInsId p_appInsId,
- in template (value) Ecgi p_ecgi
+ in template (value) TimeStamp p_timeStamp,
+ in AppInsId p_appInsId,
+ in template (value) Plmns p_plmn
) := {
timeStamp := p_timeStamp,
appInsId := p_appInsId,
- ecgi := p_ecgi
+ plmn := p_plmn
} // End of temlate m_plmn_info
template (present) PlmnInfo mw_plmn_info(
- template (present) TimeStamp p_timeStamp := ?,
- template (present) AppInsId p_appInsId := ?,
- template (present) Ecgi p_ecgi := ?
+ template (present) TimeStamp p_timeStamp := ?,
+ template (present) AppInsId p_appInsId := ?,
+ template (present) Plmns p_plmn := ?
) := {
timeStamp := p_timeStamp,
appInsId := p_appInsId,
- ecgi := p_ecgi
+ plmn := p_plmn
} // End of temlate mw_plmn_info
+ template (value) S1BearerInfo m_s1_bearer_info(
+ in template (value) TimeStamp p_timeStamp,
+ in template (value) S1UeInfo p_s1UeInfo
+ ) := {
+ timeStamp := p_timeStamp,
+ s1UeInfo := p_s1UeInfo
+ } // End of temlate m_s1_bearer_info
+
+ template (present) S1BearerInfo mw_s1_bearer_info(
+ template (present) TimeStamp p_timeStamp := ?,
+ template (present) S1UeInfo p_s1UeInfo := ?
+ ) := {
+ timeStamp := p_timeStamp,
+ s1UeInfo := p_s1UeInfo
+ } // End of temlate mw_s1_bearer_info
+
+ } // End of group info_request
+
+ group sub_types {
+
+ template (value) S1UeInfo_ m_s1_ue_info(
+ in template (value) TempUeId p_tempUeId,
+ in template (value) AssociateId p_associateId,
+ in template (value) Ecgis p_ecgi,
+ in template (value) S1BearerInfoDetailed p_s1BearerInfoDetailed
+ ) := {
+ tempUeId := p_tempUeId,
+ associateId := p_associateId,
+ ecgi := p_ecgi,
+ s1BearerInfoDetailed := p_s1BearerInfoDetailed
+ } // End of m_s1_ue_info
+
+ template (present) S1UeInfo_ mw_s1_ue_info(
+ template (present) TempUeId p_tempUeId := ?,
+ template (present) AssociateId p_associateId := ?,
+ template (present) Ecgis p_ecgi := ?,
+ template (present) S1BearerInfoDetailed p_s1BearerInfoDetailed := ?
+ ) := {
+ tempUeId := p_tempUeId,
+ associateId := p_associateId,
+ ecgi := p_ecgi,
+ s1BearerInfoDetailed := p_s1BearerInfoDetailed
+ } // End of mw_s1_ue_info
+
template (value) TimeStamp m_time_stamp(
in UInt32 p_seconds,
in UInt32 p_nanoSeconds := 0
@@ -132,138 +215,134 @@ module RnisAPI_Templates {
nanoSeconds := p_nanoSeconds
} // End of temlate mw_time_stamp
- group cell {
-
- template (omit) CellChangeSubscription m_cell_change_subscription(
- in template (value) CallbackReference p_callbackReference,
- in template (value) Link p_links,
- in template (value) FilterCriteriaAssocHo p_filterCriteria,
- in template (omit) TimeStamp p_expiryDeadline := omit
- ) := {
- subscriptionType := CELL_CHANGE,
- callbackReference := p_callbackReference,
- links := p_links,
- filterCriteria := p_filterCriteria,
- expiryDeadline := p_expiryDeadline
- } // End of template m_cell_change_subscription
-
- template (omit) CellChangeSubscription m_cell_change_subscription_wrong_subscription_type(
- in template (value) CallbackReference p_callbackReference,
- in template (value) Link p_links,
- in template (value) FilterCriteriaAssocHo p_filterCriteria,
- in template (omit) TimeStamp p_expiryDeadline := omit
- ) modifies m_cell_change_subscription := {
- subscriptionType := WRONG_PARAMETER
- } // End of template m_cell_change_subscription_wrong_subscription_type
-
- template CellChangeSubscription mw_cell_change_subscription(
- template (present) CallbackReference p_callbackReference := ?,
- template (present) Link p_links := ?,
- template (present) FilterCriteriaAssocHo p_filterCriteria := ?,
- template TimeStamp p_expiryDeadline := *
- ) := {
- subscriptionType := CELL_CHANGE,
- callbackReference := p_callbackReference,
- links := p_links,
- filterCriteria := p_filterCriteria,
- expiryDeadline := p_expiryDeadline
- } // End of template mw_cell_change_subscription
-
- template (value) FilterCriteriaAssocHo 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,
- in HoStatus p_hoStatus
- ) := {
- appInsId := p_appInsId,
- associateId := p_associateId,
- plmn := p_plmn,
- cellId := p_cellId,
- hoStatus := p_hoStatus
- } // End of template m_filter_criteria
-
- template (present) FilterCriteriaAssocHo mw_filter_criteria(
- template (present) AppInsId p_appInsId := ?,
- template (present) AssociateId p_associateId := ?,
- template (present) Plmn p_plmn := ?,
- template (present) CellId p_cellId := ?,
- template (present) HoStatus p_hoStatus := ?
- ) := {
- appInsId := p_appInsId,
- associateId := p_associateId,
- plmn := p_plmn,
- cellId := p_cellId,
- hoStatus := p_hoStatus
- } // End of template mw_filter_criteria
-
- template (value) CellUserInfo m_cell_user_info(
- in template (value) Ecgi p_ecgi,
- in template (value) UeInfo p_ueInfo
- ) := {
- ecgi := p_ecgi,
- ueInfo := p_ueInfo
- } // End of template m_cell_user_info
-
- template (present) CellUserInfo mw_cell_user_info(
- template (present) Ecgi p_ecgi := ?,
- template (present) UeInfo p_ueInfo := ?
- ) := {
- ecgi := p_ecgi,
- ueInfo := p_ueInfo
- } // End of template mw_cell_user_info
-
- template (value) AssociateId_ m_associate_id(
- in AssociateId_type p_type_,
- in UInt32 p_value_
- ) := {
- type_ := p_type_,
- value_ := p_value_
- } // End of template m_associate_id
-
- template (present) AssociateId_ mw_associate_id(
- template (present) AssociateId_type p_type_ := ?,
- template (present) UInt32 p_value_ := ?
- ) := {
- type_ := p_type_,
- value_ := p_value_
- } // End of template mw_associate_id
-
- template (value) Ecgi m_ecgi(
- in template (value) Plmn p_plmn,
- in template (value) CellId p_cellId
- ) := {
- plmn := p_plmn,
- cellId := p_cellId
- } // End of template m_ecgi
-
- template (present) Ecgi mw_ecgi(
- in template (present) Plmn p_plmn := ?,
- in template (present) CellId p_cellId := ?
- ) := {
- plmn := p_plmn,
- cellId := p_cellId
- } // End of template mw_ecgi
-
- template (value) Plmn m_plmn(
- in JSON.String p_mcc,
- in JSON.String p_mnc
- ) := {
- mcc := p_mcc,
- mnc := p_mnc
- } // End of template m_plmn
-
- template (present) Plmn mw_plmn(
- template (present) JSON.String p_mcc := ?,
- template (present) JSON.String p_mnc := ?
- ) := {
- mcc := p_mcc,
- mnc := p_mnc
- } // End of template mw_plmn
-
- } // End of group cell
+ template (value) FilterCriteriaAssocHo 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,
+ in HoStatus p_hoStatus
+ ) := {
+ appInsId := p_appInsId,
+ associateId := p_associateId,
+ plmn := p_plmn,
+ cellId := p_cellId,
+ hoStatus := p_hoStatus
+ } // End of template m_filter_criteria
- } // End of group subscriptions
-
+ template (present) FilterCriteriaAssocHo mw_filter_criteria(
+ template (present) AppInsId p_appInsId := ?,
+ template (present) AssociateId p_associateId := ?,
+ template (present) Plmn p_plmn := ?,
+ template (present) CellId p_cellId := ?,
+ template (present) HoStatus p_hoStatus := ?
+ ) := {
+ appInsId := p_appInsId,
+ associateId := p_associateId,
+ plmn := p_plmn,
+ cellId := p_cellId,
+ hoStatus := p_hoStatus
+ } // End of template mw_filter_criteria
+
+ template (value) CellUserInfo_ m_cell_user_info(
+ in template (value) Ecgi p_ecgi,
+ in template (value) UeInfo p_ueInfo
+ ) := {
+ ecgi := p_ecgi,
+ ueInfo := p_ueInfo
+ } // End of template m_cell_user_info
+
+ template (present) CellUserInfo_ mw_cell_user_info(
+ template (present) Ecgi p_ecgi := ?,
+ template (present) UeInfo p_ueInfo := ?
+ ) := {
+ ecgi := p_ecgi,
+ ueInfo := p_ueInfo
+ } // End of template mw_cell_user_info
+
+ template (value) AssociateId_ m_associate_id(
+ in AssociateId_type p_type_,
+ in JSON.String p_value_
+ ) := {
+ type_ := p_type_,
+ value_ := p_value_
+ } // End of template m_associate_id
+
+ template (present) AssociateId_ mw_associate_id(
+ template (present) AssociateId_type p_type_ := ?,
+ template (present) JSON.String p_value_ := ?
+ ) := {
+ type_ := p_type_,
+ value_ := p_value_
+ } // End of template mw_associate_id
+
+ template (value) Ecgi m_ecgi(
+ in template (value) Plmn p_plmn,
+ in template (value) CellId p_cellId
+ ) := {
+ plmn := p_plmn,
+ cellId := p_cellId
+ } // End of template m_ecgi
+
+ template (present) Ecgi mw_ecgi(
+ in template (present) Plmn p_plmn := ?,
+ in template (present) CellId p_cellId := ?
+ ) := {
+ plmn := p_plmn,
+ cellId := p_cellId
+ } // End of template mw_ecgi
+
+ template (value) Plmn m_plmn(
+ in JSON.String p_mcc,
+ in JSON.String p_mnc
+ ) := {
+ mcc := p_mcc,
+ mnc := p_mnc
+ } // End of template m_plmn
+
+ template (present) Plmn mw_plmn(
+ template (present) JSON.String p_mcc := ?,
+ template (present) JSON.String p_mnc := ?
+ ) := {
+ mcc := p_mcc,
+ mnc := p_mnc
+ } // End of template mw_plmn
+
+ template (value) TempUeId_ m_temp_ue_id(
+ in Mmec p_mmec,
+ in Mtmsi p_mtmsi
+ ) := {
+ mmec := p_mmec,
+ mtmsi := p_mtmsi
+ } // End of template m_temp_ue_id
+
+ template (present) TempUeId_ mw_temp_ue_id(
+ template (present) Mmec p_mmec := ?,
+ template (present) Mtmsi p_mtmsi := ?
+ ) := {
+ mmec := p_mmec,
+ mtmsi := p_mtmsi
+ } // End of template mw_temp_ue_id
+
+ template (value) S1BearerInfoDetailed_ m_s1_bearer_info_detailed(
+ in ErabId p_erabId,
+ in template (value) S1EnbInfo p_enbInfo,
+ in template (value) SGwInfo p_sGwInfo
+ ) := {
+ erabId := p_erabId,
+ enbInfo := p_enbInfo,
+ sGwInfo := p_sGwInfo
+ } // End of template m_s1_bearer_info_detailed
+
+ template (present) S1BearerInfoDetailed_ mw_s1_bearer_info_detailed(
+ template (present) ErabId p_erabId := ?,
+ template (present) S1EnbInfo p_enbInfo := ?,
+ template (present) SGwInfo p_sGwInfo := ?
+ ) := {
+ erabId := p_erabId,
+ enbInfo := p_enbInfo,
+ sGwInfo := p_sGwInfo
+ } // End of template mw_s1_bearer_info_detailed
+
+ } // End of group sub_types
} // End of module RnisAPI_Templates
diff --git a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn
index 2e0442db2f2122f81a5fc719031c6d35930b476a..a11cdf3ec3e0b37b0eb78d36ad38625d9494c588 100644
--- a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn
+++ b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn
@@ -38,7 +38,7 @@ module RnisAPI_TypesAndValues {
type record PlmnInfo {
TimeStamp timeStamp optional,
AppInsId appInsId,
- Ecgi ecgi
+ Plmns plmn
}
/**
@@ -73,22 +73,23 @@ module RnisAPI_TypesAndValues {
* @member ecgi
* @member s1BearerInfoDetailed
*/
- type record S1UeInfo {
- TempUeId tempUeId,
+ type record S1UeInfo_ {
+ TempUeId tempUeId optional,
AssociateId associateId optional,
Ecgis ecgi,
S1BearerInfoDetailed s1BearerInfoDetailed
}
+ type record of S1UeInfo_ S1UeInfo;
/**
* @desc Information on UEs in the specific cell
* @member erabId The element that uniquely identifies a S1 bearer for a specific UE, as defined in ETSI TS 136 413
- * @member s1EnbInfo
- * @member sGwInfo
+ * @member enbInfo S1 bearer information on eNB side
+ * @member sGwInfo S1 bearer information on GW side
*/
type record S1BearerInfoDetailed_ {
ErabId erabId,
- S1EnbInfo s1EnbInfo,
+ S1EnbInfo enbInfo,
SGwInfo sGwInfo
}
type record of S1BearerInfoDetailed_ S1BearerInfoDetailed;
@@ -100,10 +101,11 @@ module RnisAPI_TypesAndValues {
* @member mmec MMEC as defined in ETSI TS 136 413
* @member mtmsi M-TMSI as defined in ETSI TS 136 413
*/
- type record TempUeId {
+ type record TempUeId_ {
Mmec mmec,
Mtmsi mtmsi
}
+ type record of TempUeId_ TempUeId;
type JSON.String Mmec;
@@ -154,10 +156,11 @@ module RnisAPI_TypesAndValues {
* @member ecgi
* @member ueInfo
*/
- type record CellUserInfo {
+ type record CellUserInfo_ {
Ecgi ecgi,
UeInfo ueInfo
}
+ type record of CellUserInfo_ CellUserInfo;
/**
* @desc E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413
@@ -179,6 +182,7 @@ module RnisAPI_TypesAndValues {
JSON.String mcc,
JSON.String mnc
}
+ type record of Plmn Plmns;
/**
* @desc The E-UTRAN Cell Identity as a bit string (size (28)), as defined in 3GPP TS 36.413
@@ -192,7 +196,7 @@ module RnisAPI_TypesAndValues {
*/
type record UeInfo_ {
AssociateId associateId optional,
- ErabQosParameters erabInfo
+ ErabInfo erabInfo
}
type record of UeInfo_ UeInfo;
@@ -203,7 +207,7 @@ module RnisAPI_TypesAndValues {
*/
type record AssociateId_ {
AssociateId_type type_,
- UInt32 value_
+ JSON.String value_
} with {
variant (type_) "name as 'type'";
variant (value_) "name as 'value'";
@@ -214,21 +218,27 @@ module RnisAPI_TypesAndValues {
* @desc Numeric value (0-255) corresponding to specified type of identifier
*/
type enumerated AssociateId_type {
- RESERVED,
- UE_IPV4_ADDRESS,
- UE_IPV6_ADDRESS,
- NATED_IP_ADDRESS,
- GTP_TEID
+ RESERVED (0),
+ UE_IPV4_ADDRESS (1),
+ UE_IPV6_ADDRESS (2),
+ NATED_IP_ADDRESS (3),
+ GTP_TEID (4)
}
+ type record ErabInfo_ {
+ ErabId erabId,
+ ErabQosParameters erabQosParameters
+ }
+ type record of ErabInfo_ ErabInfo;
+
/**
* @desc
* @member qci QoS Class Identifier as defined in TS 23.401
* @member qci_information
*/
type record ErabQosParameter {
- UInt32 qci,
- QosInformation qci_information
+ Qci qci,
+ QosInformation qosInformation optional
}
type record of ErabQosParameter ErabQosParameters;
@@ -238,18 +248,19 @@ module RnisAPI_TypesAndValues {
type UInt32 Qci;
/**
- * @desc
+ * @desc The QoS information for the E-RAB
* @member erabGbrDl This IE indicates the maximum downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @member erabGbrUl This IE indicates the maximum uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @member erabGbrDl This IE indicates the guaranteed downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @member erabMbrUl This IE indicates the guaranteed uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer
*/
- type enumerated QosInformation {
- erabGbrDl,
- erabGbrUl,
- erabMbrDl,
- erabMbrUl
+ type record QosInformation_ {
+ UInt32 erabMbrDl,
+ UInt32 erabMbrUl,
+ UInt32 erabGbrDl,
+ UInt32 erabGbrUl
}
+ type record of QosInformation_ QosInformation;
/**
* @desc
diff --git a/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn b/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn
index 58f757c93de882d7ae62a9b58b36255be4c704a8..2775a57f8f194c33fc8d1607e3f8487537435f48 100644
--- a/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn
+++ b/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn
@@ -8,15 +8,11 @@ module LibItsHttp_JsonMessageBodyTypes {
import from RnisAPI_TypesAndValues all;
// LibMec/BwManagementApi
import from BwManagementAPI_TypesAndValues all;
-<<<<<<< HEAD
// LibMec/Ams
import from Ams_TypesAndValues all;
-
-=======
// LibMec/AppEnablementAPI
import from AppEnablementAPI_TypesAndValues all;
-
->>>>>>> b55fa1944c45eb362e0dd6ad00f2cda74f727b50
+
/**
* This file volontary contains a trivial declaration of the type JsonBody.
* In accordance with your TTCN-3 module LibItsHttp_JSONTypes, you have to change the JsonBody typing.
@@ -25,7 +21,6 @@ module LibItsHttp_JsonMessageBodyTypes {
type union JsonBody {
// TODO Add here your custom variants
-<<<<<<< HEAD
UserInfo userInfo,
UserList userList,
ZoneInfo zoneInfo,
@@ -36,34 +31,20 @@ module LibItsHttp_JsonMessageBodyTypes {
UeIdentityTagInfo ueIdentityTagInfo,
SubscriptionLinkList subscriptionLinkList,
CellChangeSubscription cellChangeSubscription,
+ RabInfo rabInfo,
+ PlmnInfo plmnInfo,
+ S1BearerInfo s1BearerInfo,
RnisAPI_TypesAndValues.ProblemDetails problemDetails_rnis,
BwInfo bwInfo,
BwManagementAPI_TypesAndValues.ProblemDetails problemDetails_bw_management,
- AppMobilityServiceInfo appMobilityServiceInfo,
- Ams_TypesAndValues.ProblemDetails problemDetails_ams,
- Ams_TypesAndValues.RegistrationRequest registrationRequest_ams,
+ TransportInfoList transportInfoList,
+ TrafficRuleList trafficRuleList,
+ TrafficRule trafficRule,
+ AppEnablementAPI_TypesAndValues.ProblemDetails problemDetails_svc_mgmt,
+ AppMobilityServiceInfo appMobilityServiceInfo,
+ Ams_TypesAndValues.ProblemDetails problemDetails_ams,
+ Ams_TypesAndValues.RegistrationRequest registrationRequest_ams,
Ams_TypesAndValues.AmsSubscriptionLinkLists subscriptionLinkList_ams,
-=======
- UserInfo userInfo,
- UserList userList,
- ZoneInfo zoneInfo,
- AccessPointList accessPointList,
- UserTrackingSubscription userTrackingSubscription,
- ZonalTrafficSubscription zonalTrafficSubscription,
- UEidentityAPI_TypesAndValues.ProblemDetails problemDetails_ue_identity,
- UeIdentityTagInfo ueIdentityTagInfo,
- SubscriptionLinkList subscriptionLinkList,
- CellChangeSubscription cellChangeSubscription,
- RabInfo rabInfo,
- PlmnInfo plmnInfo,
- RnisAPI_TypesAndValues.ProblemDetails problemDetails_rni,
- BwInfo bwInfo,
- BwManagementAPI_TypesAndValues.ProblemDetails problemDetails_bw_management,
- TransportInfoList transportInfoList,
- TrafficRuleList trafficRuleList,
- TrafficRule trafficRule,
- AppEnablementAPI_TypesAndValues.ProblemDetails problemDetails_svc_mgmt,
->>>>>>> b55fa1944c45eb362e0dd6ad00f2cda74f727b50
universal charstring raw
} with {
variant ""
diff --git a/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn b/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn
index 20c1676376e2a784e259c80ba3443bab2e57c282..b4ddbe33585f153f45cfe9adb8a18526a607a56e 100644
--- a/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn
+++ b/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn
@@ -9,44 +9,43 @@
* All rights reserved.
*/
module LibItsHttp_JsonTemplates {
-<<<<<<< HEAD
-
-// LibMec/LocationAPI
-import from LocationAPI_TypesAndValues all;
-import from LocationAPI_Templates all;
-// LibMec/UEidentityAPI
-import from UEidentityAPI_TypesAndValues all;
-import from UEidentityAPI_Templates all;
-// LibMec/RnisAPI
-import from RnisAPI_TypesAndValues all;
-import from RnisAPI_Templates all;
-// LibMec/BwManagementAPI
-import from BwManagementAPI_TypesAndValues all;
-import from BwManagementAPI_Templates all;
+ // LibMec/LocationAPI
+ import from LocationAPI_TypesAndValues all;
+ import from LocationAPI_Templates all;
+ // LibMec/UEidentityAPI
+ import from UEidentityAPI_TypesAndValues all;
+ import from UEidentityAPI_Templates all;
+ // LibMec/RnisAPI
+ import from RnisAPI_TypesAndValues all;
+ import from RnisAPI_Templates all;
+ // LibMec/BwManagementAPI
+ import from BwManagementAPI_TypesAndValues all;
+ import from BwManagementAPI_Templates all;
+ // LibMec/AppEnablementAPI
+ import from AppEnablementAPI_TypesAndValues all;
+ import from AppEnablementAPI_Templates all;
// LibMec/Ams
import from Ams_TypesAndValues all;
import from Ams_Templates all;
+
+ // TODO Add here your custom RFCs import
+
+ // LibItsHttp
+ import from LibItsHttp_JsonMessageBodyTypes all;
+ import from LibItsHttp_JSONTypes all;
+
+ template (value) JsonBody m_json_body_raw(
+ in template (value) charstring p_raw
+ ) := {
+ raw := p_raw
+ } // End of template m_json_body_raw
-
-// TODO Add here your custom RFCs import
-
-// LibItsHttp
-import from LibItsHttp_JsonMessageBodyTypes all;
-import from LibItsHttp_JSONTypes all;
-
-template (value) JsonBody m_json_body_raw(
- in template (value) charstring p_raw
-) := {
- raw := p_raw
-} // End of template m_json_body_raw
-
-template (present) JsonBody mw_json_body_raw(
- template (present) charstring p_raw := ?
-) := {
- raw := p_raw
-} // End of template mw_json_body_raw
-
+ template (present) JsonBody mw_json_body_raw(
+ template (present) charstring p_raw := ?
+ ) := {
+ raw := p_raw
+ } // End of template mw_json_body_raw
group ams_api {
@@ -103,193 +102,6 @@ group ams_api {
} // end of group ams api
-
-
-group locarion_api {
-
- template (value) JsonBody m_body_json_user_info(
- in template (value) UserInfo p_user_info
- ) := {
- userInfo := p_user_info
- } // End of template m_body_json_user_info
-
- template (present) JsonBody mw_body_json_user_info(
- template (present) UserInfo p_user_info := ?
- ) := {
- userInfo := p_user_info
- } // End of template mw_body_json_user_info
-
- template (value) JsonBody m_body_json_user_list(
- in template (value) UserList p_user_list
- ) := {
- userList := p_user_list
- } // End of template m_body_json_user_list
-
- template (present) JsonBody mw_body_json_user_list(
- template (present) UserList p_user_list := ?
- ) := {
- userList := p_user_list
- } // End of template mw_body_json_user_list
-
-
- template (value) JsonBody m_body_json_zone_info(
- in template (value) ZoneInfo p_zone_info
- ) := {
- zoneInfo := p_zone_info
- } // End of template m_body_json_zone_info
-
- template (present) JsonBody mw_body_json_zone_info(
- template (present) ZoneInfo p_zone_info := ?
- ) := {
- zoneInfo := p_zone_info
- } // End of template mw_body_json_zone_info
-
- template (value) JsonBody m_body_json_access_point_list(
- in template (value) AccessPointList p_access_point_list
- ) := {
- accessPointList := p_access_point_list
- } // End of template m_body_json_access_point_list
-
- template (present) JsonBody mw_body_json_access_point_list(
- template (present) AccessPointList p_access_point_list := ?
- ) := {
- accessPointList := p_access_point_list
- } // End of template mw_body_json_access_point_list
-
- template (value) JsonBody m_body_json_user_tracking_subscription(
- in template (value) UserTrackingSubscription p_user_tracking_subscription
- ) := {
- userTrackingSubscription := p_user_tracking_subscription
- } // End of template m_body_json_user_tracking_subscription
-
- template (present) JsonBody mw_body_json_user_tracking_subscription(
- template (present) UserTrackingSubscription p_user_tracking_subscription := ?
- ) := {
- userTrackingSubscription := p_user_tracking_subscription
- } // End of template mw_body_json_user_rtracking_subscription
-
- template (value) JsonBody m_body_json_zonal_traffic_subscription(
- in template (value) ZonalTrafficSubscription p_zonal_traffic_subscription
- ) := {
- zonalTrafficSubscription := p_zonal_traffic_subscription
- } // End of template m_body_json_zonal_traffic_subscription
-
- template (present) JsonBody mw_body_json_zonal_traffic_subscription(
- template (present) ZonalTrafficSubscription p_zonal_traffic_subscription := ?
- ) := {
- zonalTrafficSubscription := p_zonal_traffic_subscription
- } // End of template mw_body_json_zonal_traffic_subscription
-
-} // End of group locarion_api
-
-group ue_identity_api {
-
- template (value) JsonBody m_body_json_ue_identity_tag_info(
- in template (value) UeIdentityTagInfo p_ueIdentityTagInfo
- ) := {
- ueIdentityTagInfo := p_ueIdentityTagInfo
- } // End of template m_body_json_ue_identity_tag_info
-
- template (present) JsonBody mw_body_json_ue_identity_tag_info(
- template (present) UeIdentityTagInfo p_ueIdentityTagInfo := ?
- ) := {
- ueIdentityTagInfo := p_ueIdentityTagInfo
- } // End of template mw_body_json_ue_identity_tag_info
-
- template (value) JsonBody m_body_json_ue_identity_problem_details(
- in template (value) UEidentityAPI_TypesAndValues.ProblemDetails p_problemDetails
- ) := {
- problemDetails_ue_identity := p_problemDetails
- } // End of template m_body_json_ue_identity_problem_details
-
- template (present) JsonBody mw_body_json_ue_identity_problem_details(
- template (present) UEidentityAPI_TypesAndValues.ProblemDetails p_problemDetails := ?
- ) := {
- problemDetails_ue_identity := p_problemDetails
- } // End of template mw_body_json_ue_identity_problem_details
-
-} // End of group ue_identity_api
-
-group rnis_subscriptions {
-
- template (value) JsonBody m_body_json_subscriptions_list(
- in template (value) SubscriptionLinkList p_subscriptionLinkList
- ) := {
- subscriptionLinkList := p_subscriptionLinkList
- } // End of template m_body_json_subscriptions_list
-
- template (present) JsonBody mw_body_json_subscriptions_list(
- template (present) SubscriptionLinkList p_subscriptionLinkList := ?
- ) := {
- subscriptionLinkList := p_subscriptionLinkList
- } // End of template mw_body_json_subscriptions_list
-
- template (value) JsonBody m_body_json_cell_change_subscription(
- in template (value) CellChangeSubscription p_cellChangeSubscription
- ) := {
- cellChangeSubscription := p_cellChangeSubscription
- } // End of template m_body_json_cell_change_subscription
-
- template (present) JsonBody mw_body_json_cell_change_subscription(
- template (present) CellChangeSubscription p_cellChangeSubscription := ?
- ) := {
- cellChangeSubscription := p_cellChangeSubscription
- } // End of template mw_body_json_cell_change_subscription
-
-} // End of group rnis_subscriptions
-
-group bw_management_api {
-
- template (value) JsonBody m_body_json_bw_info(
- in template (value) BwInfo p_bwInfo
- ) := {
- bwInfo := p_bwInfo
- } // End of template m_body_json_bw_info
-
- template (present) JsonBody mw_body_json_bw_info(
- template (present) BwInfo p_bwInfo := ?
- ) := {
- bwInfo := p_bwInfo
- } // End of template mw_body_json_bw_info
-
-} // End of group bw_management_api
-
-=======
-
- // LibMec/LocationAPI
- import from LocationAPI_TypesAndValues all;
- import from LocationAPI_Templates all;
- // LibMec/UEidentityAPI
- import from UEidentityAPI_TypesAndValues all;
- import from UEidentityAPI_Templates all;
- // LibMec/RnisAPI
- import from RnisAPI_TypesAndValues all;
- import from RnisAPI_Templates all;
- // LibMec/BwManagementAPI
- import from BwManagementAPI_TypesAndValues all;
- import from BwManagementAPI_Templates all;
- // LibMec/AppEnablementAPI
- import from AppEnablementAPI_TypesAndValues all;
- import from AppEnablementAPI_Templates all;
-
- // TODO Add here your custom RFCs import
-
- // LibItsHttp
- import from LibItsHttp_JsonMessageBodyTypes all;
- import from LibItsHttp_JSONTypes all;
-
- template (value) JsonBody m_json_body_raw(
- in template (value) charstring p_raw
- ) := {
- raw := p_raw
- } // End of template m_json_body_raw
-
- template (present) JsonBody mw_json_body_raw(
- template (present) charstring p_raw := ?
- ) := {
- raw := p_raw
- } // End of template mw_json_body_raw
-
group locarion_api {
template (value) JsonBody m_body_json_user_info(
@@ -356,7 +168,7 @@ group bw_management_api {
in template (value) ZonalTrafficSubscription p_zonal_traffic_subscription
) := {
zonalTrafficSubscription := p_zonal_traffic_subscription
- } // End of template m_body_json_zonal_traffic_subscription
+ } // End of template m_body_json_zonal_traffic_subscription
template (present) JsonBody mw_body_json_zonal_traffic_subscription(
template (present) ZonalTrafficSubscription p_zonal_traffic_subscription := ?
@@ -444,16 +256,28 @@ group bw_management_api {
plmnInfo := p_plmnInfo
} // End of template mw_body_json_plmn_info
+ template (value) JsonBody m_body_json_s1_bearer_info(
+ in template (value) S1BearerInfo p_s1BearerInfo
+ ) := {
+ s1BearerInfo := p_s1BearerInfo
+ } // End of template m_body_json_s1_bearer_info
+
+ template (present) JsonBody mw_body_json_s1_bearer_info(
+ template (present) S1BearerInfo p_s1BearerInfo := ?
+ ) := {
+ s1BearerInfo := p_s1BearerInfo
+ } // End of template mw_body_json_s1_bearer_info
+
template (value) JsonBody m_body_json_rni_problem_details(
in template (value) RnisAPI_TypesAndValues.ProblemDetails p_problemDetails
) := {
- problemDetails_rni := p_problemDetails
+ problemDetails_rnis := p_problemDetails
} // End of template m_body_json_rni_problem_details
template (present) JsonBody mw_body_json_rni_problem_details(
template (present) RnisAPI_TypesAndValues.ProblemDetails p_problemDetails := ?
) := {
- problemDetails_rni := p_problemDetails
+ problemDetails_rnis := p_problemDetails
} // End of template mw_body_json_rni_problem_details
} // End of group rnis_subscriptions
@@ -526,5 +350,4 @@ group bw_management_api {
} // End of group svc_mgmt
->>>>>>> b55fa1944c45eb362e0dd6ad00f2cda74f727b50
} // End of module LibItsHttp_JsonTemplates