Commit 339ac227 authored by Tien Thinh NGUYEN's avatar Tien Thinh NGUYEN

Fix issue when decoding unknown IEI

parent 93ec85ea
......@@ -152,6 +152,7 @@ int AuthenticationResult::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
default: {
Logger::nas_mm().warn("Unknown IEI 0x%x, stop decoding...", octet);
// Stop decoding
......
......@@ -666,8 +666,10 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
decoded_size += ie_5gs_registration_result.Decode(
buf + decoded_size, len - decoded_size, false);
Logger::nas_mm().debug("Decoded_size(%d)", decoded_size);
uint8_t octet = *(buf + decoded_size);
Logger::nas_mm().debug("First option IEI (0x%x)", octet);
bool flag = false;
while ((octet != 0x0)) {
switch ((octet & 0xf0) >> 4) {
case kIeiMicoIndication: {
......@@ -714,6 +716,10 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
default: {
flag = true;
}
}
switch (octet) {
......@@ -726,6 +732,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIeiNSSAIAllowed: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiNSSAIAllowed);
NSSAI ie_allowed_nssai_tmp = {};
......@@ -735,6 +742,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case 0x11: {
Logger::nas_mm().debug("Decoding IEI (0x11)");
Rejected_NSSAI ie_rejected_nssai_tmp = {};
......@@ -745,6 +753,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIeiNSSAIConfigured: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiNSSAIConfigured);
NSSAI ie_configured_nssai_tmp = {};
......@@ -754,6 +763,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIei5gsNetworkFeatureSupport: {
Logger::nas_mm().debug("Decoding IEI (0x21)");
_5GS_Network_Feature_Support ie_5gs_network_feature_support_tmp = {};
......@@ -765,6 +775,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIeiPduSessionStatus: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiPduSessionStatus);
PDUSessionStatus ie_PDU_session_status_tmp = {};
......@@ -775,6 +786,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIeiPduSessionReactivationResult: {
Logger::nas_mm().debug(
"Decoding IEI 0x%x", kIeiPduSessionReactivationResult);
......@@ -788,6 +800,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case 0x72: {
Logger::nas_mm().debug("Decoding IEI (0x72)");
PDU_Session_Reactivation_Result_Error_Cause
......@@ -821,6 +834,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIeiGprsTimer2Non3gppDeregistration: {
Logger::nas_mm().debug(
"Decoding IEI 0x%x", kIeiGprsTimer2Non3gppDeregistration);
......@@ -833,6 +847,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIeiGprsTimer2T3502: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiGprsTimer2T3502);
GprsTimer2 ie_T3502_value_tmp(kIeiGprsTimer2T3502);
......@@ -842,6 +857,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case 0x73: {
Logger::nas_mm().debug("Decoding IEI (0x73)");
SOR_Transparent_Container ie_sor_transparent_container_tmp = {};
......@@ -852,6 +868,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case 0x78: {
Logger::nas_mm().debug("Decoding IEI (0x78)");
EapMessage ie_eap_message_tmp = {};
......@@ -861,6 +878,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIei5gsDrxParameters: {
Logger::nas_mm().debug("Decoding IEI (0x%x)", kIei5gsDrxParameters);
_5GS_DRX_Parameters ie_negotiated_drx_parameters_tmp = {};
......@@ -871,6 +889,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case 0x60: {
Logger::nas_mm().debug("Decoding IEI (0x60)");
EpsBearerContextStatus ie_eps_bearer_context_status_tmp = {};
......@@ -881,6 +900,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case 0x6E: {
Logger::nas_mm().debug("Decoding IEI (0x6E)");
Extended_DRX_Parameters ie_extended_drx_parameters_tmp = {};
......@@ -891,6 +911,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIeiGprsTimer3T3447: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiGprsTimer3T3447);
GprsTimer3 ie_T3447_value_tmp(kIeiGprsTimer3T3447);
......@@ -900,6 +921,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIeiGprsTimer3T3348: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiGprsTimer3T3348);
GprsTimer3 ie_T3448_value_tmp(kIeiGprsTimer3T3348);
......@@ -909,6 +931,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIeiGprsTimer3T3324: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiGprsTimer3T3324);
GprsTimer3 ie_T3324_value_tmp(kIeiGprsTimer3T3324);
......@@ -918,6 +941,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case 0x67: {
Logger::nas_mm().debug("Decoding IEI (0x67)");
UeRadioCapabilityId ie_ue_radio_capability_id_tmp = {};
......@@ -928,6 +952,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case 0x39: {
Logger::nas_mm().debug("Decoding IEI (0x39)");
NSSAI ie_pending_nssai_tmp = {};
......@@ -937,6 +962,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case 0x4A: {
Logger::nas_mm().debug("Decoding IEI (0x4A)");
PlmnList ie_equivalent_plmns_tmp = {};
......@@ -946,6 +972,7 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
case kIei5gsTrackingAreaIdentityList: {
Logger::nas_mm().debug(
"Decoding IEI 0x%x", kIei5gsTrackingAreaIdentityList);
......@@ -958,8 +985,13 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
} break;
default: {
break;
}
// TODO:
if (flag) {
Logger::nas_mm().warn("Unknown IEI 0x%x, stop decoding...", octet);
// Stop decoding
octet = 0x00;
}
} break;
}
}
Logger::nas_mm().debug(
......
......@@ -19,13 +19,6 @@
* contact@openairinterface.org
*/
/*! \file
\brief
\author Keliang DU, BUPT
\date 2020
\email: contact@openairinterface.org
*/
#include "RegistrationComplete.hpp"
#include "3gpp_24.501.hpp"
......
......@@ -643,6 +643,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_uplink_data_status.has_value()) {
Logger::nas_mm().warn("IE ie_uplink_data_status is not available");
} else {
......@@ -654,6 +655,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_PDU_session_status.has_value()) {
Logger::nas_mm().warn("IE ie_PDU_session_status is not available");
} else {
......@@ -665,6 +667,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_MICO_indication.has_value()) {
Logger::nas_mm().warn("IE ie_MICO_indication is not available");
} else {
......@@ -676,6 +679,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_ue_status.has_value()) {
Logger::nas_mm().warn("IE ie_ue_status is not available");
} else {
......@@ -687,6 +691,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_additional_guti.has_value()) {
Logger::nas_mm().warn("IE ie_additional_guti- is not available");
} else {
......@@ -698,6 +703,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_allowed_PDU_session_status.has_value()) {
Logger::nas_mm().warn("IE ie_allowed_PDU_session_status is not available");
} else {
......@@ -709,6 +715,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_ues_usage_setting.has_value()) {
Logger::nas_mm().warn("IE ie_ues_usage_setting is not available");
} else {
......@@ -720,6 +727,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_5gs_drx_parameters.has_value()) {
Logger::nas_mm().warn("IE ie_5gs_drx_parameters is not available");
} else {
......@@ -731,6 +739,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_eps_nas_message_container) {
Logger::nas_mm().warn("IE ie_eps_nas_message_container is not available");
} else {
......@@ -742,6 +751,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_ladn_indication.has_value()) {
Logger::nas_mm().warn("IE ie_ladn_indication is not available");
} else {
......@@ -753,6 +763,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_payload_container_type.has_value()) {
Logger::nas_mm().warn("IE ie_payload_container_type is not available");
} else {
......@@ -764,6 +775,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_payload_container or !ie_payload_container_type) {
Logger::nas_mm().warn("IE ie_payload_container is not available");
} else {
......@@ -776,6 +788,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_network_slicing_indication.has_value()) {
Logger::nas_mm().warn("IE ie_network_slicing_indication is not available");
} else {
......@@ -787,6 +800,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_5gs_update_type.has_value()) {
Logger::nas_mm().warn("IE ie_5gs_update_type is not available");
} else {
......@@ -810,6 +824,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
return 0;
}
}
if (!ie_eps_bearer_context_status.has_value()) {
Logger::nas_mm().warn("IE ie_eps_bearer_context_status is not available");
} else {
......@@ -823,7 +838,7 @@ int RegistrationRequest::Encode(uint8_t* buf, int len) {
}
Logger::nas_mm().debug(
"encoded RegistrationRequest message len(%d)", encoded_size);
return 1;
return encoded_size;
}
//------------------------------------------------------------------------------
......@@ -850,8 +865,10 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
// ie_ngKSI
decoded_size += ie_5gs_mobile_identity.Decode(
buf + decoded_size, len - decoded_size, false);
uint8_t octet = *(buf + decoded_size);
Logger::nas_mm().debug("First option IEI 0x%x", octet);
bool flag = false;
while ((octet != 0x0)) {
switch ((octet & 0xf0) >> 4) {
case 0xC: {
......@@ -866,6 +883,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case 0xB: {
Logger::nas_mm().debug("Decoding IEI (0xB)");
MicoIndication ie_MICO_indication_tmp = {};
......@@ -876,6 +894,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case kIeiPayloadContainerType: {
Logger::nas_mm().debug("Decoding IEI 0x8: Payload Container Type");
PayloadContainerType ie_payload_container_type_tmp = {};
......@@ -886,6 +905,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case 0x9: {
Logger::nas_mm().debug("Decoding IEI (0x9)");
NetworkSlicingIndication ie_network_slicing_indication_tmp = {};
......@@ -896,6 +916,10 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
default: {
flag = true;
}
}
switch (octet) {
......@@ -913,6 +937,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case 0x2E: {
Logger::nas_mm().debug("Decoding IEI (0x2E)");
UESecurityCapability ie_ue_security_capability_tmp = {};
......@@ -927,6 +952,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case kIeiNSSAIRequested: {
Logger::nas_mm().debug("Decoding IEI %d", kIeiNSSAIRequested);
NSSAI ie_requested_NSSAI_tmp = {};
......@@ -936,6 +962,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case kIei5gsTrackingAreaIdentity: {
Logger::nas_mm().debug(
"Decoding IEI 0x%x", kIei5gsTrackingAreaIdentity);
......@@ -948,6 +975,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case 0x17: {
Logger::nas_mm().debug("Decoding IEI (0x17)");
UENetworkCapability ie_s1_ue_network_capability_tmp = {};
......@@ -958,6 +986,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case kIeiUplinkDataStatus: {
Logger::nas_mm().debug("Decoding IEI(0x40)");
UplinkDataStatus ie_uplink_data_status_tmp = {};
......@@ -967,8 +996,8 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
std::optional<UplinkDataStatus>(ie_uplink_data_status_tmp);
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case kIeiPduSessionStatus: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiPduSessionStatus);
PDUSessionStatus ie_PDU_session_status_tmp;
......@@ -979,6 +1008,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case kIeiUeStatus: {
Logger::nas_mm().debug("Decoding IEI (0x2B)");
UEStatus ie_ue_status_tmp = {};
......@@ -988,6 +1018,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case 0x77: {
Logger::nas_mm().debug("Decoding IEI (0x77)");
_5GSMobileIdentity ie_additional_guti_tmp = {};
......@@ -997,8 +1028,8 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
std::optional<_5GSMobileIdentity>(ie_additional_guti_tmp);
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case 0x25: {
Logger::nas_mm().debug("Decoding IEI(0x25)");
AllowedPDUSessionStatus ie_allowed_PDU_session_status_tmp = {};
......@@ -1008,8 +1039,8 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
ie_allowed_PDU_session_status_tmp);
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case kIeiUeUsageSetting: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiUeUsageSetting);
UEUsageSetting ie_ues_usage_setting_tmp = {};
......@@ -1020,6 +1051,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case kIei5gsDrxParameters: {
Logger::nas_mm().debug("Decoding IEI 0x51: 5GS DRX Parameters");
_5GS_DRX_Parameters ie_5gs_drx_parameters_tmp = {};
......@@ -1030,6 +1062,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case kIeiEpsNasMessageContainer: {
Logger::nas_mm().debug("Decoding IEI 0x70: EPS NAS Message Container ");
EPS_NAS_Message_Container ie_eps_nas_message_container_tmp = {};
......@@ -1040,6 +1073,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case 0x74: { // TODO: verify IEI value (spec Ox79)
Logger::nas_mm().debug("Decoding IEI(0x74)");
LadnIndication ie_ladn_indication_tmp = {};
......@@ -1050,6 +1084,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case kIeiPayloadContainer: {
Logger::nas_mm().debug("Decoding IEI 0x7B: Payload Container");
Payload_Container ie_payload_container_tmp = {};
......@@ -1061,6 +1096,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case 0x53: {
Logger::nas_mm().debug("Decoding IEI(0x53)");
_5gsUpdateType ie_5gs_update_type_tmp = {};
......@@ -1071,6 +1107,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case 0x71: {
Logger::nas_mm().debug("Decoding IEI(0x71)");
NasMessageContainer ie_nas_message_container_tmp = {};
......@@ -1081,6 +1118,7 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
case 0x60: {
Logger::nas_mm().debug("Decoding IEI(0x71)");
EpsBearerContextStatus ie_eps_bearer_context_status_tmp = {};
......@@ -1091,7 +1129,15 @@ int RegistrationRequest::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break;
// TODO: Default
default: {
// TODO:
if (flag) {
Logger::nas_mm().warn("Unknown IEI 0x%x, stop decoding...", octet);
// Stop decoding
octet = 0x00;
}
} break;
}
}
Logger::nas_mm().debug(
......
......@@ -264,6 +264,7 @@ int SecurityModeCommand::Decode(uint8_t* buf, int len) {
Logger::nas_mm().debug("Decoded_size (%d)", decoded_size);
uint8_t octet = *(buf + decoded_size);
Logger::nas_mm().debug("First option IEI (0x%x)", octet);
bool flag = false;
while ((octet != 0x0)) {
switch ((octet & 0xf0) >> 4) {
case kIeiImeisvRequest: {
......@@ -278,6 +279,9 @@ int SecurityModeCommand::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
default: {
flag = true;
}
}
switch (octet) {
......@@ -353,7 +357,15 @@ int SecurityModeCommand::Decode(uint8_t* buf, int len) {
octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break;
// TODO: Default
default: {
// TODO:
if (flag) {
Logger::nas_mm().warn("Unknown IEI 0x%x, stop decoding...", octet);
// Stop decoding
octet = 0x00;
}
} break;
}
}
Logger::nas_mm().debug(
......
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