From 49353c29256611b420bddbf658cc33c96775f10c Mon Sep 17 00:00:00 2001 From: Xu Bo <xubo1@cn.fujitsu.com> Date: Fri, 8 Sep 2017 15:45:55 +0900 Subject: [PATCH] fix IMSI encode according to 3GPP, change log level from error to debug --- openair1/SCHED/phy_procedures_lte_eNb.c | 8 +- openair2/COMMON/s1ap_messages_def.h | 1 + openair2/COMMON/s1ap_messages_types.h | 7 +- openair2/LAYER2/MAC/eNB_scheduler.c | 2 +- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 6 +- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 4 +- openair3/S1AP/s1ap_eNB_decoder.c | 8 ++ openair3/S1AP/s1ap_eNB_handlers.c | 157 +++++++++++++--------- 8 files changed, 119 insertions(+), 74 deletions(-) diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index cb9268095e..12b0ecfb4d 100644 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -713,7 +713,7 @@ void generate_eNB_dlsch_params(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC } else if (dci_alloc->rnti == P_RNTI) { // if we have P_RNTI, configure dlsch parameters and CCE index - LOG_D(PHY,"Generating dlsch params for P_RNTI\n"); + LOG_E(PHY,"Generating dlsch params for P_RNTI\n"); generate_eNB_dlsch_params_from_dci(frame, subframe, &dci_alloc->dci_pdu[0], @@ -731,7 +731,7 @@ void generate_eNB_dlsch_params(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC eNB->dlsch_PCH->nCCE[subframe] = dci_alloc->firstCCE; - LOG_T(PHY,"[eNB %"PRIu8"] Frame %d subframe %d : CCE resource for common DCI (PCH) => %"PRIu8"\n",eNB->Mod_id,frame,subframe, + LOG_D(PHY,"[eNB %"PRIu8"] Frame %d subframe %d : CCE resource for common DCI (PCH) => %"PRIu8"\n",eNB->Mod_id,frame,subframe, eNB->dlsch_PCH->nCCE[subframe]); #if defined(SMBV) @@ -2071,6 +2071,10 @@ void prach_procedures(PHY_VARS_eNB *eNB) { preamble_energy_list[preamble_max], preamble_delay_list[preamble_max]); #endif +LOG_E(PHY, "[RAPROC] Most likely preamble %d, energy %d dB delay %d\n", + preamble_max, + preamble_energy_list[preamble_max], + preamble_delay_list[preamble_max]); if (preamble_energy_list[preamble_max] > 580) { diff --git a/openair2/COMMON/s1ap_messages_def.h b/openair2/COMMON/s1ap_messages_def.h index 10c70439d2..bcb8515b39 100644 --- a/openair2/COMMON/s1ap_messages_def.h +++ b/openair2/COMMON/s1ap_messages_def.h @@ -33,6 +33,7 @@ MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_COMPLETE_LOG, MESSAGE_PRIORITY_MED, IttiMsgT MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_context_release_log) MESSAGE_DEF(S1AP_E_RAB_SETUP_REQUEST_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_e_rab_setup_request_log) MESSAGE_DEF(S1AP_E_RAB_SETUP_RESPONSE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_e_rab_setup_response_log) +MESSAGE_DEF(S1AP_PAGING_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_paging_log) /* eNB application layer -> S1AP messages */ MESSAGE_DEF(S1AP_REGISTER_ENB_REQ , MESSAGE_PRIORITY_MED, s1ap_register_enb_req_t , s1ap_register_enb_req) diff --git a/openair2/COMMON/s1ap_messages_types.h b/openair2/COMMON/s1ap_messages_types.h index da225db66a..1bc393c740 100644 --- a/openair2/COMMON/s1ap_messages_types.h +++ b/openair2/COMMON/s1ap_messages_types.h @@ -175,6 +175,11 @@ typedef struct s1ap_gummei_s { uint16_t mme_group_id; } s1ap_gummei_t; +typedef struct s1ap_imsi_s { + uint8_t buffer[S1AP_IMSI_LENGTH]; + uint8_t length; +} s1ap_imsi_t; + typedef struct s_tmsi_s { uint8_t mme_code; uint32_t m_tmsi; @@ -189,7 +194,7 @@ typedef enum ue_paging_identity_presenceMask_e { typedef struct ue_paging_identity_s { ue_paging_identity_presenceMask_t presenceMask; union { - char imsi[S1AP_IMSI_LENGTH]; + s1ap_imsi_t imsi; s_tmsi_t s_tmsi; } choice; } ue_paging_identity_t; diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c index f9079b68d7..4a4702807e 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler.c +++ b/openair2/LAYER2/MAC/eNB_scheduler.c @@ -310,7 +310,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, break; case RRC_MAC_PCCH_DATA_REQ: - LOG_D(MAC, "Received %s from %s: instance %d, frameP %d, eNB_index %d\n", + LOG_E(MAC, "Received %s from %s: instance %d, frameP %d, eNB_index %d\n", msg_name, ITTI_MSG_ORIGIN_NAME(msg_p), instance, RRC_MAC_PCCH_DATA_REQ (msg_p).frame, RRC_MAC_PCCH_DATA_REQ (msg_p).enb_index); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index f9314768e4..546b2b3f43 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -2352,7 +2352,7 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP) continue; } //paging parameter log - LOG_D(MAC,"frame %d subframe %d PCH: paging_ue_index %d pcch_sdu_length %d mcs %d n_rb_step %d n_vrb_dl %d first_rb%d Lcrbs %d\n", + LOG_D(MAC,"frame %d subframe %d PCH: paging_ue_index %d pcch_sdu_length %d mcs %d n_rb_step %d n_vrb_dl %d first_rb %d Lcrbs %d\n", frameP, subframeP, UE_PF_PO[CC_id][i].ue_index_value, pcch_sdu_length, mcs, n_rb_step, n_vrb_dl, first_rb, Lcrbs); #else //NO SIB @@ -2526,7 +2526,7 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP) continue; } //paging first_rb log - LOG_D(MAC,"[eNB %d] Frame %d subframe %d PCH: paging_ue_index %d pcch_sdu_length %d mcs %d first_rb%d\n", + LOG_D(MAC,"[eNB %d] Frame %d subframe %d PCH: paging_ue_index %d pcch_sdu_length %d mcs %d first_rb %d\n", module_idP, frameP, subframeP, UE_PF_PO[CC_id][i].ue_index_value, pcch_sdu_length, mcs, first_rb); #endif pthread_mutex_lock(&ue_pf_po_mutex); @@ -2545,7 +2545,7 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP) eNB->subframe, 0, 0); - LOG_D(OPT,"[eNB %d][PCH] Frame %d trace pdu for CC_id %d rnti %x with size %d\n", + LOG_E(OPT,"[eNB %d][PCH] Frame %d trace pdu for CC_id %d rnti %x with size %d\n", module_idP, frameP, CC_id, 0xffff, pcch_sdu_length); } LOG_D(MAC,"[eNB %d] Frame %d : Scheduling PCCH->DLSCH for CC_id %d Paging %d bytes (mcs %d, rb 3, TBS %d)\n", diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 1fe3382762..6b21d4f55b 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2613,8 +2613,8 @@ uint8_t do_Paging(uint8_t Mod_id, uint8_t *buffer, ue_paging_identity_t ue_pagin paging_record_p->ue_Identity.choice.s_TMSI.m_TMSI.bits_unused = 0; } else if (ue_paging_identity.presenceMask == UE_PAGING_IDENTITY_imsi) { IMSI_Digit_t imsi_digit[21]; - for (j = 0; j< strlen(ue_paging_identity.choice.imsi); j++) { /* IMSI size */ - imsi_digit[j] = (IMSI_Digit_t)(ue_paging_identity.choice.imsi[j] - '0'); + for (j = 0; j< ue_paging_identity.choice.imsi.length; j++) { /* IMSI size */ + imsi_digit[j] = (IMSI_Digit_t)ue_paging_identity.choice.imsi.buffer[j]; ASN_SEQUENCE_ADD(&paging_record_p->ue_Identity.choice.imsi.list, &imsi_digit[j]); } } diff --git a/openair3/S1AP/s1ap_eNB_decoder.c b/openair3/S1AP/s1ap_eNB_decoder.c index 799887f70a..8446f30d07 100644 --- a/openair3/S1AP/s1ap_eNB_decoder.c +++ b/openair3/S1AP/s1ap_eNB_decoder.c @@ -108,6 +108,14 @@ static int s1ap_eNB_decode_initiating_message(s1ap_message *message, ret = s1ap_decode_s1ap_pagingies( &message->msg.s1ap_PagingIEs, &initiating_p->value); s1ap_xer_print_s1ap_paging(s1ap_xer__print2sp, message_string, message); + message_id = S1AP_PAGING_LOG; + message_string_size = strlen(message_string); + message_p = itti_alloc_new_message_sized(TASK_S1AP, + message_id, + message_string_size + sizeof (IttiMsgText)); + message_p->ittiMsg.s1ap_paging_log.size = message_string_size; + memcpy(&message_p->ittiMsg.s1ap_paging_log.text, message_string, message_string_size); + itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); S1AP_INFO("Paging initiating message\n"); free(message_string); break; diff --git a/openair3/S1AP/s1ap_eNB_handlers.c b/openair3/S1AP/s1ap_eNB_handlers.c index 805e61cdb9..8b838a9ebb 100644 --- a/openair3/S1AP/s1ap_eNB_handlers.c +++ b/openair3/S1AP/s1ap_eNB_handlers.c @@ -1031,48 +1031,66 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, S1AP_DEBUG("[SCTP %d] Received Paging ue_index_value (%d)\n", assoc_id,(uint32_t)S1AP_PAGING_IND(message_p).ue_index_value); + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.mme_code = 0; + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.m_tmsi = 0; + /* convert UE Paging Identity */ if (paging_p->uePagingID.present == S1ap_UEPagingID_PR_s_TMSI) { - S1AP_PAGING_IND(message_p).ue_paging_identity.presenceMask = UE_PAGING_IDENTITY_s_tmsi; + S1AP_PAGING_IND(message_p).ue_paging_identity.presenceMask = UE_PAGING_IDENTITY_s_tmsi; OCTET_STRING_TO_INT8(&paging_p->uePagingID.choice.s_TMSI.mMEC, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.mme_code); OCTET_STRING_TO_INT32(&paging_p->uePagingID.choice.s_TMSI.m_TMSI, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.m_tmsi); } else if (paging_p->uePagingID.present == S1ap_UEPagingID_PR_iMSI) { S1AP_PAGING_IND(message_p).ue_paging_identity.presenceMask = UE_PAGING_IDENTITY_imsi; - uint64_t imsiBuf = 0; + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length = 0; for (int i = 0; i < paging_p->uePagingID.choice.iMSI.size; i++) { - imsiBuf |= ((uint64_t)paging_p->uePagingID.choice.iMSI.buf[i]) << (paging_p->uePagingID.choice.iMSI.size - 1 - i) * 8; + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i] = (uint8_t)(paging_p->uePagingID.choice.iMSI.buf[i] & 0x0F ); + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length++; + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i+1] = (uint8_t)((paging_p->uePagingID.choice.iMSI.buf[i]>>4) & 0x0F); + LOG_D(S1AP,"paging : i %d %d imsi %d %d \n",2*i,2*i+1,S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i+1]); + if (S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2*i+1] == 0x0F) { + if(i != paging_p->uePagingID.choice.iMSI.size - 1){ + /* invalid paging_p->uePagingID.choise.iMSI.buffer */ + S1AP_ERROR("[SCTP %d] Received Paging : uePagingID.choise.iMSI error(i %d 0x0F)\n", assoc_id,i); + return -1; + } + } else { + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length++; + } } - int res = snprintf(S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi, sizeof(S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi), "%lld", (long long int)imsiBuf); - if (res > S1AP_IMSI_LENGTH) { + if (S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length >= S1AP_IMSI_LENGTH) { /* invalid paging_p->uePagingID.choise.iMSI.size */ - S1AP_ERROR("[SCTP %d] Received Paging : uePagingID.choise.iMSI.size(%d) is over IMSI length(%d)\n", assoc_id, res, S1AP_IMSI_LENGTH); + S1AP_ERROR("[SCTP %d] Received Paging : uePagingID.choise.iMSI.size(%d) is over IMSI length(%d)\n", assoc_id, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length, S1AP_IMSI_LENGTH); return -1; - } - } else { + } +} else { /* invalid paging_p->uePagingID.present */ S1AP_ERROR("[SCTP %d] Received Paging : uePagingID.present(%d) is unknown\n", assoc_id, paging_p->uePagingID.present); return -1; } +#if 0 /* convert Paging DRX(optional) */ -// switch(paging_p->pagingDRX) { -// case S1ap_PagingDRX_v32: -// S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_32; -// break; -// case S1ap_PagingDRX_v64: -// S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_64; -// break; -// case S1ap_PagingDRX_v128: -// S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_128; -// break; -// case S1ap_PagingDRX_v256: -// S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_256; -// break; -// default: -// // when UE Paging DRX is no value -// S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_256; -// break; -// } + if (paging_p->presenceMask & S1AP_PAGINGIES_PAGINGDRX_PRESENT) { + switch(paging_p->pagingDRX) { + case S1ap_PagingDRX_v32: + S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_32; + break; + case S1ap_PagingDRX_v64: + S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_64; + break; + case S1ap_PagingDRX_v128: + S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_128; + break; + case S1ap_PagingDRX_v256: + S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_256; + break; + default: + // when UE Paging DRX is no value + S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_256; + break; + } + } +#endif S1AP_PAGING_IND(message_p).paging_drx = PAGING_DRX_256; /* convert cnDomain */ @@ -1088,9 +1106,10 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, memset (&S1AP_PAGING_IND(message_p).plmn_identity[0], 0, sizeof(plmn_identity_t)*256); memset (&S1AP_PAGING_IND(message_p).tac[0], 0, sizeof(int16_t)*256); + S1AP_PAGING_IND(message_p).tai_size = 0; for (int i = 0; i < paging_p->taiList.s1ap_TAIItem.count; i++) { - S1AP_DEBUG("[SCTP %d] Received Paging taiList: i %d, count %d\n", assoc_id, i, paging_p->taiList.s1ap_TAIItem.count); + S1AP_INFO("[SCTP %d] Received Paging taiList: i %d, count %d\n", assoc_id, i, paging_p->taiList.s1ap_TAIItem.count); S1ap_TAIItem_t s1ap_TAIItem; memset (&s1ap_TAIItem, 0, sizeof(S1ap_TAIItem_t)); @@ -1099,53 +1118,61 @@ int s1ap_eNB_handle_paging(uint32_t assoc_id, TBCD_TO_MCC_MNC(&s1ap_TAIItem.tAI.pLMNidentity, S1AP_PAGING_IND(message_p).plmn_identity[i].mcc, S1AP_PAGING_IND(message_p).plmn_identity[i].mnc, S1AP_PAGING_IND(message_p).plmn_identity[i].mnc_digit_length); - OCTET_STRING_TO_INT16(&s1ap_TAIItem.tAI.tAC, S1AP_PAGING_IND(message_p).tac[i]); - S1AP_PAGING_IND(message_p).tai_size++; - S1AP_DEBUG("[SCTP %d] Received Paging: MCC %d, MNC %d, TAC %d\n", assoc_id, S1AP_PAGING_IND(message_p).plmn_identity[i].mcc, S1AP_PAGING_IND(message_p).plmn_identity[i].mnc, S1AP_PAGING_IND(message_p).tac[i]); + OCTET_STRING_TO_INT16(&s1ap_TAIItem.tAI.tAC, S1AP_PAGING_IND(message_p).tac[i]); + S1AP_PAGING_IND(message_p).tai_size++; + S1AP_DEBUG("[SCTP %d] Received Paging: MCC %d, MNC %d, TAC %d\n", assoc_id, S1AP_PAGING_IND(message_p).plmn_identity[i].mcc, S1AP_PAGING_IND(message_p).plmn_identity[i].mnc, S1AP_PAGING_IND(message_p).tac[i]); } - // CSG Id(optional) List is not used +#if 0 + // CSG Id(optional) List is not used + if (paging_p->presenceMask & S1AP_PAGINGIES_CSG_IDLIST_PRESENT) { + // TODO + } /* convert pagingPriority (optional) if has value */ -// if (paging_p->pagingPriority >= 0) { -// switch(paging_p->pagingPriority) { -// case S1ap_PagingPriority_priolevel1: -// S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL1; -// break; -// case S1ap_PagingPriority_priolevel2: -// S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL2; -// break; -// case S1ap_PagingPriority_priolevel3: -// S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL3; -// break; -// case S1ap_PagingPriority_priolevel4: -// S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL4; -// break; -// case S1ap_PagingPriority_priolevel5: -// S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL5; -// break; -// case S1ap_PagingPriority_priolevel6: -// S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL6; -// break; -// case S1ap_PagingPriority_priolevel7: -// S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL7; -// break; -// case S1ap_PagingPriority_priolevel8: -// S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL8; -// break; -// default: -// /* invalid paging_p->pagingPriority */ -// S1AP_ERROR("[SCTP %d] Received paging : pagingPriority(%ld) is invalid\n", assoc_id, paging_p->pagingPriority); -// return -1; -// } -// } + if (paging_p->presenceMask & S1AP_PAGINGIES_PAGINGPRIORITY_PRESENT) { + switch(paging_p->pagingPriority) { + case S1ap_PagingPriority_priolevel1: + S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL1; + break; + case S1ap_PagingPriority_priolevel2: + S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL2; + break; + case S1ap_PagingPriority_priolevel3: + S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL3; + break; + case S1ap_PagingPriority_priolevel4: + S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL4; + break; + case S1ap_PagingPriority_priolevel5: + S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL5; + break; + case S1ap_PagingPriority_priolevel6: + S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL6; + break; + case S1ap_PagingPriority_priolevel7: + S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL7; + break; + case S1ap_PagingPriority_priolevel8: + S1AP_PAGING_IND(message_p).paging_priority = PAGING_PRIO_LEVEL8; + break; + default: + /* invalid paging_p->pagingPriority */ + S1AP_ERROR("[SCTP %d] Received paging : pagingPriority(%ld) is invalid\n", assoc_id, paging_p->pagingPriority); + return -1; + } + } +#endif //paging parameter values S1AP_DEBUG("[SCTP %d] Received Paging parameters: ue_index_value %d cn_domain %d paging_drx %d paging_priority %d\n",assoc_id, S1AP_PAGING_IND(message_p).ue_index_value, S1AP_PAGING_IND(message_p).cn_domain, S1AP_PAGING_IND(message_p).paging_drx, S1AP_PAGING_IND(message_p).paging_priority); - S1AP_DEBUG("[SCTP %d] Received Paging parameters(ue): presenceMask %d s_tmsi.m_tmsi %d s_tmsi.mme_code %d\n",assoc_id, + S1AP_DEBUG("[SCTP %d] Received Paging parameters(ue): presenceMask %d s_tmsi.m_tmsi %d s_tmsi.mme_code %d IMSI length %d (0-5) %d%d%d%d%d%d\n",assoc_id, S1AP_PAGING_IND(message_p).ue_paging_identity.presenceMask, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.m_tmsi, - S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.mme_code); + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.s_tmsi.mme_code, S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.length, + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[0], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[1], + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[2], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[3], + S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[4], S1AP_PAGING_IND(message_p).ue_paging_identity.choice.imsi.buffer[5]); /* send message to RRC */ itti_send_msg_to_task(TASK_RRC_ENB, s1ap_eNB_instance->instance, message_p); -- GitLab