Commit 2be74c99 authored by YannGarcia's avatar YannGarcia

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,43 +10,41 @@ module Ams_Templates { ...@@ -10,43 +10,41 @@ 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 (
in template (omit) ServiceConsumerId p_service_consumer_id := omit,
template (value) RegistrationRequest m_registration_request ( in template (omit) DeviceInformations p_device_info := omit,
in template (omit) ServiceConsumerId p_service_consumer_id := omit, in UInt32 p_expire_time
in template (omit) DeviceInformations p_device_info := omit,
in UInt32 p_expire_time
) := { ) := {
serviceConsumerId := p_service_consumer_id, serviceConsumerId := p_service_consumer_id,
deviceInformation := p_device_info, deviceInformation := p_device_info,
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,8 +5978,11 @@ ...@@ -5975,8 +5978,11 @@
"qci": { "qci": {
"$ref": "#/definitions/Qci" "$ref": "#/definitions/Qci"
}, },
"qci_information": { "qosInformation": {
"$ref": "#/definitions/QosInformation" "type": "array",
"items": {
"$ref": "#/definitions/QosInformation"
}
} }
} }
}, },
......
...@@ -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
...@@ -38,7 +38,7 @@ module RnisAPI_TypesAndValues { ...@@ -38,7 +38,7 @@ module RnisAPI_TypesAndValues {
type record PlmnInfo { type record PlmnInfo {
TimeStamp timeStamp optional, TimeStamp timeStamp optional,
AppInsId appInsId, AppInsId appInsId,
Ecgi ecgi Plmns plmn
} }
/** /**
...@@ -73,22 +73,23 @@ module RnisAPI_TypesAndValues { ...@@ -73,22 +73,23 @@ module RnisAPI_TypesAndValues {
* @member ecgi * @member ecgi
* @member s1BearerInfoDetailed * @member s1BearerInfoDetailed
*/ */
type record S1UeInfo { type record S1UeInfo_ {
TempUeId tempUeId, TempUeId tempUeId optional,
AssociateId associateId optional, AssociateId associateId optional,
Ecgis ecgi, Ecgis ecgi,
S1BearerInfoDetailed s1BearerInfoDetailed S1BearerInfoDetailed s1BearerInfoDetailed
} }
type record of S1UeInfo_ S1UeInfo;
/** /**
* @desc Information on UEs in the specific cell * @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 erabId The element that uniquely identifies a S1 bearer for a specific UE, as defined in ETSI TS 136 413
* @member s1EnbInfo * @member enbInfo S1 bearer information on eNB side
* @member sGwInfo * @member sGwInfo S1 bearer information on GW side
*/ */
type record S1BearerInfoDetailed_ { type record S1BearerInfoDetailed_ {
ErabId erabId, ErabId erabId,
S1EnbInfo s1EnbInfo, S1EnbInfo enbInfo,
SGwInfo sGwInfo SGwInfo sGwInfo
} }
type record of S1BearerInfoDetailed_ S1BearerInfoDetailed; type record of S1BearerInfoDetailed_ S1BearerInfoDetailed;
...@@ -100,10 +101,11 @@ module RnisAPI_TypesAndValues { ...@@ -100,10 +101,11 @@ module RnisAPI_TypesAndValues {
* @member mmec MMEC as defined in ETSI TS 136 413 * @member mmec MMEC as defined in ETSI TS 136 413
* @member mtmsi M-TMSI 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, Mmec mmec,
Mtmsi mtmsi Mtmsi mtmsi
} }
type record of TempUeId_ TempUeId;
type JSON.String Mmec; type JSON.String Mmec;
...@@ -154,10 +156,11 @@ module RnisAPI_TypesAndValues { ...@@ -154,10 +156,11 @@ module RnisAPI_TypesAndValues {
* @member ecgi * @member ecgi
* @member ueInfo * @member ueInfo
*/ */
type record CellUserInfo { type record CellUserInfo_ {
Ecgi ecgi, Ecgi ecgi,
UeInfo ueInfo UeInfo ueInfo
} }
type record of CellUserInfo_ CellUserInfo;
/** /**
* @desc E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413 * @desc E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413
...@@ -179,6 +182,7 @@ module RnisAPI_TypesAndValues { ...@@ -179,6 +182,7 @@ module RnisAPI_TypesAndValues {
JSON.String mcc, JSON.String mcc,
JSON.String mnc 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 * @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 { ...@@ -192,7 +196,7 @@ module RnisAPI_TypesAndValues {
*/ */
type record UeInfo_ { type record UeInfo_ {
AssociateId associateId optional, AssociateId associateId optional,
ErabQosParameters erabInfo ErabInfo erabInfo
} }
type record of UeInfo_ UeInfo; type record of UeInfo_ UeInfo;
...@@ -203,7 +207,7 @@ module RnisAPI_TypesAndValues { ...@@ -203,7 +207,7 @@ module RnisAPI_TypesAndValues {
*/ */
type record AssociateId_ { type record AssociateId_ {
AssociateId_type type_, AssociateId_type type_,
UInt32 value_ JSON.String value_
} with { } with {
variant (type_) "name as 'type'"; variant (type_) "name as 'type'";
variant (value_) "name as 'value'"; variant (value_) "name as 'value'";
...@@ -214,21 +218,27 @@ module RnisAPI_TypesAndValues { ...@@ -214,21 +218,27 @@ module RnisAPI_TypesAndValues {
* @desc Numeric value (0-255) corresponding to specified type of identifier * @desc Numeric value (0-255) corresponding to specified type of identifier
*/ */
type enumerated AssociateId_type { type enumerated AssociateId_type {
RESERVED, RESERVED (0),
UE_IPV4_ADDRESS, UE_IPV4_ADDRESS (1),
UE_IPV6_ADDRESS, UE_IPV6_ADDRESS (2),
NATED_IP_ADDRESS, NATED_IP_ADDRESS (3),
GTP_TEID GTP_TEID (4)
} }
type record ErabInfo_ {
ErabId erabId,
ErabQosParameters erabQosParameters
}
type record of ErabInfo_ ErabInfo;
/** /**
* @desc * @desc
* @member qci QoS Class Identifier as defined in TS 23.401 * @member qci QoS Class Identifier as defined in TS 23.401
* @member qci_information * @member qci_information
*/ */
type record ErabQosParameter { type record ErabQosParameter {
UInt32 qci, Qci qci,
QosInformation qci_information QosInformation qosInformation optional
} }
type record of ErabQosParameter ErabQosParameters; type record of ErabQosParameter ErabQosParameters;
...@@ -238,18 +248,19 @@ module RnisAPI_TypesAndValues { ...@@ -238,18 +248,19 @@ module RnisAPI_TypesAndValues {
type UInt32 Qci; 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 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 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 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 * @member erabMbrUl This IE indicates the guaranteed uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer
*/ */
type enumerated QosInformation { type record QosInformation_ {
erabGbrDl, UInt32 erabMbrDl,
erabGbrUl, UInt32 erabMbrUl,
erabMbrDl, UInt32 erabGbrDl,
erabMbrUl UInt32 erabGbrUl
} }
type record of QosInformation_ QosInformation;
/** /**
* @desc * @desc
......
...@@ -8,15 +8,11 @@ module LibItsHttp_JsonMessageBodyTypes { ...@@ -8,15 +8,11 @@ module LibItsHttp_JsonMessageBodyTypes {
import from RnisAPI_TypesAndValues all; import from RnisAPI_TypesAndValues all;
// LibMec/BwManagementApi // LibMec/BwManagementApi
import from BwManagementAPI_TypesAndValues all; import from BwManagementAPI_TypesAndValues all;
<<<<<<< HEAD