add support for IMEISV when requesting UE idendity

master
Andre Puschmann 5 years ago
parent e15eb936fa
commit 7c1b4c1f12

@ -136,6 +136,11 @@ private:
const uint32_t t3410_duration_ms = 15 * 1000; // 15s according to TS 24.301 Sec 10.2
const uint32_t t3411_duration_ms = 10 * 1000; // 10s according to TS 24.301 Sec 10.2
// TS 23.003 Sec. 6.2.2 IMEISV's last two octets are Software Version Number (SVN)
// which identifies the software version number of the mobile equipment
const uint8_t ue_svn_oct1 = 0x5;
const uint8_t ue_svn_oct2 = 0x3;
// Security
bool eia_caps[8] = {};
bool eea_caps[8] = {};

@ -1280,8 +1280,8 @@ void nas::parse_security_mode_command(uint32_t lcid, unique_byte_buffer_t pdu)
sec_mode_comp.imeisv_present = true;
sec_mode_comp.imeisv.type_of_id = LIBLTE_MME_MOBILE_ID_TYPE_IMEISV;
usim->get_imei_vec(sec_mode_comp.imeisv.imeisv, 15);
sec_mode_comp.imeisv.imeisv[14] = 5;
sec_mode_comp.imeisv.imeisv[15] = 3;
sec_mode_comp.imeisv.imeisv[14] = ue_svn_oct1;
sec_mode_comp.imeisv.imeisv[15] = ue_svn_oct2;
} else {
sec_mode_comp.imeisv_present = false;
}
@ -1927,6 +1927,12 @@ void nas::send_identity_response(const uint8 id_type, const uint8_t sec_hdr_type
id_resp.mobile_id.type_of_id = LIBLTE_MME_MOBILE_ID_TYPE_IMEI;
usim->get_imei_vec(id_resp.mobile_id.imei, 15);
break;
case LIBLTE_MME_MOBILE_ID_TYPE_IMEISV:
id_resp.mobile_id.type_of_id = LIBLTE_MME_MOBILE_ID_TYPE_IMEISV;
usim->get_imei_vec(id_resp.mobile_id.imeisv, 15);
id_resp.mobile_id.imeisv[14] = ue_svn_oct1;
id_resp.mobile_id.imeisv[15] = ue_svn_oct2;
break;
default:
nas_log->error("Unhandled ID type: %d\n", id_type);
return;

Loading…
Cancel
Save