Commit dbc1246a authored by YannGarcia's avatar YannGarcia
Browse files

Validate MEC-012 against MEC Sandbox

parent 21689335
Loading
Loading
Loading
Loading
+16 −127
Original line number Original line Diff line number Diff line
@@ -43,7 +43,7 @@ int json_codec::encode (const LibItsHttp__JsonMessageBodyTypes::JsonBody& msg, O
  } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_cellChangeSubscription)) {
  } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_cellChangeSubscription)) {
    const RnisAPI__TypesAndValues::CellChangeSubscription& cell_change_subscription = msg.cellChangeSubscription();
    const RnisAPI__TypesAndValues::CellChangeSubscription& cell_change_subscription = msg.cellChangeSubscription();
    cell_change_subscription.encode(RnisAPI__TypesAndValues::CellChangeSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    cell_change_subscription.encode(RnisAPI__TypesAndValues::CellChangeSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    data = char2oct(CHARSTRING("{\"CellChangeSubscription\": ")) + OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()) + char2oct(CHARSTRING("}"));
    data = /*char2oct(CHARSTRING("{\"CellChangeSubscription\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
  } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_appContext)) {
  } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_appContext)) {
    const UEAppInterfaceAPI__TypesAndValues::AppContext& app_context = msg.appContext();
    const UEAppInterfaceAPI__TypesAndValues::AppContext& app_context = msg.appContext();
    app_context.encode(UEAppInterfaceAPI__TypesAndValues::AppContext_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    app_context.encode(UEAppInterfaceAPI__TypesAndValues::AppContext_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
@@ -176,13 +176,6 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy
    LocationAPI__TypesAndValues::ZonalTrafficSubscription zonal_traffic_subscription;
    LocationAPI__TypesAndValues::ZonalTrafficSubscription zonal_traffic_subscription;
    zonal_traffic_subscription.decode(LocationAPI__TypesAndValues::ZonalTrafficSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    zonal_traffic_subscription.decode(LocationAPI__TypesAndValues::ZonalTrafficSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.zonalTrafficSubscription() = zonal_traffic_subscription;
    msg.zonalTrafficSubscription() = zonal_traffic_subscription;







  } else if (it->second.find("\"periodicTrackingSubscription\"") != std::string::npos) {
  } else if (it->second.find("\"periodicTrackingSubscription\"") != std::string::npos) {
    int idx_begin = it->second.find(":");
    int idx_begin = it->second.find(":");
    int idx_end = it->second.rfind("}") - 1; // Remove the last '}'
    int idx_end = it->second.rfind("}") - 1; // Remove the last '}'
@@ -219,11 +212,6 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy
    LocationAPI__TypesAndValues::DistanceNotificationSubscription notif;
    LocationAPI__TypesAndValues::DistanceNotificationSubscription notif;
    notif.decode(LocationAPI__TypesAndValues::DistanceNotificationSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    notif.decode(LocationAPI__TypesAndValues::DistanceNotificationSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.distanceNotificationSubscription() = notif;
    msg.distanceNotificationSubscription() = notif;
  } else if (it->second.find("\"SubscriptionLinkList\"") != std::string::npos) { // Be careful to the order
                                                                                 // TODO To be refined, find("\"accessPointList\"") is not optimal
    RnisAPI__TypesAndValues::SubscriptionLinkList subscription_link_list;
    subscription_link_list.decode(RnisAPI__TypesAndValues::SubscriptionLinkList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.subscriptionLinkList() = subscription_link_list;
  } else if (it->second.find("\"ueIdentityTagInfo\"") != std::string::npos) {
  } else if (it->second.find("\"ueIdentityTagInfo\"") != std::string::npos) {
    UEidentityAPI__TypesAndValues::UeIdentityTagInfo ue_identity_tag_info;
    UEidentityAPI__TypesAndValues::UeIdentityTagInfo ue_identity_tag_info;
    ue_identity_tag_info.decode(UEidentityAPI__TypesAndValues::UeIdentityTagInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    ue_identity_tag_info.decode(UEidentityAPI__TypesAndValues::UeIdentityTagInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
@@ -264,7 +252,7 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy
      dns_rule.decode(AppEnablementAPI__TypesAndValues::DnsRule_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
      dns_rule.decode(AppEnablementAPI__TypesAndValues::DnsRule_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
      msg.dnsRule() = dns_rule;
      msg.dnsRule() = dns_rule;
    }
    }
  } else if ((it->second.find("\"appInstanceId\"") != std::string::npos) && (it->second.find("\"subscriptionType\"") != std::string::npos)) {
  } else if (it->second.find("\"AppTerminationNotificationSubscription\"") != std::string::npos) {
    AppEnablementAPI__TypesAndValues::AppTerminationNotificationSubscription app_term;
    AppEnablementAPI__TypesAndValues::AppTerminationNotificationSubscription app_term;
    app_term.decode(AppEnablementAPI__TypesAndValues::AppTerminationNotificationSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    app_term.decode(AppEnablementAPI__TypesAndValues::AppTerminationNotificationSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.appTerminationNotificationSubscription() = app_term;
    msg.appTerminationNotificationSubscription() = app_term;
@@ -285,130 +273,26 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy
    current_time.decode(AppEnablementAPI__TypesAndValues::CurrentTime_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    current_time.decode(AppEnablementAPI__TypesAndValues::CurrentTime_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.currentTime() = current_time;
    msg.currentTime() = current_time;
  } else if (it->second.find("\"CellChangeSubscription\"") != std::string::npos) {
  } 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;
    RnisAPI__TypesAndValues::CellChangeSubscription cell_change_subscription;
    cell_change_subscription.decode(RnisAPI__TypesAndValues::CellChangeSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    cell_change_subscription.decode(RnisAPI__TypesAndValues::CellChangeSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.cellChangeSubscription() = cell_change_subscription;
    msg.cellChangeSubscription() = cell_change_subscription;
    //TODO Continue with other ChangeSubscription
    //TODO Continue with other ChangeSubscription
  } else if (it->second.find("\"RabInfo\"") != std::string::npos) {
  } else if (it->second.find("\"cellInfo\"") != std::string::npos) {
    //    // Replace "type": "1" by type": "EU_IPV4_ADDRESS", "type": "2"...
    RnisAPI__TypesAndValues::L2Meas l2_meas;
    //    // TODO Create a method instead of copy/past
    l2_meas.decode(RnisAPI__TypesAndValues::L2Meas_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    //    // loggers::get_instance().log("json_codec::decode: Before, str=%s", str.c_str());
    msg.l2Meas() = l2_meas;
    //    std::size_t it_start = str.find("\"type\"");
  } else if ((it->second.find("\"appInstanceId\"") != std::string::npos) && (it->second.find("\"requestId\"") != std::string::npos)) {
    //    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;
    RnisAPI__TypesAndValues::RabInfo rab_info;
    rab_info.decode(RnisAPI__TypesAndValues::RabInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    rab_info.decode(RnisAPI__TypesAndValues::RabInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.rabInfo() = rab_info;
    msg.rabInfo() = rab_info;
  } else if (it->second.find("\"S1BearerInfo\"") != std::string::npos) {
  } 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;
    RnisAPI__TypesAndValues::S1BearerInfo s1_nearer_info;
    s1_nearer_info.decode(RnisAPI__TypesAndValues::S1BearerInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    s1_nearer_info.decode(RnisAPI__TypesAndValues::S1BearerInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.s1BearerInfo() = s1_nearer_info;
    msg.s1BearerInfo() = s1_nearer_info;
  } else if (it->second.find("\"PlmnInfo\"") != std::string::npos) {
  } else if ((it->second.find("\"appInstanceId\"") != std::string::npos) && (it->second.find("\"plmn\"") != std::string::npos)) {
    RnisAPI__TypesAndValues::PlmnInfo plmn_info;
    RnisAPI__TypesAndValues::PlmnInfos plmn_infos;
    plmn_info.decode(RnisAPI__TypesAndValues::PlmnInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    plmn_infos.decode(RnisAPI__TypesAndValues::PlmnInfos_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.plmnInfo() = plmn_info;
    msg.plmnInfos() = plmn_infos;
  } else if (it->second.find("\"RabEstSubscription\"") != std::string::npos) {
  } else if (it->second.find("\"RabEstSubscription\"") != std::string::npos) {
    RnisAPI__TypesAndValues::RabEstSubscription rab_est_subscription;
    RnisAPI__TypesAndValues::RabEstSubscription rab_est_subscription;
    rab_est_subscription.decode(RnisAPI__TypesAndValues::RabEstSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    rab_est_subscription.decode(RnisAPI__TypesAndValues::RabEstSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
@@ -421,6 +305,11 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy
    RnisAPI__TypesAndValues::RabRelSubscription rab_rel_subscription;
    RnisAPI__TypesAndValues::RabRelSubscription rab_rel_subscription;
    rab_rel_subscription.decode(RnisAPI__TypesAndValues::RabRelSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    rab_rel_subscription.decode(RnisAPI__TypesAndValues::RabRelSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.rabRelSubscription() = rab_rel_subscription;
    msg.rabRelSubscription() = rab_rel_subscription;
  } else if ((it->second.find("\"_links\"") != std::string::npos) && (it->second.find("subscriptions") != std::string::npos)) { // SubscriptionLinkList
    // FIXME Conflict with MEC-028 SubscriptionLinkList data type
    RnisAPI__TypesAndValues::SubscriptionLinkList subscription_link_list;
    subscription_link_list.decode(RnisAPI__TypesAndValues::SubscriptionLinkList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.subscriptionLinkList() = subscription_link_list;
  } else if (it->second.find("\"AppContext\"") != std::string::npos) {
  } else if (it->second.find("\"AppContext\"") != std::string::npos) {
    UEAppInterfaceAPI__TypesAndValues::AppContext appContext;
    UEAppInterfaceAPI__TypesAndValues::AppContext appContext;
    appContext.decode(UEAppInterfaceAPI__TypesAndValues::AppContext_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    appContext.decode(UEAppInterfaceAPI__TypesAndValues::AppContext_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
+50 −16
Original line number Original line Diff line number Diff line
@@ -14,7 +14,7 @@ LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/json"
LibItsHttp_Pics.PICS_USE_TOKEN_HEADER    := true
LibItsHttp_Pics.PICS_USE_TOKEN_HEADER    := true
#LibItsHttp_Pics.PICS_TOKEN_HEADER        := "Basic WrongToken"
#LibItsHttp_Pics.PICS_TOKEN_HEADER        := "Basic WrongToken"


LibMec_Pics.PICS_ROOT_API                := "/sbxyvsiu5t/mep1" # Need to sign in on https://try-mec.etsi.org/, section 'Try-it from your MEC application'
LibMec_Pics.PICS_ROOT_API                := "/sbxn4ozxg2/mep1" # Need to sign in on https://try-mec.etsi.org/, section 'Try-it from your MEC application'


# LibMec_Pixits
# LibMec_Pixits
LibMec_Pixits.PX_RNIS_SUBSCRITIONS_URI    := "/rni/v2/subscriptions"
LibMec_Pixits.PX_RNIS_SUBSCRITIONS_URI    := "/rni/v2/subscriptions"
@@ -43,10 +43,9 @@ AppEnablementAPI_Pixits.PX_TRAFFIC_RULE_ID := "trafficRuleId01"


# Mec-012 RnisAPI
# Mec-012 RnisAPI
RnisAPI_Pixits.PX_SUBSCRIPTION_HREF_VALUE := "cell_change"
RnisAPI_Pixits.PX_SUBSCRIPTION_HREF_VALUE := "cell_change"
RnisAPI_Pixits.PX_SUBSCRIPTION_TYPE       := CELL_CHANGE
RnisAPI_Pixits.PX_CALLBACK_REFERENCE      := "http://yanngarcia.ddns.net/rni/v2/notif/1"
RnisAPI_Pixits.PX_SUBSCRIPTION_ID         := "7777"
RnisAPI_Pixits.PX_ASSOCIATE_ID_VALUE      := "10.100.0.1"
RnisAPI_Pixits.PX_ASSOCIATE_ID_VALUE      := "192.0.0.2"
RnisAPI_Pixits.PX_CELL_ID                 := "1010101"
RnisAPI_Pixits.PX_CELL_ID                 := "0x4040404"
RnisAPI_Pixits.PX_C_ID                    := "0xFFFFFFFF"
RnisAPI_Pixits.PX_C_ID                    := "0xFFFFFFFF"
RnisAPI_Pixits.PX_APP_INS_ID              := "01"
RnisAPI_Pixits.PX_APP_INS_ID              := "01"
RnisAPI_Pixits.PX_APP_ID                  := "19"
RnisAPI_Pixits.PX_APP_ID                  := "19"
@@ -102,7 +101,8 @@ LogEventTypes:= Yes
# In this section you can specify parameters that are passed to Test Ports.
# In this section you can specify parameters that are passed to Test Ports.
#system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=192.168.1.39,port=30030,use_ssl=0)"
#system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=192.168.1.39,port=30030,use_ssl=0)"
system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=try-mec.etsi.org,port=443,use_ssl=1)"
system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=try-mec.etsi.org,port=443,use_ssl=1)"
system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server_mode=1,local_port=443,use_ssl=1)"
#system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server_mode=1,local_port=443,use_ssl=1)"
system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server_mode=1,local_port=80,use_ssl=0)"


[DEFINE]
[DEFINE]
# In this section you can create macro definitions,
# In this section you can create macro definitions,
@@ -180,30 +180,64 @@ system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server
#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRANS_001_OK
#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRANS_001_OK


# ETSI GS MEC 012
# ETSI GS MEC 012
# Check that the RNIS service sends an RNIS notification about cell change if the RNIS service has an associated subscription and the event is generated
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_001_OK
# Check that the RNIS service sends an RNIS notification about RAB establishment if the RNIS service has an associated subscription and the event is generated
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_002_OK
# Check that the RNIS service sends an RNIS notification about RAB modification if the RNIS service has an associated subscription and the event is generated
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_003_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_004_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_005_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_006_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_007_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_008_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_009_OK
# Check that the RNIS service sends the list of links to the relevant RNIS subscriptions when requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_011_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_011_OK
# Check that the RNIS service creates a new RNIS subscription
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_012_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_012_OK
# Check that the RNIS service responds with an error when it receives a request to get all RNIS subscriptions with a wrong subscription type
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_011_BR
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_011_BR
# Check that the RNIS service responds with an error when it receives a request to create a new RNIS subscription with a wrong format
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_012_BR
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_012_BR
# Check that the RNIS service sends a RNIS subscription when requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_013_OK
# Check that the RNIS service responds with error when a not existing RNIS subscription is requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_013_NF
# Check that the RNIS service modifies a RNIS subscription when requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_014_OK
# Check that the RNIS service sends an error when it receives a malformed modify request for a RNIS subscription
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_014_BR
# Check that the RNIS service responds with error when a modification for a not existing RNIS subscription is requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_014_NF
# Check that the RNIS service deletes a RNIS subscription when requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_015_OK
# Check that the RNIS service responds with error when the deletion of a not existing RNIS subscription is requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_015_NF
# Check that the RNIS service returns the RAB information when requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_016_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_016_OK
# Check that the RNIS service returns the PLMN information when requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_017_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_017_OK
# Check that the RNIS service returns the S1 bearer information
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_018_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_018_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_019_OK
# Check that the RNIS service returns the L2 measurements information
AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_019_OK
# Check that the RNIS service returns an error when the RAB information is requested with a malformatted message
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_016_BR
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_016_BR
# Check that the RNIS service returns an error when the RAB information is requested with a malformatted message
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_016_NF
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_016_NF
# Check that the RNIS service returns an error when the PLMN information is requested with a malformatted message
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_017_BR
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_017_BR
# Check that the RNIS service returns an error when the PLMN information for a not existing element is requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_017_NF
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_017_NF
# Check that the RNIS service returns an error when the S1 bearer information is requested with a malformatted message
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_018_BR
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_018_BR
# Check that the RNIS service returns an error when the S1 bearer information for a not existing element is requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_018_NF
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_018_NF
# Check that the RNIS service returns an error when the L2 measurements information is requested with a malformatted message
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_019_BR
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_019_BR
# Check that the RNIS service returns an error when the L2 measurements information for a not existing element is requested
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_019_NF
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_019_NF
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_001_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_002_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_003_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_004_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_005_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_006_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_007_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_MEC012_SRV_RNIS_008_OK


# ETSI GS MEC 013
# ETSI GS MEC 013
# Check that the IUT responds with a list for the location of User Equipments when queried by a MEC Application
# Check that the IUT responds with a list for the location of User Equipments when queried by a MEC Application
@@ -211,7 +245,7 @@ system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
#AtsMec_LocationAPI_TestCases.TC_MEC_MEC013_SRV_UELOCLOOK_001_BR
#AtsMec_LocationAPI_TestCases.TC_MEC_MEC013_SRV_UELOCLOOK_001_BR
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
AtsMec_LocationAPI_TestCases.TC_MEC_MEC013_SRV_UELOCLOOK_001_NF
#AtsMec_LocationAPI_TestCases.TC_MEC_MEC013_SRV_UELOCLOOK_001_NF
# Check that the IUT acknowledges the UE location change subscription request when commanded by a MEC Application and notifies it when the location changes
# Check that the IUT acknowledges the UE location change subscription request when commanded by a MEC Application and notifies it when the location changes
#AtsMec_LocationAPI_TestCases.TC_MEC_MEC013_SRV_UELOCSUB_001_OK
#AtsMec_LocationAPI_TestCases.TC_MEC_MEC013_SRV_UELOCSUB_001_OK
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
+1303 −612

File changed.

Preview size limit exceeded, changes collapsed.

+8 −8
Original line number Original line Diff line number Diff line
@@ -86,7 +86,13 @@ module AtsMec_TestControl {
      }
      }
    }
    }


    if (PICS_RNIS) {
    /*if (PICS_RNIS) {
      if (PICS_RNIS_NOTIFICATIONS) {
        execute(TC_MEC_MEC012_SRV_RNIS_001_OK());
        execute(TC_MEC_MEC012_SRV_RNIS_002_OK());
        execute(TC_MEC_MEC012_SRV_RNIS_003_OK());
        execute(TC_MEC_MEC012_SRV_RNIS_004_OK());
      }
      if (PICS_RNIS_ALL_SUBSCRIPTIONS) {
      if (PICS_RNIS_ALL_SUBSCRIPTIONS) {
        execute(TC_MEC_MEC012_SRV_RNIS_011_OK());
        execute(TC_MEC_MEC012_SRV_RNIS_011_OK());
        execute(TC_MEC_MEC012_SRV_RNIS_012_OK());
        execute(TC_MEC_MEC012_SRV_RNIS_012_OK());
@@ -107,13 +113,7 @@ module AtsMec_TestControl {
        execute(TC_MEC_MEC012_SRV_RNIS_019_BR());
        execute(TC_MEC_MEC012_SRV_RNIS_019_BR());
        execute(TC_MEC_MEC012_SRV_RNIS_019_NF());
        execute(TC_MEC_MEC012_SRV_RNIS_019_NF());
      }
      }
      if (PICS_RNIS_NOTIFICATIONS) {
      }*/
        execute(TC_MEC_MEC012_SRV_RNIS_001_OK());
        execute(TC_MEC_MEC012_SRV_RNIS_002_OK());
        execute(TC_MEC_MEC012_SRV_RNIS_003_OK());
        execute(TC_MEC_MEC012_SRV_RNIS_004_OK());
      }
    }


    if (PICS_MEC_PLAT and PICS_BWMANAGEMENT_API_SUPPORTED) {
    if (PICS_MEC_PLAT and PICS_BWMANAGEMENT_API_SUPPORTED) {
      execute(TC_MEC_MEC015_SRV_TM_001_OK());
      execute(TC_MEC_MEC015_SRV_TM_001_OK());
+11 −8
Original line number Original line Diff line number Diff line
@@ -3,15 +3,17 @@ module RnisAPI_Pixits {
  // JSON
  // JSON
  import from JSON all;
  import from JSON all;
  
  
  // LibCommon
  import from LibCommon_BasicTypesAndValues all;
  
  // LibMec/Rnis
  // LibMec/Rnis
  import from RnisAPI_TypesAndValues all;
  import from RnisAPI_TypesAndValues all;


  modulepar JSON.String PX_SUBSCRIPTION_HREF_VALUE := "cell_change";
  modulepar JSON.String PX_SUBSCRIPTION_HREF_VALUE := "cell_change";
  modulepar SubscriptionType PX_SUBSCRIPTION_TYPE := CELL_CHANGE;


  modulepar JSON.String PX_SUBSCRIPTION_ID := "7777";
  modulepar JSON.String PX_UNKNOWN_SUBSCRIPTION_ID := "0666";


  modulepar Link PX_LINKS_SELF := { self_ := "http://example.com/exampleAPI/rni/v2/subscriptions" };
  modulepar Link PX_LINKS_SELF := { self_ := { href := "http://example.com/exampleAPI/rni/v2/subscriptions" } };
  
  
  modulepar charstring PX_CALLBACK_URI := "/";
  modulepar charstring PX_CALLBACK_URI := "/";
  
  
@@ -21,19 +23,20 @@ module RnisAPI_Pixits {
  
  
  modulepar CellId PX_CELL_ID := "0x0800000A";
  modulepar CellId PX_CELL_ID := "0x0800000A";


  modulepar CellId PX_UNKNOWN_CELL_ID := "0x0800000A";
  
  modulepar CellId PX_C_ID := "0xFFFFFFFF";
  modulepar CellId PX_C_ID := "0xFFFFFFFF";
  
  
  modulepar CellId PX_NOT_EXISTENT_CELL_ID := "0x8000099";
  modulepar CellId PX_NOT_EXISTENT_CELL_ID := "0x8000099";
  
  
  modulepar AppInsId PX_APP_INS_ID := "01";
  modulepar AppInstanceId PX_APP_INS_ID := "01";


  modulepar AppInsId PX_APP_ID := "19";
  modulepar AppInstanceId PX_APP_ID := "19";


  modulepar AppInsId PX_NOT_EXISTENT_APP_INS_ID := "99";
  modulepar AppInstanceId PX_NOT_EXISTENT_APP_INS_ID := "99";
  
  
  modulepar ErabId PX_E_RAB_ID := 0;
  modulepar UInt32 PX_E_RAB_ID := 0;


  modulepar Qci PX_QCI := 0;
  modulepar Qci PX_QCI := 0;



} // End of module RnisAPI_Pixits 
} // End of module RnisAPI_Pixits 
Loading