Commit 2be74c99 authored by YannGarcia's avatar YannGarcia
Browse files

Finalyze RnisQuery_BV/RnisQuery_BI_BO tests

parent 68867733
...@@ -27,8 +27,37 @@ https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purpo ...@@ -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 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_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_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 ### SAQ
### SRVSUB ### SRVSUB
......
...@@ -99,14 +99,126 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy ...@@ -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); traffic_rule.decode(AppEnablementAPI__TypesAndValues::TrafficRule_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
msg.trafficRule() = traffic_rule; msg.trafficRule() = traffic_rule;
} 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("\"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; 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) {
// 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) { } else if (it->second.find("\"PlmnInfo\"") != std::string::npos) {
RnisAPI__TypesAndValues::PlmnInfo plmn_info; RnisAPI__TypesAndValues::PlmnInfo plmn_info;
plmn_info.decode(RnisAPI__TypesAndValues::PlmnInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); 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 ...@@ -139,7 +251,7 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy
RnisAPI__TypesAndValues::ProblemDetails problem_details; RnisAPI__TypesAndValues::ProblemDetails problem_details;
problem_details.decode(RnisAPI__TypesAndValues::ProblemDetails_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); problem_details.decode(RnisAPI__TypesAndValues::ProblemDetails_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
msg.problemDetails__rni() = problem_details; msg.problemDetails__rnis() = problem_details;
} else { } else {
......
...@@ -104,7 +104,18 @@ system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=192.1 ...@@ -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_012_OK
#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_011_BR #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_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_TRANS_001_OK
#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_OK #AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_OK
......
This diff is collapsed.
...@@ -78,7 +78,17 @@ module AtsMec_TestControl { ...@@ -78,7 +78,17 @@ module AtsMec_TestControl {
} }
if (PICS_RNIS_QUERY) { if (PICS_RNIS_QUERY) {
execute(TC_MEC_SRV_RNIS_016_OK()); 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());
} }
} }
......
LibIts @ 1e93108a
Subproject commit 806e133118639e261fc589daeffb078559ca605c Subproject commit 1e93108a94eaa6f95f5b508194bd0632c11f1a1b
...@@ -10,26 +10,24 @@ module Ams_Templates { ...@@ -10,26 +10,24 @@ module Ams_Templates {
import from Ams_TypesAndValues all; import from Ams_TypesAndValues all;
import from Ams_Pixits all; import from Ams_Pixits all;
template (value) AppMobilityServiceInfo m_app_mobility_service_info( template (omit) AppMobilityServiceInfo m_app_mobility_service_info(
in String p_app_mobility_service_id := PX_APP_MOBILITY_SERVICE_ID, in String p_app_mobility_service_id := PX_APP_MOBILITY_SERVICE_ID,
in template (omit) RegistrationInfos p_registration_info := omit 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 } // End of template m_app_mobility_service_info
template (present) AppMobilityServiceInfo mw_app_mobility_service_info( template (present) AppMobilityServiceInfo mw_app_mobility_service_info(
template (present) RegistrationInfos p_registration_info := omit, template (present) RegistrationInfos p_registration_info := ?,
in String p_app_mobility_service_id 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 (omit) RegistrationRequest m_registration_request (
template (value) RegistrationRequest m_registration_request (
in template (omit) ServiceConsumerId p_service_consumer_id := omit, in template (omit) ServiceConsumerId p_service_consumer_id := omit,
in template (omit) DeviceInformations p_device_info := omit, in template (omit) DeviceInformations p_device_info := omit,
in UInt32 p_expire_time in UInt32 p_expire_time
...@@ -39,14 +37,14 @@ module Ams_Templates { ...@@ -39,14 +37,14 @@ module Ams_Templates {
expiryTime := p_expire_time expiryTime := p_expire_time
} }
template (present) RegistrationRequest mw_registration_request ( template RegistrationRequest mw_registration_request(
in template (present) ServiceConsumerId p_service_consumer_id := omit, template ServiceConsumerId p_service_consumer_id := ?,
in template (present) DeviceInformations p_device_info := omit, template DeviceInformations p_device_info := omit,
in UInt32 p_expire_time := omit template UInt32 p_expire_time := omit
) := { ) := {
serviceConsumerId := p_service_consumer_id, serviceConsumerId := p_service_consumer_id,
deviceInformation := omit, deviceInformation := p_device_info,
expiryTime := omit expiryTime := p_expire_time
} }
...@@ -60,13 +58,13 @@ module Ams_Templates { ...@@ -60,13 +58,13 @@ module Ams_Templates {
expiryTime := p_expire_time expiryTime := p_expire_time
} }
template (present) RegistrationInfo mw_registration_info ( template (present) RegistrationInfo mw_registration_info(
in template (present) ServiceConsumerId p_service_consumer_id := omit, template (present) ServiceConsumerId p_service_consumer_id := ?,
in template (present) DeviceInformations p_device_info := omit, template (present) DeviceInformations p_device_info := ?,
in UInt32 p_expire_time template (present) UInt32 p_expire_time
) := { ) := {
serviceConsumerId := p_service_consumer_id, serviceConsumerId := p_service_consumer_id,
deviceInformation := omit, deviceInformation := p_device_info,
expiryTime := p_expire_time expiryTime := p_expire_time
} }
...@@ -90,12 +88,12 @@ module Ams_Templates { ...@@ -90,12 +88,12 @@ module Ams_Templates {
template (omit) ServiceConsumerId mw_service_consumer_id ( template ServiceConsumerId mw_service_consumer_id(
in String p_app_instance_id, template (present) String p_app_instance_id := ?,
in String p_mep_id template (present) String p_mep_id := ?
) := { ) := {
appInstanceId := omit, appInstanceId := p_app_instance_id,
mepId := omit mepId := p_mep_id
} }
......
...@@ -5645,7 +5645,7 @@ ...@@ -5645,7 +5645,7 @@
"type": "object", "type": "object",
"required": [ "required": [
"appInsId", "appInsId",
"ecgi" "plmn"
], ],
"properties": { "properties": {
"timeStamp": { "timeStamp": {
...@@ -5654,8 +5654,11 @@ ...@@ -5654,8 +5654,11 @@
"appInsId": { "appInsId": {
"$ref": "#/definitions/AppInsId" "$ref": "#/definitions/AppInsId"
}, },
"ecgi": { "plmn": {
"$ref": "#/definitions/Ecgi" "type": "array",
"items": {
"$ref": "#/definitions/Plmn"
}
} }
} }
}, },
...@@ -5703,7 +5706,6 @@ ...@@ -5703,7 +5706,6 @@
"S1UeInfo": { "S1UeInfo": {
"type": "object", "type": "object",
"required": [ "required": [
"tempUeId",
"ecgi", "ecgi",
"s1BearerInfoDetailed" "s1BearerInfoDetailed"
], ],
...@@ -5739,13 +5741,14 @@ ...@@ -5739,13 +5741,14 @@
"type": "object", "type": "object",
"required": [ "required": [
"erabId", "erabId",
"s1EnbInfo" "enbInfo",
"sGwInfo"
], ],
"properties": { "properties": {
"erabId": { "erabId": {
"$ref": "#/definitions/ErabId" "$ref": "#/definitions/ErabId"
}, },
"s1EnbInfo": { "enbInfo": {
"$ref": "#/definitions/S1EnbInfo" "$ref": "#/definitions/S1EnbInfo"
}, },
"sGwInfo": { "sGwInfo": {
...@@ -5962,10 +5965,10 @@ ...@@ -5962,10 +5965,10 @@
"example": "UE_IPV4_ADDRESS" "example": "UE_IPV4_ADDRESS"
}, },
"value": { "value": {
"type": "integer", "type": "String",
"format": "int32", "format": "String",
"description": "Value for the identifier", "description": "Value for the identifier",
"example": 1 "example": "192.0.0.2"
} }
} }
}, },
...@@ -5975,10 +5978,13 @@ ...@@ -5975,10 +5978,13 @@
"qci": { "qci": {
"$ref": "#/definitions/Qci" "$ref": "#/definitions/Qci"
}, },
"qci_information": { "qosInformation": {
"type": "array",
"items": {
"$ref": "#/definitions/QosInformation" "$ref": "#/definitions/QosInformation"
} }
} }
}
}, },
"Qci": { "Qci": {
"type": "integer", "type": "integer",
......
...@@ -18,10 +18,18 @@ module RnisAPI_Pixits { ...@@ -18,10 +18,18 @@ module RnisAPI_Pixits {
modulepar CallbackReference PX_CALLBACK_REFERENCE := "http://meAppClient.example.com/rni/v2/notifications/cell_change/77777"; 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_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_INS_ID := "01";
modulepar AppInsId PX_APP_ID := "19";
modulepar AppInsId PX_NOT_EXISTENT_APP_INS_ID := "99";
} // End of module RnisAPI_Pixits } // End of module RnisAPI_Pixits
...@@ -72,6 +72,45 @@ module RnisAPI_Templates { ...@@ -72,6 +72,45 @@ module RnisAPI_Templates {
subscriptionType := p_subscriptionType subscriptionType := p_subscriptionType
} // End of temlate mw_subscription } // 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( template (value) RabInfo m_rab_info(
in template (value) TimeStamp p_timeStamp, in template (value) TimeStamp p_timeStamp,
in AppInsId p_appInsId, in AppInsId p_appInsId,
...@@ -99,23 +138,67 @@ module RnisAPI_Templates { ...@@ -99,23 +138,67 @@ module RnisAPI_Templates {
template (value) PlmnInfo m_plmn_info( template (value) PlmnInfo m_plmn_info(
in template (value) TimeStamp p_timeStamp, in template (value) TimeStamp p_timeStamp,
in AppInsId p_appInsId, in AppInsId p_appInsId,
in template (value) Ecgi p_ecgi in template (value) Plmns p_plmn
) := { ) := {
timeStamp := p_timeStamp, timeStamp := p_timeStamp,
appInsId := p_appInsId, appInsId := p_appInsId,
ecgi := p_ecgi plmn := p_plmn
} // End of temlate m_plmn_info } // End of temlate m_plmn_info
template (present) PlmnInfo mw_plmn_info( template (present) PlmnInfo mw_plmn_info(
template (present) TimeStamp p_timeStamp := ?, template (present) TimeStamp p_timeStamp := ?,
template (present) AppInsId p_appInsId := ?, template (present) AppInsId p_appInsId := ?,
template (present) Ecgi p_ecgi := ? template (present) Plmns p_plmn := ?
) := { ) := {
timeStamp := p_timeStamp, timeStamp := p_timeStamp,