Commit b5fc3a28 authored by Tien-Thinh Nguyen's avatar Tien-Thinh Nguyen

Polish the code for ITTI/NGAP

parent 7571e854
...@@ -1052,6 +1052,9 @@ void amf_n1::registration_request_handle( ...@@ -1052,6 +1052,9 @@ void amf_n1::registration_request_handle(
// Get pdu session status(OPtional IE), associated and active pdu sessions // Get pdu session status(OPtional IE), associated and active pdu sessions
// available in UE // available in UE
bstring nas_msg;
bool is_messagecontainer = regReq->getNasMessageContainer(nas_msg);
// Store NAS information into nas_context // Store NAS information into nas_context
// Run different registration procedure // Run different registration procedure
switch (reg_type) { switch (reg_type) {
...@@ -1069,15 +1072,12 @@ void amf_n1::registration_request_handle( ...@@ -1069,15 +1072,12 @@ void amf_n1::registration_request_handle(
} break; } break;
case PERIODIC_REGISTRATION_UPDATING: { case PERIODIC_REGISTRATION_UPDATING: {
Logger::amf_n1().error( Logger::amf_n1().debug("Network handling periodic registration...");
"Network does not support periodic registration, reject ..."); if (is_messagecontainer)
/* Logger::amf_n1().debug("Network handling periodic registration run_periodic_registration_update_procedure(nc, nas_msg);
..."); if(is_messagecontainer) else
run_periodic_registration_update_procedure(nc, nas_msg); run_periodic_registration_update_procedure(
else nc, regReq->getPduSessionStatus());
run_periodic_registration_update_procedure(nc,
pdu_session_status);
*/
} break; } break;
case EMERGENCY_REGISTRATION: { case EMERGENCY_REGISTRATION: {
...@@ -2787,8 +2787,10 @@ void amf_n1::run_mobility_registration_update_procedure( ...@@ -2787,8 +2787,10 @@ void amf_n1::run_mobility_registration_update_procedure(
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void amf_n1::run_periodic_registration_update_procedure( void amf_n1::run_periodic_registration_update_procedure(
std::shared_ptr<nas_context> nc, uint16_t pdu_session_status) { std::shared_ptr<nas_context> nc, uint16_t pdu_session_status) {
// Experimental procedure
// encoding REGISTRATION ACCEPT // encoding REGISTRATION ACCEPT
RegistrationAccept* regAccept = new RegistrationAccept(); std::unique_ptr<RegistrationAccept> regAccept =
std::make_unique<RegistrationAccept>();
regAccept->setHeader(PLAIN_5GS_MSG); regAccept->setHeader(PLAIN_5GS_MSG);
regAccept->set_5GS_Registration_Result(false, false, false, 0x01); regAccept->set_5GS_Registration_Result(false, false, false, 0x01);
regAccept->set5G_GUTI( regAccept->set5G_GUTI(
...@@ -2797,11 +2799,11 @@ void amf_n1::run_periodic_registration_update_procedure( ...@@ -2797,11 +2799,11 @@ void amf_n1::run_periodic_registration_update_procedure(
regAccept->setT3512_Value(0x5, 0x1e); regAccept->setT3512_Value(0x5, 0x1e);
std::vector<p_tai_t> tai_list; std::vector<p_tai_t> tai_list;
p_tai_t item0; p_tai_t item0 = {};
item0.type = 0x00; item0.type = 0x00;
nas_plmn_t plmn; nas_plmn_t plmn = {};
plmn.mcc = amf_cfg.plmn_list[0].mcc; plmn.mcc = amf_cfg.plmn_list[0].mcc;
plmn.mnc = amf_cfg.plmn_list[0].mnc; plmn.mnc = amf_cfg.plmn_list[0].mnc;
item0.plmn_list.push_back(plmn); item0.plmn_list.push_back(plmn);
item0.tac_list.push_back(amf_cfg.plmn_list[0].tac); item0.tac_list.push_back(amf_cfg.plmn_list[0].tac);
tai_list.push_back(item0); tai_list.push_back(item0);
...@@ -2821,21 +2823,20 @@ void amf_n1::run_periodic_registration_update_procedure( ...@@ -2821,21 +2823,20 @@ void amf_n1::run_periodic_registration_update_procedure(
} else { } else {
regAccept->setPDU_session_status(pdu_session_status); regAccept->setPDU_session_status(pdu_session_status);
Logger::amf_n1().debug( Logger::amf_n1().debug(
"setting pdu session status 0x%02x", htonl(pdu_session_status)); "Setting PDU Session Status 0x%02x", htonl(pdu_session_status));
// serApt->setPDU_session_status(0x2000); // serApt->setPDU_session_status(0x2000);
} }
regAccept->set_5GS_Network_Feature_Support(0x01, 0x00); regAccept->set_5GS_Network_Feature_Support(0x01, 0x00);
uint8_t buffer[1024] = {0}; uint8_t buffer[BUFFER_SIZE_1024] = {0};
int encoded_size = regAccept->encode2buffer(buffer, 1024); int encoded_size = regAccept->encode2buffer(buffer, BUFFER_SIZE_1024);
print_buffer( print_buffer(
"amf_n1", "Registration-Accept Message Buffer", buffer, encoded_size); "amf_n1", "Registration-Accept Message Buffer", buffer, encoded_size);
if (!encoded_size) { if (!encoded_size) {
Logger::nas_mm().error("Encode Registration-Accept message error"); Logger::nas_mm().error("Encode Registration-Accept message error");
return; return;
} else {
delete regAccept;
} }
nas_secu_ctx* secu = nc.get()->security_ctx; nas_secu_ctx* secu = nc.get()->security_ctx;
// protect nas message // protect nas message
bstring protectedNas; bstring protectedNas;
...@@ -2845,6 +2846,7 @@ void amf_n1::run_periodic_registration_update_procedure( ...@@ -2845,6 +2846,7 @@ void amf_n1::run_periodic_registration_update_procedure(
string supi = "imsi-" + nc.get()->imsi; string supi = "imsi-" + nc.get()->imsi;
Logger::amf_n1().debug("Key for pdu session context SUPI (%s)", supi.c_str()); Logger::amf_n1().debug("Key for pdu session context SUPI (%s)", supi.c_str());
std::shared_ptr<pdu_session_context> psc; std::shared_ptr<pdu_session_context> psc;
/* if (amf_n11_inst->is_supi_to_pdu_ctx(supi)) { /* if (amf_n11_inst->is_supi_to_pdu_ctx(supi)) {
psc = amf_n11_inst->supi_to_pdu_ctx(supi); psc = amf_n11_inst->supi_to_pdu_ctx(supi);
...@@ -2871,14 +2873,18 @@ void amf_n1::run_periodic_registration_update_procedure( ...@@ -2871,14 +2873,18 @@ void amf_n1::run_periodic_registration_update_procedure(
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void amf_n1::run_periodic_registration_update_procedure( void amf_n1::run_periodic_registration_update_procedure(
std::shared_ptr<nas_context> nc, bstring& nas_msg) { std::shared_ptr<nas_context> nc, bstring& nas_msg) {
// Experimental procedure
// decoding REGISTRATION request // decoding REGISTRATION request
RegistrationRequest* regReq = new RegistrationRequest(); std::unique_ptr<RegistrationRequest> regReq =
std::make_unique<RegistrationRequest>();
regReq->decodefrombuffer( regReq->decodefrombuffer(
nullptr, (uint8_t*) bdata(nas_msg), blength(nas_msg)); nullptr, (uint8_t*) bdata(nas_msg), blength(nas_msg));
bdestroy(nas_msg); // free buffer bdestroy(nas_msg); // free buffer
// encoding REGISTRATION ACCEPT // encoding REGISTRATION ACCEPT
RegistrationAccept* regAccept = new RegistrationAccept(); std::unique_ptr<RegistrationAccept> regAccept =
std::make_unique<RegistrationAccept>();
regAccept->setHeader(PLAIN_5GS_MSG); regAccept->setHeader(PLAIN_5GS_MSG);
regAccept->set_5GS_Registration_Result(false, false, false, 0x01); regAccept->set_5GS_Registration_Result(false, false, false, 0x01);
regAccept->set5G_GUTI( regAccept->set5G_GUTI(
...@@ -2887,11 +2893,11 @@ void amf_n1::run_periodic_registration_update_procedure( ...@@ -2887,11 +2893,11 @@ void amf_n1::run_periodic_registration_update_procedure(
regAccept->setT3512_Value(0x5, 0x1e); regAccept->setT3512_Value(0x5, 0x1e);
std::vector<p_tai_t> tai_list; std::vector<p_tai_t> tai_list;
p_tai_t item0; p_tai_t item0 = {};
item0.type = 0x00; item0.type = 0x00;
nas_plmn_t plmn; nas_plmn_t plmn = {};
plmn.mcc = amf_cfg.plmn_list[0].mcc; plmn.mcc = amf_cfg.plmn_list[0].mcc;
plmn.mnc = amf_cfg.plmn_list[0].mnc; plmn.mnc = amf_cfg.plmn_list[0].mnc;
item0.plmn_list.push_back(plmn); item0.plmn_list.push_back(plmn);
item0.tac_list.push_back(amf_cfg.plmn_list[0].tac); item0.tac_list.push_back(amf_cfg.plmn_list[0].tac);
tai_list.push_back(item0); tai_list.push_back(item0);
...@@ -2916,19 +2922,17 @@ void amf_n1::run_periodic_registration_update_procedure( ...@@ -2916,19 +2922,17 @@ void amf_n1::run_periodic_registration_update_procedure(
"setting pdu session status 0x%02x", htonl(pdu_session_status)); "setting pdu session status 0x%02x", htonl(pdu_session_status));
// serApt->setPDU_session_status(0x2000); // serApt->setPDU_session_status(0x2000);
} }
delete regReq;
regAccept->set_5GS_Network_Feature_Support(0x01, 0x00); regAccept->set_5GS_Network_Feature_Support(0x01, 0x00);
uint8_t buffer[1024] = {0}; uint8_t buffer[BUFFER_SIZE_1024] = {0};
int encoded_size = regAccept->encode2buffer(buffer, 1024); int encoded_size = regAccept->encode2buffer(buffer, BUFFER_SIZE_1024);
print_buffer( print_buffer(
"amf_n1", "Registration-Accept Message Buffer", buffer, encoded_size); "amf_n1", "Registration-Accept Message Buffer", buffer, encoded_size);
if (!encoded_size) { if (!encoded_size) {
Logger::nas_mm().error("Encode Registration-Accept message error"); Logger::nas_mm().error("Encode Registration-Accept message error");
return; return;
} else {
delete regAccept;
} }
nas_secu_ctx* secu = nc.get()->security_ctx; nas_secu_ctx* secu = nc.get()->security_ctx;
// protect nas message // protect nas message
bstring protectedNas; bstring protectedNas;
......
...@@ -586,8 +586,8 @@ void amf_n11::curl_http_client( ...@@ -586,8 +586,8 @@ void amf_n11::curl_http_client(
nlohmann::json response_data = {}; nlohmann::json response_data = {};
bstring n1sm_hex, n2sm_hex; bstring n1sm_hex, n2sm_hex;
Logger::amf_n11().debug("Get response with HTTP code (%d)", httpCode); Logger::amf_n11().info("Get response with HTTP code (%d)", httpCode);
Logger::amf_n11().debug("response body %s", response.c_str()); Logger::amf_n11().info("Response body %s", response.c_str());
if (static_cast<http_response_codes_e>(httpCode) == if (static_cast<http_response_codes_e>(httpCode) ==
http_response_codes_e::HTTP_RESPONSE_CODE_0) { http_response_codes_e::HTTP_RESPONSE_CODE_0) {
...@@ -610,6 +610,8 @@ void amf_n11::curl_http_client( ...@@ -610,6 +610,8 @@ void amf_n11::curl_http_client(
json_data_response = response; json_data_response = response;
} }
Logger::amf_n11().info("Json part %s", json_data_response.c_str());
if ((static_cast<http_response_codes_e>(httpCode) != if ((static_cast<http_response_codes_e>(httpCode) !=
http_response_codes_e::HTTP_RESPONSE_CODE_200_OK) && http_response_codes_e::HTTP_RESPONSE_CODE_200_OK) &&
(static_cast<http_response_codes_e>(httpCode) != (static_cast<http_response_codes_e>(httpCode) !=
...@@ -1106,10 +1108,6 @@ void amf_n11::curl_http_client( ...@@ -1106,10 +1108,6 @@ void amf_n11::curl_http_client(
return; return;
} }
else {
response = *httpData.get();
}
if (!is_response_ok) { if (!is_response_ok) {
try { try {
response_data = nlohmann::json::parse(json_data_response); response_data = nlohmann::json::parse(json_data_response);
......
...@@ -242,28 +242,27 @@ void amf_n2::handle_itti_message(itti_paging& itti_msg) { ...@@ -242,28 +242,27 @@ void amf_n2::handle_itti_message(itti_paging& itti_msg) {
"which's amf_ue_ngap_id (0x%x)", "which's amf_ue_ngap_id (0x%x)",
itti_msg.amf_ue_ngap_id, unc.get()->amf_ue_ngap_id); itti_msg.amf_ue_ngap_id, unc.get()->amf_ue_ngap_id);
} }
if (unc.get()->ng_ue_state != NGAP_UE_CONNECTED) {
Logger::amf_n2().error( if (unc.get()->ng_ue_state == NGAP_UE_CONNECTED) {
"Received NGAP UPLINK_NAS_TRANSPORT while UE in state != " Logger::amf_n2().warn("Received NGAP PAGING while UE in CONNECTED MODE");
"NGAP_UE_CONNECTED");
// return; // return;
} }
PagingMsg paging_msg = {}; PagingMsg paging_msg = {};
paging_msg.setMessageType(); paging_msg.setMessageType();
Logger::amf_n2().warn(" unc.get()->s_setid (%d)", unc.get()->s_setid); Logger::amf_n2().debug(
Logger::amf_n2().warn(" unc.get()->s_pointer (%d)", unc.get()->s_pointer); " UE NGAP Context, s_setid (%d), s_pointer (%d), s_tmsi (%d)",
Logger::amf_n2().warn(" unc.get()->s_tmsi (%d)", unc.get()->s_tmsi); unc.get()->s_setid, unc.get()->s_pointer, unc.get()->s_tmsi);
paging_msg.setUEPagingIdentity( paging_msg.setUEPagingIdentity(
unc.get()->s_setid, unc.get()->s_pointer, unc.get()->s_tmsi); unc.get()->s_setid, unc.get()->s_pointer, unc.get()->s_tmsi);
Logger::amf_n2().warn("==========================================");
std ::vector<struct Tai_s> list; std ::vector<struct Tai_s> list;
Tai_t tai_test; Tai_t tai = {};
tai_test.mcc = unc.get()->tai.mcc; tai.mcc = unc.get()->tai.mcc;
tai_test.mnc = unc.get()->tai.mnc; tai.mnc = unc.get()->tai.mnc;
tai_test.tac = unc.get()->tai.tac; tai.tac = unc.get()->tai.tac;
list.push_back(tai_test); list.push_back(tai);
paging_msg.setTAIListForPaging(list); paging_msg.setTAIListForPaging(list);
uint8_t buffer[BUFFER_SIZE_512]; uint8_t buffer[BUFFER_SIZE_512];
...@@ -275,10 +274,8 @@ void amf_n2::handle_itti_message(itti_paging& itti_msg) { ...@@ -275,10 +274,8 @@ void amf_n2::handle_itti_message(itti_paging& itti_msg) {
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void amf_n2::handle_itti_message(itti_new_sctp_association& new_assoc) { void amf_n2::handle_itti_message(itti_new_sctp_association& new_assoc) {}
} // handled in class ngap_app
// NG_SETUP_REQUEST Handler
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void amf_n2::handle_itti_message(itti_ng_setup_request& itti_msg) { void amf_n2::handle_itti_message(itti_ng_setup_request& itti_msg) {
Logger::amf_n2().debug( Logger::amf_n2().debug(
...@@ -547,6 +544,8 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) { ...@@ -547,6 +544,8 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) {
return; return;
} }
if (!init_ue_msg.initUeMsg) return;
// UE NGAP Context // UE NGAP Context
uint32_t ran_ue_ngap_id; uint32_t ran_ue_ngap_id;
if ((ran_ue_ngap_id = init_ue_msg.initUeMsg->getRanUENgapID()) == -1) { if ((ran_ue_ngap_id = init_ue_msg.initUeMsg->getRanUENgapID()) == -1) {
...@@ -581,8 +580,9 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) { ...@@ -581,8 +580,9 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) {
Tai_t tai; Tai_t tai;
if (init_ue_msg.initUeMsg->getUserLocationInfoNR(cgi, tai)) { if (init_ue_msg.initUeMsg->getUserLocationInfoNR(cgi, tai)) {
itti_msg->cgi = cgi; itti_msg->cgi = cgi;
itti_msg->tai = tai; itti_msg->tai = tai;
unc.get()->tai = tai;
} else { } else {
Logger::amf_n2().error("Missing Mandatory IE UserLocationInfoNR"); Logger::amf_n2().error("Missing Mandatory IE UserLocationInfoNR");
return; return;
...@@ -610,6 +610,9 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) { ...@@ -610,6 +610,9 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) {
itti_msg->is_5g_s_tmsi_present = true; itti_msg->is_5g_s_tmsi_present = true;
itti_msg->_5g_s_tmsi = _5g_s_tmsi; itti_msg->_5g_s_tmsi = _5g_s_tmsi;
Logger::amf_n2().debug("5g_s_tmsi present"); Logger::amf_n2().debug("5g_s_tmsi present");
init_ue_msg.initUeMsg->get5GS_TMSI(
unc.get()->s_setid, unc.get()->s_pointer, unc.get()->s_tmsi);
} }
uint8_t* nas_buf; uint8_t* nas_buf;
......
...@@ -34,7 +34,9 @@ class itti_msg_amf_app : public itti_msg { ...@@ -34,7 +34,9 @@ class itti_msg_amf_app : public itti_msg {
itti_msg_amf_app( itti_msg_amf_app(
const itti_msg_type_t msg_type, const task_id_t origin, const itti_msg_type_t msg_type, const task_id_t origin,
const task_id_t destination) const task_id_t destination)
: itti_msg(msg_type, origin, destination) {} : itti_msg(msg_type, origin, destination),
ran_ue_ngap_id(0),
amf_ue_ngap_id(0) {}
itti_msg_amf_app(const itti_msg_amf_app& i) : itti_msg(i) { itti_msg_amf_app(const itti_msg_amf_app& i) : itti_msg(i) {
ran_ue_ngap_id = i.ran_ue_ngap_id; ran_ue_ngap_id = i.ran_ue_ngap_id;
...@@ -49,10 +51,25 @@ class itti_nas_signalling_establishment_request : public itti_msg_amf_app { ...@@ -49,10 +51,25 @@ class itti_nas_signalling_establishment_request : public itti_msg_amf_app {
public: public:
itti_nas_signalling_establishment_request( itti_nas_signalling_establishment_request(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_amf_app(NAS_SIG_ESTAB_REQ, origin, destination) {} : itti_msg_amf_app(NAS_SIG_ESTAB_REQ, origin, destination),
rrc_cause(0),
ueCtxReq(0),
cgi(),
tai(),
_5g_s_tmsi() {
is_5g_s_tmsi_present = false;
}
itti_nas_signalling_establishment_request( itti_nas_signalling_establishment_request(
const itti_nas_signalling_establishment_request& i) const itti_nas_signalling_establishment_request& i)
: itti_msg_amf_app(i) {} : itti_msg_amf_app(i) {
rrc_cause = i.rrc_cause;
ueCtxReq = i.ueCtxReq;
cgi = i.cgi;
tai = i.tai;
nas_buf = i.nas_buf;
is_5g_s_tmsi_present = i.is_5g_s_tmsi_present;
_5g_s_tmsi = i._5g_s_tmsi;
}
int rrc_cause; int rrc_cause;
int ueCtxReq; int ueCtxReq;
NrCgi_t cgi; NrCgi_t cgi;
...@@ -66,10 +83,24 @@ class itti_n1n2_message_transfer_request : public itti_msg_amf_app { ...@@ -66,10 +83,24 @@ class itti_n1n2_message_transfer_request : public itti_msg_amf_app {
public: public:
itti_n1n2_message_transfer_request( itti_n1n2_message_transfer_request(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_amf_app(N1N2_MESSAGE_TRANSFER_REQ, origin, destination) {} : itti_msg_amf_app(N1N2_MESSAGE_TRANSFER_REQ, origin, destination),
supi(),
pdu_session_id(0),
n2sm_info_type() {
is_n2sm_set = false;
is_n1sm_set = false;
}
itti_n1n2_message_transfer_request( itti_n1n2_message_transfer_request(
const itti_n1n2_message_transfer_request& i) const itti_n1n2_message_transfer_request& i)
: itti_msg_amf_app(i) {} : itti_msg_amf_app(i) {
supi = i.supi;
n1sm = i.n1sm;
n2sm = i.n2sm;
is_n2sm_set = i.is_n2sm_set;
is_n1sm_set = i.is_n1sm_set;
pdu_session_id = i.pdu_session_id;
n2sm_info_type = i.n2sm_info_type;
}
std::string supi; std::string supi;
bstring n1sm; bstring n1sm;
......
...@@ -30,10 +30,15 @@ class itti_msg_n1 : public itti_msg { ...@@ -30,10 +30,15 @@ class itti_msg_n1 : public itti_msg {
itti_msg_n1( itti_msg_n1(
const itti_msg_type_t msg_type, const task_id_t origin, const itti_msg_type_t msg_type, const task_id_t origin,
const task_id_t destination) const task_id_t destination)
: itti_msg(msg_type, origin, destination) {} : itti_msg(msg_type, origin, destination),
amf_ue_ngap_id(0),
ran_ue_ngap_id(0) {
is_nas_signalling_estab_req = false;
}
itti_msg_n1(const itti_msg_n1& i) : itti_msg(i) { itti_msg_n1(const itti_msg_n1& i) : itti_msg(i) {
is_nas_signalling_estab_req = i.is_nas_signalling_estab_req; is_nas_signalling_estab_req = i.is_nas_signalling_estab_req;
ran_ue_ngap_id = i.ran_ue_ngap_id; ran_ue_ngap_id = i.ran_ue_ngap_id;
amf_ue_ngap_id = i.amf_ue_ngap_id;
} }
public: public:
...@@ -45,9 +50,19 @@ class itti_msg_n1 : public itti_msg { ...@@ -45,9 +50,19 @@ class itti_msg_n1 : public itti_msg {
class itti_uplink_nas_data_ind : public itti_msg_n1 { class itti_uplink_nas_data_ind : public itti_msg_n1 {
public: public:
itti_uplink_nas_data_ind(const task_id_t origin, const task_id_t destination) itti_uplink_nas_data_ind(const task_id_t origin, const task_id_t destination)
: itti_msg_n1(UL_NAS_DATA_IND, origin, destination) {} : itti_msg_n1(UL_NAS_DATA_IND, origin, destination),
itti_uplink_nas_data_ind(const itti_uplink_nas_data_ind& i) mcc(),
: itti_msg_n1(i) {} mnc(),
guti() {
is_guti_valid = false;
}
itti_uplink_nas_data_ind(const itti_uplink_nas_data_ind& i) : itti_msg_n1(i) {
nas_msg = i.nas_msg;
mcc = i.mcc;
mnc = i.mnc;
is_guti_valid = i.is_guti_valid;
guti = i.guti;
}
public: public:
bstring nas_msg; bstring nas_msg;
...@@ -61,9 +76,19 @@ class itti_downlink_nas_transfer : public itti_msg_n1 { ...@@ -61,9 +76,19 @@ class itti_downlink_nas_transfer : public itti_msg_n1 {
public: public:
itti_downlink_nas_transfer( itti_downlink_nas_transfer(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n1(DOWNLINK_NAS_TRANSFER, origin, destination) {} : itti_msg_n1(DOWNLINK_NAS_TRANSFER, origin, destination),
pdu_session_id(0),
n2sm_info_type() {
is_n2sm_set = false;
}
itti_downlink_nas_transfer(const itti_downlink_nas_transfer& i) itti_downlink_nas_transfer(const itti_downlink_nas_transfer& i)
: itti_msg_n1(i) {} : itti_msg_n1(i) {
dl_nas = i.dl_nas;
n2sm = i.n2sm;
is_n2sm_set = i.is_n2sm_set;
pdu_session_id = i.pdu_session_id;
n2sm_info_type = i.n2sm_info_type;
}
public: public:
bstring dl_nas; bstring dl_nas;
......
...@@ -34,7 +34,9 @@ class itti_msg_n11 : public itti_msg { ...@@ -34,7 +34,9 @@ class itti_msg_n11 : public itti_msg {
itti_msg_n11( itti_msg_n11(
const itti_msg_type_t msg_type, const task_id_t origin, const itti_msg_type_t msg_type, const task_id_t origin,
const task_id_t destination) const task_id_t destination)
: itti_msg(msg_type, origin, destination) {} : itti_msg(msg_type, origin, destination),
amf_ue_ngap_id(0),
ran_ue_ngap_id(0) {}
itti_msg_n11(const itti_msg_n11& i) : itti_msg(i) { itti_msg_n11(const itti_msg_n11& i) : itti_msg(i) {
ran_ue_ngap_id = i.ran_ue_ngap_id; ran_ue_ngap_id = i.ran_ue_ngap_id;
amf_ue_ngap_id = i.amf_ue_ngap_id; amf_ue_ngap_id = i.amf_ue_ngap_id;
...@@ -49,7 +51,11 @@ class itti_nsmf_pdusession_create_sm_context : public itti_msg_n11 { ...@@ -49,7 +51,11 @@ class itti_nsmf_pdusession_create_sm_context : public itti_msg_n11 {
public: public:
itti_nsmf_pdusession_create_sm_context( itti_nsmf_pdusession_create_sm_context(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n11(NSMF_PDU_SESSION_CREATE_SM_CTX, origin, destination) {} : itti_msg_n11(NSMF_PDU_SESSION_CREATE_SM_CTX, origin, destination),
req_type(0),
pdu_sess_id(0),
snssai(),
plmn() {}
itti_nsmf_pdusession_create_sm_context( itti_nsmf_pdusession_create_sm_context(
const itti_nsmf_pdusession_create_sm_context& i) const itti_nsmf_pdusession_create_sm_context& i)
: itti_msg_n11(i) {} : itti_msg_n11(i) {}
...@@ -67,8 +73,8 @@ class itti_pdu_session_resource_setup_response : public itti_msg_n11 { ...@@ -67,8 +73,8 @@ class itti_pdu_session_resource_setup_response : public itti_msg_n11 {
public: public:
itti_pdu_session_resource_setup_response( itti_pdu_session_resource_setup_response(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n11(PDU_SESSION_RESOURCE_SETUP_RESPONSE, origin, destination) { : itti_msg_n11(PDU_SESSION_RESOURCE_SETUP_RESPONSE, origin, destination),
} pdu_session_id(0) {}
itti_pdu_session_resource_setup_response( itti_pdu_session_resource_setup_response(
const itti_pdu_session_resource_setup_response& i) const itti_pdu_session_resource_setup_response& i)
: itti_msg_n11(i) {} : itti_msg_n11(i) {}
...@@ -82,9 +88,15 @@ class itti_nsmf_pdusession_update_sm_context : public itti_msg_n11 { ...@@ -82,9 +88,15 @@ class itti_nsmf_pdusession_update_sm_context : public itti_msg_n11 {
public: public:
itti_nsmf_pdusession_update_sm_context( itti_nsmf_pdusession_update_sm_context(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n11(NSMF_PDU_SESSION_UPDATE_SM_CTX, origin, destination) { : itti_msg_n11(NSMF_PDU_SESSION_UPDATE_SM_CTX, origin, destination),
supi(),
pdu_session_id(0),
is_n2sm_set(false),
n2sm_info_type(),
ran_ue_ngap_id(0),
amf_ue_ngap_id(0),
promise_id(0) {
is_n2sm_set = false; is_n2sm_set = false;
promise_id = 0;
} }
itti_nsmf_pdusession_update_sm_context( itti_nsmf_pdusession_update_sm_context(
const itti_nsmf_pdusession_update_sm_context& i) const itti_nsmf_pdusession_update_sm_context& i)
...@@ -94,7 +106,6 @@ class itti_nsmf_pdusession_update_sm_context : public itti_msg_n11 { ...@@ -94,7 +106,6 @@ class itti_nsmf_pdusession_update_sm_context : public itti_msg_n11 {
is_n2sm_set = i.is_n2sm_set; is_n2sm_set = i.is_n2sm_set;
n2sm_info_type = i.n2sm_info_type; n2sm_info_type = i.n2sm_info_type;
promise_id = i.promise_id; promise_id = i.promise_id;
;
} }
public: public:
...@@ -112,10 +123,13 @@ class itti_nsmf_pdusession_release_sm_context : public itti_msg_n11 { ...@@ -112,10 +123,13 @@ class itti_nsmf_pdusession_release_sm_context : public itti_msg_n11 {
public: public:
itti_nsmf_pdusession_release_sm_context( itti_nsmf_pdusession_release_sm_context(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n11(NSMF_PDU_SESSION_RELEASE_SM_CTX, origin, destination) {} : itti_msg_n11(NSMF_PDU_SESSION_RELEASE_SM_CTX, origin, destination),
supi() {}
itti_nsmf_pdusession_release_sm_context( itti_nsmf_pdusession_release_sm_context(
const itti_nsmf_pdusession_update_sm_context& i) const itti_nsmf_pdusession_release_sm_context& i)
: itti_msg_n11(i) {} : itti_msg_n11(i) {
supi = i.supi;
}
public: public:
std::string supi; std::string supi;
...@@ -127,6 +141,7 @@ class itti_n11_register_nf_instance_request : public itti_msg_n11 { ...@@ -127,6 +141,7 @@ class itti_n11_register_nf_instance_request : public itti_msg_n11 {
itti_n11_register_nf_instance_request( itti_n11_register_nf_instance_request(
const task_id_t orig, const task_id_t dest) const task_id_t orig, const task_id_t dest)
: itti_msg_n11(N11_REGISTER_NF_INSTANCE_REQUEST, orig, dest), : itti_msg_n11(N11_REGISTER_NF_INSTANCE_REQUEST, orig, dest),
profile(),
http_version(1) {} http_version(1) {}
const char* get_msg_name() { return "N11_REGISTER_NF_INSTANCE_REQUEST"; }; const char* get_msg_name() { return "N11_REGISTER_NF_INSTANCE_REQUEST"; };
...@@ -140,7 +155,9 @@ class itti_n11_register_nf_instance_response : public itti_msg_n11 { ...@@ -140,7 +155,9 @@ class itti_n11_register_nf_instance_response : public itti_msg_n11 {
itti_n11_register_nf_instance_response( itti_n11_register_nf_instance_response(
const task_id_t orig, const task_id_t dest) const task_id_t orig, const task_id_t dest)
: itti_msg_n11(N11_REGISTER_NF_INSTANCE_RESPONSE, orig, dest), : itti_msg_n11(N11_REGISTER_NF_INSTANCE_RESPONSE, orig, dest),
http_version(1) {} profile(),
http_version(1),
http_response_code(0) {}
const char* get_msg_name() { return "N11_REGISTER_NF_INSTANCE_RESPONSE"; }; const char* get_msg_name() { return "N11_REGISTER_NF_INSTANCE_RESPONSE"; };
amf_application::amf_profile profile; amf_application::amf_profile profile;
...@@ -154,7 +171,8 @@ class itti_n11_update_nf_instance_request : public itti_msg_n11 { ...@@ -154,7 +171,8 @@ class itti_n11_update_nf_instance_request : public itti_msg_n11 {
itti_n11_update_nf_instance_request( itti_n11_update_nf_instance_request(
const task_id_t orig, const task_id_t dest) const task_id_t orig, const task_id_t dest)
: itti_msg_n11(N11_UPDATE_NF_INSTANCE_REQUEST, orig, dest), : itti_msg_n11(N11_UPDATE_NF_INSTANCE_REQUEST, orig, dest),
http_version(1) {} http_version(1),
smf_instance_id() {}
const char* get_msg_name() { return "N11_UPDATE_NF_INSTANCE_REQUEST"; }; const char* get_msg_name() { return "N11_UPDATE_NF_INSTANCE_REQUEST"; };
// std::vector<oai::amf::model::PatchItem> patch_items; // std::vector<oai::amf::model::PatchItem> patch_items;
...@@ -168,7 +186,9 @@ class itti_n11_update_nf_instance_response : public itti_msg_n11 { ...@@ -168,7 +186,9 @@ class itti_n11_update_nf_instance_response : public itti_msg_n11 {
itti_n11_update_nf_instance_response( itti_n11_update_nf_instance_response(
const task_id_t orig, const task_id_t dest) const task_id_t orig, const task_id_t dest)
: itti_msg_n11(N11_UPDATE_NF_INSTANCE_RESPONSE, orig, dest), : itti_msg_n11(N11_UPDATE_NF_INSTANCE_RESPONSE, orig, dest),
http_version(1) {} http_version(1),
amf_instance_id(),
http_response_code(0) {}
const char* get_msg_name() { return "N11_UPDATE_NF_INSTANCE_RESPONSE"; }; const char* get_msg_name() { return "N11_UPDATE_NF_INSTANCE_RESPONSE"; };
uint8_t http_version; uint8_t http_version;
...@@ -180,7 +200,9 @@ class itti_n11_update_nf_instance_response : public itti_msg_n11 { ...@@ -180,7 +200,9 @@ class itti_n11_update_nf_instance_response : public itti_msg_n11 {
class itti_n11_deregister_nf_instance : public itti_msg_n11 { class itti_n11_deregister_nf_instance : public itti_msg_n11 {
public: public:
itti_n11_deregister_nf_instance(const task_id_t orig, const task_id_t dest) itti_n11_deregister_nf_instance(const task_id_t orig, const task_id_t dest)
: itti_msg_n11(N11_DEREGISTER_NF_INSTANCE, orig, dest), http_version(1) {} : itti_msg_n11(N11_DEREGISTER_NF_INSTANCE, orig, dest),
http_version(1),
amf_instance_id() {}
const char* get_msg_name() { return "N11_DEREGISTER_NF_INSTANCE"; }; const char* get_msg_name() { return "N11_DEREGISTER_NF_INSTANCE"; };
uint8_t http_version; uint8_t http_version;
......
...@@ -43,7 +43,7 @@ class itti_msg_n2 : public itti_msg { ...@@ -43,7 +43,7 @@ class itti_msg_n2 : public itti_msg {
itti_msg_n2( itti_msg_n2(
const itti_msg_type_t msg_type, const task_id_t origin, const itti_msg_type_t msg_type, const task_id_t origin,
const task_id_t destination) const task_id_t destination)
: itti_msg(msg_type, origin, destination) {} : itti_msg(msg_type, origin, destination), assoc_id(), stream() {}
itti_msg_n2(const itti_msg_n2& i) : itti_msg(i) { itti_msg_n2(const itti_msg_n2& i) : itti_msg(i) {
assoc_id = i.assoc_id; assoc_id = i.assoc_id;
stream = i.stream; stream = i.stream;
...@@ -61,7 +61,9 @@ class itti_new_sctp_association : public itti_msg_n2 { ...@@ -61,7 +61,9 @@ class itti_new_sctp_association : public itti_msg_n2 {
class itti_ng_setup_request : public itti_msg_n2 { class itti_ng_setup_request : public itti_msg_n2 {
public: public:
itti_ng_setup_request(const task_id_t origin, const task_id_t destination) itti_ng_setup_request(const task_id_t origin, const task_id_t destination)
: itti_msg_n2(NG_SETUP_REQ, origin, destination) {} : itti_msg_n2(NG_SETUP_REQ, origin, destination) {
ngSetupReq = nullptr;
}
itti_ng_setup_request(const itti_ng_setup_request& i) : itti_msg_n2(i) {} itti_ng_setup_request(const itti_ng_setup_request& i) : itti_msg_n2(i) {}
public: public:
...@@ -71,7 +73,9 @@ class itti_ng_setup_request : public itti_msg_n2 { ...@@ -71,7 +73,9 @@ class itti_ng_setup_request : public itti_msg_n2 {
class itti_ng_reset : public itti_msg_n2 { class itti_ng_reset : public itti_msg_n2 {
public: public:
itti_ng_reset(const task_id_t origin, const task_id_t destination) itti_ng_reset(const task_id_t origin, const task_id_t destination)
: itti_msg_n2(NG_RESET, origin, destination) {} : itti_msg_n2(NG_RESET, origin, destination) {
ngReset = nullptr;
}
itti_ng_reset(const itti_ng_reset& i) : itti_msg_n2(i) {} itti_ng_reset(const itti_ng_reset& i) : itti_msg_n2(i) {}
public: public:
...@@ -88,7 +92,9 @@ class itti_ng_shutdown : public itti_msg_n2 { ...@@ -88,7 +92,9 @@ class itti_ng_shutdown : public itti_msg_n2 {
class itti_initial_ue_message : public itti_msg_n2 { class itti_initial_ue_message : public itti_msg_n2 {
public: public:
itti_initial_ue_message(const task_id_t origin, const task_id_t destination) itti_initial_ue_message(const task_id_t origin, const task_id_t destination)
: itti_msg_n2(INITIAL_UE_MSG, origin, destination) {} : itti_msg_n2(INITIAL_UE_MSG, origin, destination) {
initUeMsg = nullptr;
}
itti_initial_ue_message(const itti_initial_ue_message& i) : itti_msg_n2(i) {} itti_initial_ue_message(const itti_initial_ue_message& i) : itti_msg_n2(i) {}
InitialUEMessageMsg* initUeMsg; InitialUEMessageMsg* initUeMsg;
...@@ -97,7 +103,9 @@ class itti_initial_ue_message : public itti_msg_n2 { ...@@ -97,7 +103,9 @@ class itti_initial_ue_message : public itti_msg_n2 {
class itti_ul_nas_transport : public itti_msg_n2 { class itti_ul_nas_transport : public itti_msg_n2 {
public: public:
itti_ul_nas_transport(const task_id_t origin, const task_id_t destination) itti_ul_nas_transport(const task_id_t origin, const task_id_t destination)
: itti_msg_n2(ITTI_UL_NAS_TRANSPORT, origin, destination) {} : itti_msg_n2(ITTI_UL_NAS_TRANSPORT, origin, destination) {
ulNas = nullptr;
}
itti_ul_nas_transport(const itti_ul_nas_transport& i) : itti_msg_n2(i) {} itti_ul_nas_transport(const itti_ul_nas_transport& i) : itti_msg_n2(i) {}
UplinkNASTransportMsg* ulNas; UplinkNASTransportMsg* ulNas;
...@@ -106,8 +114,14 @@ class itti_ul_nas_transport : public itti_msg_n2 { ...@@ -106,8 +114,14 @@ class itti_ul_nas_transport : public itti_msg_n2 {
class itti_dl_nas_transport : public itti_msg_n2 { class itti_dl_nas_transport : public itti_msg_n2 {
public: public:
itti_dl_nas_transport(const task_id_t origin, const task_id_t destination) itti_dl_nas_transport(const task_id_t origin, const task_id_t destination)
: itti_msg_n2(ITTI_DL_NAS_TRANSPORT, origin, destination) {} : itti_msg_n2(ITTI_DL_NAS_TRANSPORT, origin, destination),
itti_dl_nas_transport(const itti_dl_nas_transport& i) : itti_msg_n2(i) {} ran_ue_ngap_id(0),
amf_ue_ngap_id(0) {}
itti_dl_nas_transport(const itti_dl_nas_transport& i) : itti_msg_n2(i) {
ran_ue_ngap_id = i.ran_ue_ngap_id;
amf_ue_ngap_id = i.amf_ue_ngap_id;
nas = i.nas;
}
public: public:
uint32_t ran_ue_ngap_id; uint32_t ran_ue_ngap_id;
...@@ -119,12 +133,26 @@ class itti_initial_context_setup_request : public itti_msg_n2 { ...@@ -119,12 +133,26 @@ class itti_initial_context_setup_request : public itti_msg_n2 {
public: public:
itti_initial_context_setup_request( itti_initial_context_setup_request(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n2(INITIAL_CONTEXT_SETUP_REQUEST, origin, destination) {} : itti_msg_n2(INITIAL_CONTEXT_SETUP_REQUEST, origin, destination),
ran_ue_ngap_id(0),
amf_ue_ngap_id(0),
pdu_session_id(0) {
is_sr = false;
is_pdu_exist = false;
isn2sm_avaliable = false;
}
itti_initial_context_setup_request( itti_initial_context_setup_request(
const itti_initial_context_setup_request& i) const itti_initial_context_setup_request& i)
: itti_msg_n2(i) { : itti_msg_n2(i) {
is_pdu_exist = false; ran_ue_ngap_id = i.ran_ue_ngap_id;
isn2sm_avaliable = false; amf_ue_ngap_id = i.amf_ue_ngap_id;
kgnb = i.kgnb;
nas = i.nas;
is_sr = i.is_sr;
n2sm = i.n2sm;
pdu_session_id = i.pdu_session_id;
is_pdu_exist = i.is_pdu_exist;
isn2sm_avaliable = i.isn2sm_avaliable;
} }
uint32_t ran_ue_ngap_id; uint32_t ran_ue_ngap_id;
long amf_ue_ngap_id; long amf_ue_ngap_id;
...@@ -141,10 +169,19 @@ class itti_pdu_session_resource_setup_request : public itti_msg_n2 { ...@@ -141,10 +169,19 @@ class itti_pdu_session_resource_setup_request : public itti_msg_n2 {
public: public:
itti_pdu_session_resource_setup_request( itti_pdu_session_resource_setup_request(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n2(PDU_SESSION_RESOURCE_SETUP_REQUEST, origin, destination) {} : itti_msg_n2(PDU_SESSION_RESOURCE_SETUP_REQUEST, origin, destination),
ran_ue_ngap_id(0),
amf_ue_ngap_id(0),
pdu_session_id(0) {}
itti_pdu_session_resource_setup_request( itti_pdu_session_resource_setup_request(
const itti_pdu_session_resource_setup_request& i) const itti_pdu_session_resource_setup_request& i)
: itti_msg_n2(i) {} : itti_msg_n2(i) {
nas = i.nas;
n2sm = i.n2sm;
ran_ue_ngap_id = i.ran_ue_ngap_id;
amf_ue_ngap_id = i.amf_ue_ngap_id;
pdu_session_id = i.pdu_session_id;
}
bstring nas; bstring nas;
bstring n2sm; bstring n2sm;
uint32_t ran_ue_ngap_id; uint32_t ran_ue_ngap_id;
...@@ -156,11 +193,19 @@ class itti_pdu_session_resource_release_command : public itti_msg_n2 { ...@@ -156,11 +193,19 @@ class itti_pdu_session_resource_release_command : public itti_msg_n2 {
public: public:
itti_pdu_session_resource_release_command( itti_pdu_session_resource_release_command(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n2(PDU_SESSION_RESOURCE_RELEASE_COMMAND, origin, destination) { : itti_msg_n2(PDU_SESSION_RESOURCE_RELEASE_COMMAND, origin, destination),
} ran_ue_ngap_id(0),
amf_ue_ngap_id(0),
pdu_session_id(0) {}
itti_pdu_session_resource_release_command( itti_pdu_session_resource_release_command(
const itti_pdu_session_resource_release_command& i) const itti_pdu_session_resource_release_command& i)
: itti_msg_n2(i) {} : itti_msg_n2(i) {
nas = i.nas;
n2sm = i.n2sm;
ran_ue_ngap_id = i.ran_ue_ngap_id;
amf_ue_ngap_id = i.amf_ue_ngap_id;
pdu_session_id = i.pdu_session_id;
}
bstring nas; bstring nas;
bstring n2sm; bstring n2sm;
uint32_t ran_ue_ngap_id; uint32_t ran_ue_ngap_id;
...@@ -172,7 +217,9 @@ class itti_ue_context_release_request : public itti_msg_n2 { ...@@ -172,7 +217,9 @@ class itti_ue_context_release_request : public itti_msg_n2 {
public: public:
itti_ue_context_release_request( itti_ue_context_release_request(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n2(UE_CONTEXT_RELEASE_REQUEST, origin, destination) {} : itti_msg_n2(UE_CONTEXT_RELEASE_REQUEST, origin, destination) {
ueCtxRel = nullptr;
}
itti_ue_context_release_request(const itti_ue_context_release_request& i) itti_ue_context_release_request(const itti_ue_context_release_request& i)
: itti_msg_n2(i) {} : itti_msg_n2(i) {}
UEContextReleaseRequestMsg* ueCtxRel; UEContextReleaseRequestMsg* ueCtxRel;
...@@ -182,9 +229,16 @@ class itti_ue_context_release_command : public itti_msg_n2 { ...@@ -182,9 +229,16 @@ class itti_ue_context_release_command : public itti_msg_n2 {
public: public:
itti_ue_context_release_command( itti_ue_context_release_command(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n2(UE_CONTEXT_RELEASE_COMMAND, origin, destination) {} : itti_msg_n2(UE_CONTEXT_RELEASE_COMMAND, origin, destination),
itti_ue_context_release_command(const itti_dl_nas_transport& i) ran_ue_ngap_id(0),
: itti_msg_n2(i) {} amf_ue_ngap_id(0),
cause() {}
itti_ue_context_release_command(const itti_ue_context_release_command& i)
: itti_msg_n2(i) {
ran_ue_ngap_id = i.ran_ue_ngap_id;
amf_ue_ngap_id = i.amf_ue_ngap_id;
cause = i.cause;
}
public: public:
uint32_t ran_ue_ngap_id; uint32_t ran_ue_ngap_id;
...@@ -196,7 +250,9 @@ class itti_ue_context_release_complete : public itti_msg_n2 { ...@@ -196,7 +250,9 @@ class itti_ue_context_release_complete : public itti_msg_n2 {
public: public:
itti_ue_context_release_complete( itti_ue_context_release_complete(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n2(UE_CONTEXT_RELEASE_COMPLETE, origin, destination) {} : itti_msg_n2(UE_CONTEXT_RELEASE_COMPLETE, origin, destination) {
ueCtxRelCmpl = nullptr;
}
itti_ue_context_release_complete(const itti_ue_context_release_complete& i) itti_ue_context_release_complete(const itti_ue_context_release_complete& i)
: itti_msg_n2(i) {} : itti_msg_n2(i) {}
UEContextReleaseCompleteMsg* ueCtxRelCmpl; UEContextReleaseCompleteMsg* ueCtxRelCmpl;
...@@ -206,7 +262,9 @@ class itti_ue_radio_capability_indication : public itti_msg_n2 { ...@@ -206,7 +262,9 @@ class itti_ue_radio_capability_indication : public itti_msg_n2 {
public: public:
itti_ue_radio_capability_indication( itti_ue_radio_capability_indication(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n2(UE_RADIO_CAP_IND, origin, destination) {} : itti_msg_n2(UE_RADIO_CAP_IND, origin, destination) {
ueRadioCap = nullptr;
}
itti_ue_radio_capability_indication( itti_ue_radio_capability_indication(
const itti_ue_radio_capability_indication& i) const itti_ue_radio_capability_indication& i)
: itti_msg_n2(i) {} : itti_msg_n2(i) {}
...@@ -216,7 +274,9 @@ class itti_ue_radio_capability_indication : public itti_msg_n2 { ...@@ -216,7 +274,9 @@ class itti_ue_radio_capability_indication : public itti_msg_n2 {
class itti_handover_required : public itti_msg_n2 { class itti_handover_required : public itti_msg_n2 {
public: public:
itti_handover_required(const task_id_t origin, const task_id_t destination) itti_handover_required(const task_id_t origin, const task_id_t destination)
: itti_msg_n2(HANDOVER_REQUIRED, origin, destination) {} : itti_msg_n2(HANDOVER_REQUIRED, origin, destination) {
handoverReq = nullptr;
}
itti_handover_required(const itti_handover_required& i) : itti_msg_n2(i) {} itti_handover_required(const itti_handover_required& i) : itti_msg_n2(i) {}
HandoverRequiredMsg* handoverReq; HandoverRequiredMsg* handoverReq;
}; };
...@@ -235,7 +295,9 @@ class itti_paging : public itti_msg_n2 { ...@@ -235,7 +295,9 @@ class itti_paging : public itti_msg_n2 {
class itti_handover_request_Ack : public itti_msg_n2 { class itti_handover_request_Ack : public itti_msg_n2 {
public: public:
itti_handover_request_Ack(const task_id_t origin, const task_id_t destination) itti_handover_request_Ack(const task_id_t origin, const task_id_t destination)
: itti_msg_n2(HANDOVER_REQUEST_ACK, origin, destination) {} : itti_msg_n2(HANDOVER_REQUEST_ACK, origin, destination) {
handoverrequestAck = nullptr;
}
itti_handover_request_Ack(const itti_handover_request_Ack& i) itti_handover_request_Ack(const itti_handover_request_Ack& i)
: itti_msg_n2(i) {} : itti_msg_n2(i) {}
HandoverRequestAck* handoverrequestAck; HandoverRequestAck* handoverrequestAck;
...@@ -244,7 +306,9 @@ class itti_handover_request_Ack : public itti_msg_n2 { ...@@ -244,7 +306,9 @@ class itti_handover_request_Ack : public itti_msg_n2 {
class itti_handover_notify : public itti_msg_n2 { class itti_handover_notify : public itti_msg_n2 {
public: public:
itti_handover_notify(const task_id_t origin, const task_id_t destination) itti_handover_notify(const task_id_t origin, const task_id_t destination)
: itti_msg_n2(HANDOVER_NOTIFY, origin, destination) {} : itti_msg_n2(HANDOVER_NOTIFY, origin, destination) {
handovernotify = nullptr;
}
itti_handover_notify(const itti_handover_notify& i) : itti_msg_n2(i) {} itti_handover_notify(const itti_handover_notify& i) : itti_msg_n2(i) {}
HandoverNotifyMsg* handovernotify; HandoverNotifyMsg* handovernotify;
}; };
...@@ -253,7 +317,9 @@ class itti_uplink_ran_status_transfer : public itti_msg_n2 { ...@@ -253,7 +317,9 @@ class itti_uplink_ran_status_transfer : public itti_msg_n2 {
public: public:
itti_uplink_ran_status_transfer( itti_uplink_ran_status_transfer(
const task_id_t origin, const task_id_t destination) const task_id_t origin, const task_id_t destination)
: itti_msg_n2(UPLINK_RAN_STATUS_TRANSFER, origin, destination) {} : itti_msg_n2(UPLINK_RAN_STATUS_TRANSFER, origin, destination) {
uplinkrantransfer = nullptr;
}
itti_uplink_ran_status_transfer(const itti_uplink_ran_status_transfer& i) itti_uplink_ran_status_transfer(const itti_uplink_ran_status_transfer& i)
: itti_msg_n2(i) {} : itti_msg_n2(i) {}
UplinkRANStatusTransfer* uplinkrantransfer; UplinkRANStatusTransfer* uplinkrantransfer;
......
...@@ -214,14 +214,14 @@ void PagingMsg::setTAIListForPaging(const std::vector<struct Tai_s> list) { ...@@ -214,14 +214,14 @@ void PagingMsg::setTAIListForPaging(const std::vector<struct Tai_s> list) {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void PagingMsg::getTAIListForPaging(std::vector<struct Tai_s>& list) { void PagingMsg::getTAIListForPaging(std::vector<struct Tai_s>& list) {
if (!taIListForPaging) return; if (!taIListForPaging) return;
TAI* tailist; TAI* tailist = nullptr;
int sizeoftailist; int sizeoftailist = 0;
taIListForPaging->getTAIListForPaging(tailist, sizeoftailist); taIListForPaging->getTAIListForPaging(tailist, sizeoftailist);
for (int i = 0; i < sizeoftailist; i++) { for (int i = 0; i < sizeoftailist; i++) {
Tai_t tai; Tai_t tai = {};
PlmnId* plmnid; PlmnId* plmnid = nullptr;
TAC* tac; TAC* tac = nullptr;
tailist[i].getTAI(plmnid, tac); tailist[i].getTAI(plmnid, tac);
plmnid->getMcc(tai.mcc); plmnid->getMcc(tai.mcc);
plmnid->getMnc(tai.mnc); plmnid->getMnc(tai.mnc);
......
...@@ -60,6 +60,11 @@ class PagingMsg { ...@@ -60,6 +60,11 @@ class PagingMsg {
UEPagingIdentity* uePagingIdentity; UEPagingIdentity* uePagingIdentity;
TAIListForPaging* taIListForPaging; TAIListForPaging* taIListForPaging;
// Paging DRX
// Paging Priority
// UE Radio Capability for Paging
// Paging Origin
// Assistance Data for Paging
}; };
} // namespace ngap } // namespace ngap
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment