Commit 3f5695f5 authored by Manu Agrawal's avatar Manu Agrawal

Merge branch 'SysInd_8112' into sysind_latest

parents 8a76f69c 02f41712
...@@ -199,6 +199,7 @@ typedef struct ss_paging_ind_s { ...@@ -199,6 +199,7 @@ typedef struct ss_paging_ind_s {
uint16_t sfn; uint16_t sfn;
uint8_t sf; uint8_t sf;
ss_paging_identity_t *paging_recordList; ss_paging_identity_t *paging_recordList;
bool systemInfoModification;
} ss_paging_ind_t; } ss_paging_ind_t;
typedef enum VtpCmd_e { typedef enum VtpCmd_e {
......
...@@ -533,6 +533,9 @@ static void rrc_eNB_process_SS_PAGING_IND(MessageDef *msg_p, const char *msg_nam ...@@ -533,6 +533,9 @@ static void rrc_eNB_process_SS_PAGING_IND(MessageDef *msg_p, const char *msg_nam
uint8_t i_s; /* i_s = floor(UE_ID/N) mod Ns */ uint8_t i_s; /* i_s = floor(UE_ID/N) mod Ns */
uint32_t T; /* DRX cycle */ uint32_t T; /* DRX cycle */
uint8_t CC_id = 0; uint8_t CC_id = 0;
LOG_A(RRC, "eNB received SS_PAGING_IND with paging_recordList=%p systemInfoModification=%d\n", SS_PAGING_IND(msg_p).paging_recordList, SS_PAGING_IND(msg_p).systemInfoModification);
if (SS_PAGING_IND(msg_p).paging_recordList)
{
LOG_A(RRC, "[eNB %d] In S1AP_PAGING_IND: MASK %d, S_TMSI mme_code %d, m_tmsi %ld SFN %d subframe %d cn_domain %d ue_index %d\n", instance, LOG_A(RRC, "[eNB %d] In S1AP_PAGING_IND: MASK %d, S_TMSI mme_code %d, m_tmsi %ld SFN %d subframe %d cn_domain %d ue_index %d\n", instance,
SS_PAGING_IND(msg_p).paging_recordList->ue_paging_identity.presenceMask, SS_PAGING_IND(msg_p).paging_recordList->ue_paging_identity.presenceMask,
SS_PAGING_IND(msg_p).paging_recordList->ue_paging_identity.choice.s_tmsi.mme_code, SS_PAGING_IND(msg_p).paging_recordList->ue_paging_identity.choice.s_tmsi.mme_code,
...@@ -673,6 +676,8 @@ static void rrc_eNB_process_SS_PAGING_IND(MessageDef *msg_p, const char *msg_nam ...@@ -673,6 +676,8 @@ static void rrc_eNB_process_SS_PAGING_IND(MessageDef *msg_p, const char *msg_nam
RRC_PCCH_DATA_REQ(message_p).CC_id = CC_id; RRC_PCCH_DATA_REQ(message_p).CC_id = CC_id;
LOG_A(RRC, "[eNB %d] CC_id %d In S1AP_PAGING_IND: send encdoed buffer to PDCP buffer_size %d\n", instance, CC_id, length); LOG_A(RRC, "[eNB %d] CC_id %d In S1AP_PAGING_IND: send encdoed buffer to PDCP buffer_size %d\n", instance, CC_id, length);
itti_send_msg_to_task(TASK_PDCP_ENB, instance, message_p); itti_send_msg_to_task(TASK_PDCP_ENB, instance, message_p);
}
LOG_A(RRC, "[eNB %d] Exiting ,rrc_eNB_process_SS_PAGING_IND\n"); LOG_A(RRC, "[eNB %d] Exiting ,rrc_eNB_process_SS_PAGING_IND\n");
return (0); return (0);
} }
......
...@@ -435,8 +435,34 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure) ...@@ -435,8 +435,34 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure)
} else if(SIB1_CELL_ACCESS_REL_INFO.plmn_IdentityList.v->plmn_Identity.mnc.d == 3) { } else if(SIB1_CELL_ACCESS_REL_INFO.plmn_IdentityList.v->plmn_Identity.mnc.d == 3) {
RRC_CONFIGURATION_REQ(msg_p).mnc[i] = (((SIB1_CELL_ACCESS_REL_INFO.plmn_IdentityList.v->plmn_Identity.mnc.v[0])<<16) | ((SIB1_CELL_ACCESS_REL_INFO.plmn_IdentityList.v->plmn_Identity.mnc.v[1])<<8) | ((SIB1_CELL_ACCESS_REL_INFO.plmn_IdentityList.v->plmn_Identity.mnc.v[2])<<0)); RRC_CONFIGURATION_REQ(msg_p).mnc[i] = (((SIB1_CELL_ACCESS_REL_INFO.plmn_IdentityList.v->plmn_Identity.mnc.v[0])<<16) | ((SIB1_CELL_ACCESS_REL_INFO.plmn_IdentityList.v->plmn_Identity.mnc.v[1])<<8) | ((SIB1_CELL_ACCESS_REL_INFO.plmn_IdentityList.v->plmn_Identity.mnc.v[2])<<0));
} }
}
if (AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.d == true)
{
LOG_A(ENB_SS, "[SYS] [SIs] size=%d", AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.d);
for (int i=0; i< AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.d; ++i)
{
if (BCCH_DL_SCH_MessageType_c1 == AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.d)
{
if (BCCH_DL_SCH_MessageType_c1_systemInformation == AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.d)
{
if(SystemInformation_criticalExtensions_systemInformation_r8 == AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.d)
{
for(int j=0; j< AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.d; j++)
{
if(SystemInformation_r8_IEs_sib_TypeAndInfo_s_sib2 == AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].d)
{
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[num_CC].prach_config_index = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib2.radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_ConfigIndex;
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[num_CC].prach_high_speed = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib2.radioResourceConfigCommon.prach_Config.prach_ConfigInfo.highSpeedFlag;
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[num_CC].prach_zero_correlation = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib2.radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig;
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[num_CC].prach_freq_offset = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib2.radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset;
}
}
}
}
}
}
}
}
#if 0 /** FIXME: To be implemented later */ #if 0 /** FIXME: To be implemented later */
RRC_CONFIGURATION_REQ(msg_p).tac = RRC_CONFIGURATION_REQ(msg_p).tac =
RRC_CONFIGURATION_REQ(msg_p).cell_identity = RRC_CONFIGURATION_REQ(msg_p).cell_identity =
...@@ -1232,6 +1258,16 @@ static void sys_handle_paging_req(struct PagingTrigger_Type *pagingRequest, ss_s ...@@ -1232,6 +1258,16 @@ static void sys_handle_paging_req(struct PagingTrigger_Type *pagingRequest, ss_s
enum ConfirmationResult_Type_Sel resType = ConfirmationResult_Type_Success; enum ConfirmationResult_Type_Sel resType = ConfirmationResult_Type_Success;
bool resVal = TRUE; bool resVal = TRUE;
MessageDef *message_p = itti_alloc_new_message(TASK_SYS, 0,SS_SS_PAGING_IND); MessageDef *message_p = itti_alloc_new_message(TASK_SYS, 0,SS_SS_PAGING_IND);
if (message_p == NULL)
{
return -1;
}
SS_PAGING_IND(message_p).sfn = tinfo.sfn;
SS_PAGING_IND(message_p).sf = tinfo.sf;
SS_PAGING_IND(message_p).paging_recordList = NULL;
SS_PAGING_IND(message_p).systemInfoModification = false;
switch (pagingRequest->Paging.message.d) switch (pagingRequest->Paging.message.d)
{ {
case PCCH_MessageType_c1: case PCCH_MessageType_c1:
...@@ -1283,6 +1319,15 @@ static void sys_handle_paging_req(struct PagingTrigger_Type *pagingRequest, ss_s ...@@ -1283,6 +1319,15 @@ static void sys_handle_paging_req(struct PagingTrigger_Type *pagingRequest, ss_s
} }
} }
if (pagingRequest->Paging.message.v.c1.v.paging.systemInfoModification.d)
{
LOG_A(ENB_SS, "[SYS] System Info Modification received in Paging request \n");
if (Paging_systemInfoModification_e_true == pagingRequest->Paging.message.v.c1.v.paging.systemInfoModification.v)
{
SS_PAGING_IND(message_p).systemInfoModification = true;
}
}
} }
int send_res = itti_send_msg_to_task(TASK_RRC_ENB, 0, message_p); int send_res = itti_send_msg_to_task(TASK_RRC_ENB, 0, message_p);
......
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