Loading TODO.md +29 −0 Original line number Diff line number Diff line Loading @@ -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 <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_012_OK <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_011_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_012_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_016_OK <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_016_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_016_NF <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_017_OK <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_017_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_017_NF <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_018_OK <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_018_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_018_NF <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_019_OK <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_019_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_019_NF <font color="color:green">To be tested</font> ### SAQ ### SRVSUB Loading ccsrc/Protocols/Json/json_codec.cc +113 −1 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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 { Loading etc/AtsMec/AtsMec.cfg +12 −1 Original line number Diff line number Diff line Loading @@ -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 Loading ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn +578 −11 File changed.Preview size limit exceeded, changes collapsed. Show changes ttcn/AtsMec/AtsMec_TestControl.ttcn +11 −1 Original line number Diff line number Diff line Loading @@ -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()); } } Loading Loading
TODO.md +29 −0 Original line number Diff line number Diff line Loading @@ -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 <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_012_OK <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_011_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_012_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_016_OK <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_016_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_016_NF <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_017_OK <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_017_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_017_NF <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_018_OK <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_018_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_018_NF <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_019_OK <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_019_BR <font color="color:green">To be tested</font> - TC_MEC_SRV_RNIS_019_NF <font color="color:green">To be tested</font> ### SAQ ### SRVSUB Loading
ccsrc/Protocols/Json/json_codec.cc +113 −1 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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 { Loading
etc/AtsMec/AtsMec.cfg +12 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn +578 −11 File changed.Preview size limit exceeded, changes collapsed. Show changes
ttcn/AtsMec/AtsMec_TestControl.ttcn +11 −1 Original line number Diff line number Diff line Loading @@ -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()); } } Loading