Merge remote-tracking branch 'origin/develop' into NR_BWP_config
This commit is contained in:
@@ -306,7 +306,7 @@ rrc_rx_tx(
|
||||
LOG_D(RRC,"SFN.SN %d.%d => release timer %d/%d\n",ctxt_pP->frame,ctxt_pP->subframe,
|
||||
ue_context_p->ue_context.ue_release_timer,ue_context_p->ue_context.ue_release_timer_thres);
|
||||
if ((ctxt_pP->frame == 0) && (ctxt_pP->subframe==0)) {
|
||||
if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == TRUE) {
|
||||
if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == true) {
|
||||
LOG_I(RRC,"UE rnti %x:S-TMSI %x failure timer %d/20000\n",
|
||||
ue_context_p->ue_context.rnti,
|
||||
ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi,
|
||||
|
||||
@@ -299,7 +299,7 @@ mac_rrc_data_ind(
|
||||
const uint8_t *sduP,
|
||||
const sdu_size_t sdu_lenP,
|
||||
const uint8_t mbsfn_sync_areaP,
|
||||
const boolean_t brOption
|
||||
const bool brOption
|
||||
)
|
||||
//--------------------------------------------------------------------------
|
||||
{
|
||||
|
||||
@@ -58,7 +58,7 @@ rrc_data_req(
|
||||
{
|
||||
if(sdu_sizeP == 255) {
|
||||
LOG_I(RRC,"sdu_sizeP == 255");
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
MessageDef *message_p;
|
||||
@@ -94,7 +94,7 @@ rrc_data_req(
|
||||
if (ctxt_pP->enb_flag && NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type))
|
||||
pdcp_run(ctxt_pP);
|
||||
|
||||
return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -298,7 +298,7 @@ rrc_data_req_ue(
|
||||
TASK_PDCP_UE,
|
||||
ctxt_pP->instance,
|
||||
message_p);
|
||||
return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -343,7 +343,7 @@ uint8_t do_MIB_SL(const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index,
|
||||
|
||||
if (in_coverage > 0 ) {
|
||||
//in coverage
|
||||
mib_sl->inCoverage_r12 = TRUE;
|
||||
mib_sl->inCoverage_r12 = true;
|
||||
mib_sl->sl_Bandwidth_r12 = *UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_Bandwidth;
|
||||
|
||||
if (UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->tdd_Config) {
|
||||
@@ -366,7 +366,7 @@ uint8_t do_MIB_SL(const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index,
|
||||
} else {
|
||||
//Todo - out of coverage for V2X
|
||||
// Todo - UE has a selected SyncRef UE
|
||||
mib_sl->inCoverage_r12 = FALSE;
|
||||
mib_sl->inCoverage_r12 = false;
|
||||
//set sl-Bandwidth, subframeAssignmentSL and reserved from the pre-configured parameters
|
||||
}
|
||||
|
||||
@@ -989,7 +989,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
|
||||
sib1_1250->nonCriticalExtension = NULL;
|
||||
////Rel1310
|
||||
if ((configuration->schedulingInfoSIB1_BR_r13[CC_id] != 0) &&
|
||||
(brOption==TRUE)) {
|
||||
(brOption==true)) {
|
||||
sib1_1250->nonCriticalExtension = calloc(1, sizeof(LTE_SystemInformationBlockType1_v1310_IEs_t));
|
||||
memset(sib1_1250->nonCriticalExtension, 0, sizeof(LTE_SystemInformationBlockType1_v1310_IEs_t));
|
||||
LTE_SystemInformationBlockType1_v1310_IEs_t *sib1_1310 = sib1_1250->nonCriticalExtension;
|
||||
@@ -1279,7 +1279,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
||||
*sib2 = &sib2_part->choice.sib2;
|
||||
*sib3 = &sib3_part->choice.sib3;
|
||||
|
||||
if ((configuration->eMBMS_configured > 0) && (brOption==FALSE)) {
|
||||
if ((configuration->eMBMS_configured > 0) && (brOption==false)) {
|
||||
sib13_part = CALLOC(1,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
|
||||
memset(sib13_part,0,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
|
||||
sib13_part->present = LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920;
|
||||
@@ -2781,7 +2781,7 @@ do_RRCConnectionSetup(
|
||||
mac_MainConfig->ul_SCH_Config->maxHARQ_Tx = maxHARQ_Tx; // max number of UL HARQ transmission
|
||||
mac_MainConfig->ul_SCH_Config->periodicBSR_Timer = periodicBSR_Timer;
|
||||
mac_MainConfig->ul_SCH_Config->retxBSR_Timer = LTE_RetxBSR_Timer_r12_sf320; // LTE_RetxBSR_Timer_r12_sf5120 // regular BSR timer
|
||||
mac_MainConfig->ul_SCH_Config->ttiBundling = 0; // FALSE
|
||||
mac_MainConfig->ul_SCH_Config->ttiBundling = 0; // false
|
||||
//* timeAlignmentTimerDedicated *//
|
||||
mac_MainConfig->timeAlignmentTimerDedicated = LTE_TimeAlignmentTimer_infinity;
|
||||
//* DRX Config *//
|
||||
@@ -3135,7 +3135,7 @@ uint8_t do_RRCConnectionSetup_BR(
|
||||
//mac_MainConfig->ul_SCH_Config->maxHARQ_Tx = maxHARQ_Tx;
|
||||
mac_MainConfig->ul_SCH_Config->periodicBSR_Timer = periodicBSR_Timer;
|
||||
mac_MainConfig->ul_SCH_Config->retxBSR_Timer = LTE_RetxBSR_Timer_r12_sf320;
|
||||
mac_MainConfig->ul_SCH_Config->ttiBundling = 0; // FALSE
|
||||
mac_MainConfig->ul_SCH_Config->ttiBundling = 0; // false
|
||||
mac_MainConfig->timeAlignmentTimerDedicated = LTE_TimeAlignmentTimer_infinity;
|
||||
mac_MainConfig->drx_Config = NULL;
|
||||
mac_MainConfig->phr_Config = CALLOC(1, sizeof(*mac_MainConfig->phr_Config));
|
||||
|
||||
@@ -156,7 +156,7 @@ typedef struct UE_RRC_INFO_NB_IoT_s {
|
||||
#define RRC_TRANSACTION_IDENTIFIER_NUMBER 3
|
||||
|
||||
typedef struct UE_S_TMSI_NB_IoT_s {
|
||||
boolean_t presence;
|
||||
bool presence;
|
||||
mme_code_t mme_code;
|
||||
m_tmsi_t m_tmsi;
|
||||
} __attribute__ ((__packed__)) UE_S_TMSI_NB_IoT;
|
||||
|
||||
@@ -4351,8 +4351,8 @@ void rrc_ue_generate_nrMeasurementReport(protocol_ctxt_t *const ctxt_pP, uint8_t
|
||||
AssertFatal(size >= 0, "do_nrMeasurementReport failed \n");
|
||||
LOG_I(RRC, "[UE %d] Frame %d : Generating Measurement Report for eNB %d\n",
|
||||
ctxt_pP->module_id, ctxt_pP->frame, eNB_index);
|
||||
int result = pdcp_data_req(ctxt_pP, SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA,NULL, NULL);
|
||||
AssertFatal (result == TRUE, "PDCP data request failed!\n");
|
||||
const bool result = pdcp_data_req(ctxt_pP, SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA,NULL, NULL);
|
||||
AssertFatal (result == true, "PDCP data request failed!\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4370,7 +4370,6 @@ void rrc_ue_generate_MeasurementReport(protocol_ctxt_t *const ctxt_pP, uint8_t e
|
||||
long nElem, nElem1;
|
||||
float rsrp_filtered, rsrq_filtered;
|
||||
static frame_t pframe=0;
|
||||
int result;
|
||||
nElem = 98;
|
||||
nElem1 = 35;
|
||||
target_eNB_offset = UE_rrc_inst[ctxt_pP->module_id].Info[0].handoverTarget; // eNB_offset of target eNB: used to obtain the mod_id of target eNB
|
||||
@@ -4420,8 +4419,8 @@ void rrc_ue_generate_MeasurementReport(protocol_ctxt_t *const ctxt_pP, uint8_t e
|
||||
AssertFatal(size >= 0, "do_MeasurementReport failed \n");
|
||||
LOG_I(RRC, "[UE %d] Frame %d : Generating Measurement Report for eNB %d. Size is %zu\n",
|
||||
ctxt_pP->module_id, ctxt_pP->frame, eNB_index, size);
|
||||
result = pdcp_data_req(ctxt_pP, SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA,NULL, NULL);
|
||||
AssertFatal (result == TRUE, "PDCP data request failed!\n");
|
||||
const bool result = pdcp_data_req(ctxt_pP, SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA,NULL, NULL);
|
||||
AssertFatal (result == true, "PDCP data request failed!\n");
|
||||
//LOG_D(RRC, "[UE %d] Frame %d Sending MeasReport (%d bytes) through DCCH%d to PDCP \n",ue_mod_idP,frameP, size, DCCH);
|
||||
}
|
||||
|
||||
|
||||
@@ -367,7 +367,7 @@ typedef struct UE_RRC_INFO_s {
|
||||
} __attribute__ ((__packed__)) UE_RRC_INFO;
|
||||
|
||||
typedef struct UE_S_TMSI_s {
|
||||
boolean_t presence;
|
||||
bool presence;
|
||||
mme_code_t mme_code;
|
||||
m_tmsi_t m_tmsi;
|
||||
} __attribute__ ((__packed__)) UE_S_TMSI;
|
||||
@@ -931,7 +931,7 @@ typedef struct UE_RRC_INST_s {
|
||||
} UE_RRC_INST;
|
||||
|
||||
typedef struct UE_PF_PO_s {
|
||||
boolean_t enable_flag; /* flag indicate whether current object is used */
|
||||
bool enable_flag; /* flag indicate whether current object is used */
|
||||
uint16_t ue_index_value; /* UE index value */
|
||||
uint8_t PF_min; /* minimal value of Paging Frame (PF) */
|
||||
uint8_t PO; /* Paging Occasion (PO) */
|
||||
|
||||
+31
-34
@@ -150,7 +150,7 @@ init_SI(
|
||||
LTE_SystemInformationBlockType1_v1310_IEs_t *sib1_v13ext=(LTE_SystemInformationBlockType1_v1310_IEs_t *)NULL;
|
||||
LOG_D(RRC,"%s()\n\n\n\n",__FUNCTION__);
|
||||
|
||||
if(configuration->radioresourceconfig[CC_id].mbms_dedicated_serving_cell == TRUE) {
|
||||
if(configuration->radioresourceconfig[CC_id].mbms_dedicated_serving_cell == true) {
|
||||
LOG_A(RRC, "Configuring MIB FeMBMS (N_RB_DL %d)\n",
|
||||
(int)configuration->N_RB_DL[CC_id]);
|
||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].MIB_FeMBMS = (uint8_t *) malloc16(4);
|
||||
@@ -266,7 +266,7 @@ init_SI(
|
||||
carrier->sizeof_SIB1 = do_SIB1(&rrc->carrier[CC_id],
|
||||
ctxt_pP->module_id,
|
||||
CC_id,
|
||||
FALSE,
|
||||
false,
|
||||
configuration
|
||||
);
|
||||
AssertFatal(carrier->sizeof_SIB1 != 255,"FATAL, RC.rrc[enb_mod_idP].carrier[CC_id].sizeof_SIB1 == 255");
|
||||
@@ -276,7 +276,7 @@ init_SI(
|
||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1_BR = (uint8_t *) malloc16(32);
|
||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],
|
||||
ctxt_pP->module_id,
|
||||
CC_id, TRUE, configuration);
|
||||
CC_id, true, configuration);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -285,7 +285,7 @@ init_SI(
|
||||
AssertFatal(carrier->SIB23!=NULL,"cannot allocate memory for SIB");
|
||||
carrier->sizeof_SIB23 = do_SIB23(ctxt_pP->module_id,
|
||||
CC_id,
|
||||
FALSE,
|
||||
false,
|
||||
configuration
|
||||
);
|
||||
LOG_I(RRC,"do_SIB23, size %d \n ", carrier->sizeof_SIB23);
|
||||
@@ -295,7 +295,7 @@ init_SI(
|
||||
if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) {
|
||||
carrier->SIB23_BR = (uint8_t *) malloc16(64);
|
||||
AssertFatal(carrier->SIB23_BR!=NULL,"cannot allocate memory for SIB");
|
||||
carrier->sizeof_SIB23_BR = do_SIB23(ctxt_pP->module_id, CC_id, TRUE, configuration);
|
||||
carrier->sizeof_SIB23_BR = do_SIB23(ctxt_pP->module_id, CC_id, true, configuration);
|
||||
}
|
||||
|
||||
LOG_T(RRC, PROTOCOL_RRC_CTXT_FMT" SIB2/3 Contents (partial)\n",
|
||||
@@ -661,7 +661,7 @@ rrc_eNB_get_next_transaction_identifier(
|
||||
////-----------------------------------------------------------------------------
|
||||
//{
|
||||
//
|
||||
// boolean_t reg = FALSE;
|
||||
// bool reg = false;
|
||||
// module_id_t i;
|
||||
//
|
||||
// AssertFatal(enb_mod_idP < NB_eNB_INST, "eNB index invalid (%d/%d)!", enb_mod_idP, NB_eNB_INST);
|
||||
@@ -669,12 +669,12 @@ rrc_eNB_get_next_transaction_identifier(
|
||||
// for (i = 0; i < MAX_MOBILES_PER_ENB; i++) {
|
||||
// if (RC.rrc[enb_mod_idP]->Info.UE_info[i] == UE_identity) {
|
||||
// // UE_identity already registered
|
||||
// reg = TRUE;
|
||||
// reg = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (reg == FALSE) {
|
||||
// if (reg == false) {
|
||||
// return (UE_MODULE_INVALID);
|
||||
// } else
|
||||
// return (i);
|
||||
@@ -713,7 +713,7 @@ rrc_eNB_ue_context_stmsi_exist(
|
||||
m_tmsiP, mme_codeP, ue_context_p,
|
||||
ue_context_p->ue_context.rnti);
|
||||
|
||||
if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == TRUE) {
|
||||
if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == true) {
|
||||
printf("=> S-TMSI %x, MME %x\n",
|
||||
ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi,
|
||||
ue_context_p->ue_context.Initialue_identity_s_TMSI.mme_code);
|
||||
@@ -986,7 +986,7 @@ void remove_UE_from_freelist(module_id_t mod_id, rnti_t rnti) {
|
||||
pthread_mutex_unlock(&lock_ue_freelist);
|
||||
}
|
||||
|
||||
void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, boolean_t removeFlag) {
|
||||
void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, bool removeFlag) {
|
||||
UE_free_list_t *free_list = NULL;
|
||||
eNB_MAC_INST *eNB_MAC = RC.mac[mod_id];
|
||||
pthread_mutex_lock(&lock_ue_freelist);
|
||||
@@ -1013,7 +1013,7 @@ void release_UE_in_freeList(module_id_t mod_id) {
|
||||
PHY_VARS_eNB *eNB_PHY = NULL;
|
||||
struct rrc_eNB_ue_context_s *ue_context_pP = NULL;
|
||||
eNB_MAC_INST *eNB_MAC = RC.mac[mod_id];
|
||||
boolean_t remove_UEContext;
|
||||
bool remove_UEContext;
|
||||
rnti_t rnti;
|
||||
int head, tail, ue_num;
|
||||
pthread_mutex_lock(&lock_ue_freelist);
|
||||
@@ -1678,7 +1678,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
|
||||
ue_context_pP->ue_context.rnti = ctxt_pP->rnti;
|
||||
|
||||
if (EPC_MODE_ENABLED) {
|
||||
uint8_t send_security_mode_command = FALSE;
|
||||
uint8_t send_security_mode_command = false;
|
||||
rrc_pdcp_config_security(
|
||||
ctxt_pP,
|
||||
ue_context_pP,
|
||||
@@ -2332,7 +2332,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t *co
|
||||
// PDCP
|
||||
PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
|
||||
DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
|
||||
PDCP_rlc_AM->statusReportRequired = FALSE;
|
||||
PDCP_rlc_AM->statusReportRequired = false;
|
||||
break;
|
||||
|
||||
default :
|
||||
@@ -2590,7 +2590,7 @@ rrc_eNB_modify_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t *cons
|
||||
|
||||
PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
|
||||
DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
|
||||
PDCP_rlc_AM->statusReportRequired = FALSE;
|
||||
PDCP_rlc_AM->statusReportRequired = false;
|
||||
break;
|
||||
|
||||
default :
|
||||
@@ -2951,7 +2951,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
|
||||
#ifdef RRC_DEFAULT_RAB_IS_AM // EXMIMO_IOT
|
||||
PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
|
||||
DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
|
||||
PDCP_rlc_AM->statusReportRequired = FALSE;
|
||||
PDCP_rlc_AM->statusReportRequired = false;
|
||||
#else
|
||||
PDCP_rlc_UM = CALLOC(1, sizeof(*PDCP_rlc_UM));
|
||||
DRB_pdcp_config->rlc_UM = PDCP_rlc_UM;
|
||||
@@ -3347,7 +3347,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.eventId.present = LTE_ReportConfigInterRAT__triggerType__event__eventId_PR_eventB1_NR_r15;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.eventId.choice.eventB1_NR_r15.b1_ThresholdNR_r15.present = LTE_ThresholdNR_r15_PR_nr_RSRP_r15;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.eventId.choice.eventB1_NR_r15.b1_ThresholdNR_r15.choice.nr_RSRP_r15 = 0;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.eventId.choice.eventB1_NR_r15.reportOnLeave_r15 = FALSE;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.eventId.choice.eventB1_NR_r15.reportOnLeave_r15 = false;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.hysteresis = 2;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.triggerType.choice.event.timeToTrigger = LTE_TimeToTrigger_ms80;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.maxReportCells = 4;
|
||||
@@ -3361,9 +3361,9 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
|
||||
|
||||
if (ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15 == NULL) exit(1);
|
||||
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_rsrp = TRUE;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_rsrq = TRUE;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_sinr = TRUE;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_rsrp = true;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_rsrq = true;
|
||||
ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_sinr = true;
|
||||
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_NR);
|
||||
LOG_A(RRC, "Generating RRCCConnectionReconfigurationRequest (NRUE Measurement Report Request).\n");
|
||||
}
|
||||
@@ -3714,7 +3714,7 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
|
||||
#ifdef RRC_DEFAULT_RAB_IS_AM // EXMIMO_IOT
|
||||
PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
|
||||
DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
|
||||
PDCP_rlc_AM->statusReportRequired = FALSE;
|
||||
PDCP_rlc_AM->statusReportRequired = 0; // FALSE
|
||||
#else
|
||||
PDCP_rlc_UM = CALLOC(1, sizeof(*PDCP_rlc_UM));
|
||||
DRB_pdcp_config->rlc_UM = PDCP_rlc_UM;
|
||||
@@ -5052,7 +5052,7 @@ check_handovers(
|
||||
&& ue_context_p->ue_context.handover_info != NULL &&
|
||||
ue_context_p->ue_context.handover_info->forwarding_state == FORWARDING_NO_EMPTY ) {
|
||||
MessageDef *msg_p;
|
||||
int result;
|
||||
bool result;
|
||||
protocol_ctxt_t ctxt;
|
||||
|
||||
do {
|
||||
@@ -5090,7 +5090,7 @@ check_handovers(
|
||||
GTPV1U_ENB_DATA_FORWARDING_IND (msg_p).mode, NULL, NULL
|
||||
);
|
||||
|
||||
if (result != TRUE) {
|
||||
if (result != true) {
|
||||
LOG_E(RRC, "target enb send data forwarding buffer to PDCP request failed!\n");
|
||||
} else {
|
||||
LOG_D(RRC, "target enb send data forwarding buffer to PDCP!\n");
|
||||
@@ -5158,7 +5158,7 @@ check_handovers(
|
||||
GTPV1U_ENB_END_MARKER_IND (msg_p).mode, NULL, NULL
|
||||
);
|
||||
|
||||
if (result != TRUE) {
|
||||
if (result != true) {
|
||||
LOG_E(RRC, "target enb send spgw buffer to PDCP request failed!\n");
|
||||
} else {
|
||||
LOG_D(RRC, "target enb send spgw buffer to PDCP!\n");
|
||||
@@ -5390,7 +5390,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
|
||||
#ifdef RRC_DEFAULT_RAB_IS_AM // EXMIMO_IOT
|
||||
PDCP_rlc_AM = CALLOC(1, sizeof(*PDCP_rlc_AM));
|
||||
DRB_pdcp_config->rlc_AM = PDCP_rlc_AM;
|
||||
PDCP_rlc_AM->statusReportRequired = FALSE;
|
||||
PDCP_rlc_AM->statusReportRequired = 0; // FALSE
|
||||
#else
|
||||
PDCP_rlc_UM = CALLOC(1, sizeof(*PDCP_rlc_UM));
|
||||
DRB_pdcp_config->rlc_UM = PDCP_rlc_UM;
|
||||
@@ -6280,10 +6280,7 @@ rrc_eNB_configure_rbs_handover(struct rrc_eNB_ue_context_s *ue_context_p, protoc
|
||||
ctxt_pP,
|
||||
ue_context_p,
|
||||
ue_context_p->ue_context.kenb);
|
||||
rrc_pdcp_config_security(
|
||||
ctxt_pP,
|
||||
ue_context_p,
|
||||
FALSE);
|
||||
rrc_pdcp_config_security(ctxt_pP, ue_context_p, false);
|
||||
}
|
||||
|
||||
// Add a new user (called during the HO procedure)
|
||||
@@ -6361,9 +6358,9 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
||||
|
||||
UE_sched_ctrl_t *UE_scheduling_control = &(RC.mac[module_id]->UE_info.UE_sched_ctrl[UE_id_mac]);
|
||||
|
||||
if (UE_scheduling_control->cdrx_waiting_ack == TRUE) {
|
||||
UE_scheduling_control->cdrx_waiting_ack = FALSE;
|
||||
UE_scheduling_control->cdrx_configured = TRUE; // Set to TRUE when RRC Connection Reconfiguration is received
|
||||
if (UE_scheduling_control->cdrx_waiting_ack == true) {
|
||||
UE_scheduling_control->cdrx_waiting_ack = false;
|
||||
UE_scheduling_control->cdrx_configured = true; // Set to TRUE when RRC Connection Reconfiguration is received
|
||||
LOG_I(RRC, "CDRX configuration activated after RRC Connection Reconfiguration Complete reception\n");
|
||||
}
|
||||
}
|
||||
@@ -6627,7 +6624,7 @@ rrc_eNB_generate_RRCConnectionSetup(
|
||||
)
|
||||
//-----------------------------------------------------------------------------
|
||||
{
|
||||
boolean_t is_mtc = ctxt_pP->brOption;
|
||||
bool is_mtc = ctxt_pP->brOption;
|
||||
LTE_LogicalChannelConfig_t *SRB1_logicalChannelConfig; //,*SRB2_logicalChannelConfig;
|
||||
LTE_SRB_ToAddModList_t **SRB_configList;
|
||||
LTE_SRB_ToAddMod_t *SRB1_config;
|
||||
@@ -7284,7 +7281,7 @@ rrc_eNB_decode_ccch(
|
||||
LOG_E(RRC, "%s:%d:%s: rrc_eNB_get_next_free_ue_context returned NULL\n", __FILE__, __LINE__, __FUNCTION__);
|
||||
|
||||
if (ue_context_p != NULL) {
|
||||
ue_context_p->ue_context.Initialue_identity_s_TMSI.presence = TRUE;
|
||||
ue_context_p->ue_context.Initialue_identity_s_TMSI.presence = true;
|
||||
ue_context_p->ue_context.Initialue_identity_s_TMSI.mme_code = mme_code;
|
||||
ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi = m_tmsi;
|
||||
} else {
|
||||
@@ -8766,7 +8763,7 @@ void rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) {
|
||||
|
||||
if ((ctxt_pP->frame&127) == 0 && ctxt_pP->subframe ==0) {
|
||||
if (fd) {
|
||||
if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == TRUE) {
|
||||
if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == true) {
|
||||
fprintf(fd,"RRC UE rnti %x: S-TMSI %x failure timer %d/8\n",
|
||||
ue_context_p->ue_context.rnti,
|
||||
ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi,
|
||||
|
||||
@@ -84,23 +84,20 @@ rrc_eNB_process_GTPV1U_CREATE_TUNNEL_RESP(
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
boolean_t
|
||||
gtpv_data_req(
|
||||
const protocol_ctxt_t* const ctxt_pP,
|
||||
const rb_id_t rb_idP,
|
||||
const mui_t muiP,
|
||||
const confirm_t confirmP,
|
||||
const sdu_size_t sdu_sizeP,
|
||||
uint8_t* const buffer_pP,
|
||||
const pdcp_transmission_mode_t modeP,
|
||||
uint32_t task_id
|
||||
)
|
||||
bool gtpv_data_req(const protocol_ctxt_t* const ctxt_pP,
|
||||
const rb_id_t rb_idP,
|
||||
const mui_t muiP,
|
||||
const confirm_t confirmP,
|
||||
const sdu_size_t sdu_sizeP,
|
||||
uint8_t* const buffer_pP,
|
||||
const pdcp_transmission_mode_t modeP,
|
||||
uint32_t task_id)
|
||||
//------------------------------------------------------------------------------
|
||||
{
|
||||
if(sdu_sizeP == 0)
|
||||
{
|
||||
LOG_I(GTPU,"gtpv_data_req sdu_sizeP == 0");
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
LOG_D(GTPU,"gtpv_data_req ue rnti %x sdu_sizeP %d rb id %ld", ctxt_pP->rnti, sdu_sizeP, rb_idP);
|
||||
MessageDef *message_p;
|
||||
@@ -129,7 +126,7 @@ gtpv_data_req(
|
||||
GTPV1U_ENB_DATA_FORWARDING_IND (message_p).eNB_index = ctxt_pP->eNB_index;
|
||||
|
||||
itti_send_msg_to_task (TASK_DATA_FORWARDING, ctxt_pP->instance, message_p);
|
||||
return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
} else if (task_id == TASK_END_MARKER){
|
||||
|
||||
LOG_I(GTPU,"gtpv_data_req task_id = TASK_END_MARKER\n");
|
||||
@@ -152,23 +149,22 @@ gtpv_data_req(
|
||||
GTPV1U_ENB_END_MARKER_IND (message_p).eNB_index = ctxt_pP->eNB_index;
|
||||
|
||||
itti_send_msg_to_task (TASK_END_MARKER, ctxt_pP->instance, message_p);
|
||||
return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
}
|
||||
LOG_E(RRC, "Impossible state\n");
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean_t gtpv_data_req_new (
|
||||
protocol_ctxt_t *ctxt,
|
||||
const srb_flag_t srb_flagP,
|
||||
const rb_id_t rb_idP,
|
||||
const mui_t muiP,
|
||||
const confirm_t confirmP,
|
||||
const sdu_size_t sdu_buffer_sizeP,
|
||||
unsigned char *const sdu_buffer_pP,
|
||||
const pdcp_transmission_mode_t modeP,
|
||||
const uint32_t *sourceL2Id,
|
||||
const uint32_t *destinationL2Id) {
|
||||
bool gtpv_data_req_new(protocol_ctxt_t *ctxt,
|
||||
const srb_flag_t srb_flagP,
|
||||
const rb_id_t rb_idP,
|
||||
const mui_t muiP,
|
||||
const confirm_t confirmP,
|
||||
const sdu_size_t sdu_buffer_sizeP,
|
||||
unsigned char *const sdu_buffer_pP,
|
||||
const pdcp_transmission_mode_t modeP,
|
||||
const uint32_t *sourceL2Id,
|
||||
const uint32_t *destinationL2Id) {
|
||||
int task;
|
||||
|
||||
if (sdu_buffer_sizeP==0)
|
||||
|
||||
@@ -60,16 +60,13 @@ void rrc_eNB_send_GTPV1U_ENB_DELETE_TUNNEL_REQ(
|
||||
rrc_eNB_ue_context_t* ue_context_pP
|
||||
);
|
||||
|
||||
boolean_t
|
||||
gtpv_data_req(
|
||||
const protocol_ctxt_t* const ctxt_pP,
|
||||
const rb_id_t rb_idP,
|
||||
const mui_t muiP,
|
||||
const confirm_t confirmP,
|
||||
const sdu_size_t sdu_sizeP,
|
||||
uint8_t* const buffer_pP,
|
||||
const pdcp_transmission_mode_t modeP,
|
||||
uint32_t task_id
|
||||
);
|
||||
bool gtpv_data_req(const protocol_ctxt_t* const ctxt_pP,
|
||||
const rb_id_t rb_idP,
|
||||
const mui_t muiP,
|
||||
const confirm_t confirmP,
|
||||
const sdu_size_t sdu_sizeP,
|
||||
uint8_t* const buffer_pP,
|
||||
const pdcp_transmission_mode_t modeP,
|
||||
uint32_t task_id);
|
||||
|
||||
#endif /* RRC_ENB_GTPV1U_H_ */
|
||||
|
||||
@@ -402,15 +402,13 @@ static e_LTE_SecurityAlgorithmConfig__integrityProtAlgorithm rrc_eNB_select_inte
|
||||
*\param mod_id Instance ID of eNB.
|
||||
*\param ue_index Instance ID of UE in the eNB.
|
||||
*\param security_capabilities The security capabilities received from S1AP.
|
||||
*\return TRUE if at least one algorithm has been changed else FALSE.
|
||||
*\return true if at least one algorithm has been changed else false.
|
||||
*/
|
||||
int
|
||||
rrc_eNB_process_security(
|
||||
const protocol_ctxt_t *const ctxt_pP,
|
||||
rrc_eNB_ue_context_t *const ue_context_pP,
|
||||
security_capabilities_t *security_capabilities_pP
|
||||
) {
|
||||
boolean_t changed = FALSE;
|
||||
rrc_eNB_process_security(const protocol_ctxt_t *const ctxt_pP,
|
||||
rrc_eNB_ue_context_t *const ue_context_pP,
|
||||
security_capabilities_t *security_capabilities_pP) {
|
||||
bool changed = false;
|
||||
LTE_CipheringAlgorithm_r12_t cipheringAlgorithm;
|
||||
e_LTE_SecurityAlgorithmConfig__integrityProtAlgorithm integrityProtAlgorithm;
|
||||
/* Save security parameters */
|
||||
@@ -428,14 +426,14 @@ rrc_eNB_process_security(
|
||||
|
||||
if (ue_context_pP->ue_context.ciphering_algorithm != cipheringAlgorithm) {
|
||||
ue_context_pP->ue_context.ciphering_algorithm = cipheringAlgorithm;
|
||||
changed = TRUE;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
integrityProtAlgorithm = rrc_eNB_select_integrity (ue_context_pP->ue_context.security_capabilities.integrity_algorithms);
|
||||
|
||||
if (ue_context_pP->ue_context.integrity_algorithm != integrityProtAlgorithm) {
|
||||
ue_context_pP->ue_context.integrity_algorithm = integrityProtAlgorithm;
|
||||
changed = TRUE;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
LOG_I (RRC, "[eNB %d][UE %x] Selected security algorithms (%p): %lx, %x, %s\n",
|
||||
@@ -532,7 +530,7 @@ rrc_pdcp_config_security(
|
||||
pdcp_p,
|
||||
DCCH,
|
||||
DCCH+2,
|
||||
(send_security_mode_command == TRUE) ?
|
||||
(send_security_mode_command == true) ?
|
||||
0 | (ue_context_pP->ue_context.integrity_algorithm << 4) :
|
||||
(ue_context_pP->ue_context.ciphering_algorithm ) |
|
||||
(ue_context_pP->ue_context.integrity_algorithm << 4),
|
||||
@@ -960,12 +958,12 @@ int rrc_eNB_process_S1AP_INITIAL_CONTEXT_SETUP_REQ(MessageDef *msg_p, const char
|
||||
ue_context_p,
|
||||
S1AP_INITIAL_CONTEXT_SETUP_REQ(msg_p).security_key);
|
||||
{
|
||||
uint8_t send_security_mode_command = TRUE;
|
||||
uint8_t send_security_mode_command = true;
|
||||
#ifndef EXMIMO_IOT
|
||||
|
||||
if ((ue_context_p->ue_context.ciphering_algorithm == SecurityAlgorithmConfig__cipheringAlgorithm_eea0)
|
||||
&& (ue_context_p->ue_context.integrity_algorithm == INTEGRITY_ALGORITHM_NONE)) {
|
||||
send_security_mode_command = FALSE;
|
||||
send_security_mode_command = false;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -978,7 +976,7 @@ int rrc_eNB_process_S1AP_INITIAL_CONTEXT_SETUP_REQ(MessageDef *msg_p, const char
|
||||
rrc_eNB_generate_SecurityModeCommand (
|
||||
&ctxt,
|
||||
ue_context_p);
|
||||
send_security_mode_command = FALSE;
|
||||
send_security_mode_command = false;
|
||||
// apply ciphering after RRC security command mode
|
||||
rrc_pdcp_config_security(
|
||||
&ctxt,
|
||||
@@ -1414,19 +1412,19 @@ int rrc_eNB_process_S1AP_E_RAB_MODIFY_REQ(MessageDef *msg_p, const char *msg_nam
|
||||
/* Save e RAB information for later */
|
||||
{
|
||||
int j;
|
||||
boolean_t is_treated[S1AP_MAX_E_RAB] = {FALSE};
|
||||
bool is_treated[S1AP_MAX_E_RAB] = {false};
|
||||
uint8_t nb_of_failed_e_rabs = 0;
|
||||
|
||||
// keep the previous bearer
|
||||
// the index for the rec
|
||||
for (i = 0; i < S1AP_E_RAB_MODIFY_REQ (msg_p).nb_e_rabs_tomodify; i++) {
|
||||
if (is_treated[i] == TRUE) {
|
||||
if (is_treated[i] == true) {
|
||||
// already treated
|
||||
continue;
|
||||
}
|
||||
|
||||
for (j = i+1; j < S1AP_E_RAB_MODIFY_REQ (msg_p).nb_e_rabs_tomodify; j++) {
|
||||
if (is_treated[j] == FALSE &&
|
||||
if (is_treated[j] == false &&
|
||||
S1AP_E_RAB_MODIFY_REQ(msg_p).e_rab_modify_params[j].e_rab_id == S1AP_E_RAB_MODIFY_REQ(msg_p).e_rab_modify_params[i].e_rab_id) {
|
||||
// handle multiple E-RAB ID
|
||||
ue_context_p->ue_context.modify_e_rab[j].status = E_RAB_STATUS_NEW;
|
||||
@@ -1434,12 +1432,12 @@ int rrc_eNB_process_S1AP_E_RAB_MODIFY_REQ(MessageDef *msg_p, const char *msg_nam
|
||||
ue_context_p->ue_context.modify_e_rab[j].cause = S1AP_CAUSE_RADIO_NETWORK;
|
||||
ue_context_p->ue_context.modify_e_rab[j].cause_value = 31;//S1ap_CauseRadioNetwork_multiple_E_RAB_ID_instances;
|
||||
nb_of_failed_e_rabs++;
|
||||
is_treated[i] = TRUE;
|
||||
is_treated[j] = TRUE;
|
||||
is_treated[i] = true;
|
||||
is_treated[j] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_treated[i] == TRUE) {
|
||||
if (is_treated[i] == true) {
|
||||
// handle multiple E-RAB ID
|
||||
ue_context_p->ue_context.modify_e_rab[i].status = E_RAB_STATUS_NEW;
|
||||
ue_context_p->ue_context.modify_e_rab[i].param.e_rab_id = S1AP_E_RAB_MODIFY_REQ(msg_p).e_rab_modify_params[i].e_rab_id;
|
||||
@@ -1456,7 +1454,7 @@ int rrc_eNB_process_S1AP_E_RAB_MODIFY_REQ(MessageDef *msg_p, const char *msg_nam
|
||||
ue_context_p->ue_context.modify_e_rab[i].cause = S1AP_CAUSE_NAS;
|
||||
ue_context_p->ue_context.modify_e_rab[i].cause_value = 3;//S1ap_CauseNas_unspecified;
|
||||
nb_of_failed_e_rabs++;
|
||||
is_treated[i] = TRUE;
|
||||
is_treated[i] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1474,19 +1472,19 @@ int rrc_eNB_process_S1AP_E_RAB_MODIFY_REQ(MessageDef *msg_p, const char *msg_nam
|
||||
ue_context_p->ue_context.modify_e_rab[i].param.nas_pdu.buffer = S1AP_E_RAB_MODIFY_REQ(msg_p).e_rab_modify_params[i].nas_pdu.buffer;
|
||||
ue_context_p->ue_context.modify_e_rab[i].param.sgw_addr = ue_context_p->ue_context.e_rab[j].param.sgw_addr;
|
||||
ue_context_p->ue_context.modify_e_rab[i].param.gtp_teid = ue_context_p->ue_context.e_rab[j].param.gtp_teid;
|
||||
is_treated[i] = TRUE;
|
||||
is_treated[i] = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_treated[i] == FALSE) {
|
||||
if (is_treated[i] == false) {
|
||||
// handle Unknown E-RAB ID
|
||||
ue_context_p->ue_context.modify_e_rab[i].status = E_RAB_STATUS_NEW;
|
||||
ue_context_p->ue_context.modify_e_rab[i].param.e_rab_id = S1AP_E_RAB_MODIFY_REQ(msg_p).e_rab_modify_params[i].e_rab_id;
|
||||
ue_context_p->ue_context.modify_e_rab[i].cause = S1AP_CAUSE_RADIO_NETWORK;
|
||||
ue_context_p->ue_context.modify_e_rab[i].cause_value = 30;//S1ap_CauseRadioNetwork_unknown_E_RAB_ID;
|
||||
nb_of_failed_e_rabs++;
|
||||
is_treated[i] = TRUE;
|
||||
is_treated[i] = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1824,8 +1822,8 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance
|
||||
uint8_t i = 0;
|
||||
|
||||
for (i = 0; i < MAX_MOBILES_PER_ENB; i++) {
|
||||
if ((UE_PF_PO[CC_id][i].enable_flag == TRUE && UE_PF_PO[CC_id][i].ue_index_value == (uint16_t)(S1AP_PAGING_IND(msg_p).ue_index_value))
|
||||
|| (UE_PF_PO[CC_id][i].enable_flag != TRUE)) {
|
||||
if ((UE_PF_PO[CC_id][i].enable_flag == true && UE_PF_PO[CC_id][i].ue_index_value == (uint16_t)(S1AP_PAGING_IND(msg_p).ue_index_value))
|
||||
|| (UE_PF_PO[CC_id][i].enable_flag != true)) {
|
||||
/* set T = min(Tc,Tue) */
|
||||
UE_PF_PO[CC_id][i].T = T;
|
||||
/* set UE_ID */
|
||||
@@ -1845,12 +1843,12 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance
|
||||
UE_PF_PO[CC_id][i].PO = (frame_type==FDD) ? (4*(i_s&1)+(5*(i_s>>1))) : ((i_s&1)+(5*(i_s>>1)));
|
||||
}
|
||||
|
||||
if (UE_PF_PO[CC_id][i].enable_flag == TRUE) {
|
||||
if (UE_PF_PO[CC_id][i].enable_flag == true) {
|
||||
//paging exist UE log
|
||||
LOG_D(RRC,"[eNB %ld] CC_id %d In S1AP_PAGING_IND: Update exist UE %d, T %d, PF %d, PO %d\n", instance, CC_id, UE_PF_PO[CC_id][i].ue_index_value, T, UE_PF_PO[CC_id][i].PF_min, UE_PF_PO[CC_id][i].PO);
|
||||
} else {
|
||||
/* set enable_flag */
|
||||
UE_PF_PO[CC_id][i].enable_flag = TRUE;
|
||||
UE_PF_PO[CC_id][i].enable_flag = true;
|
||||
//paging new UE log
|
||||
LOG_D(RRC,"[eNB %ld] CC_id %d In S1AP_PAGING_IND: Insert a new UE %d, T %d, PF %d, PO %d\n", instance, CC_id, UE_PF_PO[CC_id][i].ue_index_value, T, UE_PF_PO[CC_id][i].PF_min, UE_PF_PO[CC_id][i].PO);
|
||||
}
|
||||
|
||||
@@ -457,7 +457,7 @@ mac_rrc_data_ind(
|
||||
const uint8_t *sduP,
|
||||
const sdu_size_t sdu_lenP,
|
||||
const uint8_t mbsfn_sync_areaP,
|
||||
const boolean_t brOption
|
||||
const bool brOption
|
||||
);
|
||||
|
||||
int8_t
|
||||
@@ -685,7 +685,7 @@ extern RRC_release_list_t rrc_release_info;
|
||||
extern pthread_mutex_t lock_ue_freelist;
|
||||
|
||||
void remove_UE_from_freelist(module_id_t mod_id, rnti_t rnti);
|
||||
void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, boolean_t removeFlag);
|
||||
void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, bool removeFlag);
|
||||
void release_UE_in_freeList(module_id_t mod_id);
|
||||
|
||||
/** @}*/
|
||||
|
||||
@@ -168,7 +168,7 @@ nr_rrc_data_req(
|
||||
{
|
||||
if(sdu_sizeP == 255) {
|
||||
LOG_D(RRC,"sdu_sizeP == 255");
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
MessageDef *message_p;
|
||||
@@ -204,7 +204,7 @@ nr_rrc_data_req(
|
||||
if (ctxt_pP->enb_flag && NODE_IS_CU(RC.nrrrc[ctxt_pP->module_id]->node_type))
|
||||
pdcp_run(ctxt_pP);
|
||||
|
||||
return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
}
|
||||
|
||||
uint16_t mac_rrc_nr_data_req(const module_id_t Mod_idP,
|
||||
@@ -315,7 +315,7 @@ int8_t nr_mac_rrc_data_ind(const module_id_t module_idP,
|
||||
const rb_id_t srb_idP,
|
||||
const uint8_t *sduP,
|
||||
const sdu_size_t sdu_lenP,
|
||||
const boolean_t brOption) {
|
||||
const bool brOption) {
|
||||
|
||||
if (NODE_IS_DU(RC.nrrrc[module_idP]->node_type)) {
|
||||
LOG_W(RRC,"[DU %d][RAPROC] Received SDU for CCCH on SRB %ld length %d for UE id %d RNTI %x \n",
|
||||
|
||||
@@ -173,7 +173,7 @@ typedef struct UE_RRC_INFO_NR_s {
|
||||
} __attribute__ ((__packed__)) NR_UE_RRC_INFO;
|
||||
|
||||
typedef struct UE_S_TMSI_NR_s {
|
||||
boolean_t presence;
|
||||
bool presence;
|
||||
uint16_t amf_set_id;
|
||||
uint8_t amf_pointer;
|
||||
uint32_t fiveg_tmsi;
|
||||
|
||||
@@ -174,18 +174,16 @@ int8_t nr_mac_rrc_bwp_switch_req(const module_id_t module_idP,
|
||||
const int dl_bwp_id,
|
||||
const int ul_bwp_id);
|
||||
|
||||
int8_t nr_mac_rrc_data_ind(
|
||||
const module_id_t module_idP,
|
||||
const int CC_id,
|
||||
const frame_t frameP,
|
||||
const sub_frame_t sub_frameP,
|
||||
const int UE_id,
|
||||
const rnti_t rntiP,
|
||||
const rb_id_t srb_idP,
|
||||
const uint8_t *sduP,
|
||||
const sdu_size_t sdu_lenP,
|
||||
const boolean_t brOption
|
||||
);
|
||||
int8_t nr_mac_rrc_data_ind(const module_id_t module_idP,
|
||||
const int CC_id,
|
||||
const frame_t frameP,
|
||||
const sub_frame_t sub_frameP,
|
||||
const int UE_id,
|
||||
const rnti_t rntiP,
|
||||
const rb_id_t srb_idP,
|
||||
const uint8_t *sduP,
|
||||
const sdu_size_t sdu_lenP,
|
||||
const bool brOption);
|
||||
|
||||
int nr_rrc_reconfiguration_req(rrc_gNB_ue_context_t *const ue_context_pP,
|
||||
protocol_ctxt_t *const ctxt_pP,
|
||||
@@ -219,16 +217,15 @@ rlc_op_status_t nr_rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt
|
||||
const LTE_PMCH_InfoList_r9_t * const pmch_InfoList_r9_pP,
|
||||
struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_bearer2add_list);
|
||||
|
||||
boolean_t nr_rrc_pdcp_config_asn1_req(
|
||||
const protocol_ctxt_t *const ctxt_pP,
|
||||
NR_SRB_ToAddModList_t *const srb2add_list,
|
||||
NR_DRB_ToAddModList_t *const drb2add_list,
|
||||
NR_DRB_ToReleaseList_t *const drb2release_list,
|
||||
const uint8_t security_modeP,
|
||||
uint8_t *const kRRCenc,
|
||||
uint8_t *const kRRCint,
|
||||
uint8_t *const kUPenc,
|
||||
uint8_t *const kUPint
|
||||
,LTE_PMCH_InfoList_r9_t *pmch_InfoList_r9
|
||||
,rb_id_t *const defaultDRB,
|
||||
struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_bearer2add_list);
|
||||
bool nr_rrc_pdcp_config_asn1_req(const protocol_ctxt_t *const ctxt_pP,
|
||||
NR_SRB_ToAddModList_t *const srb2add_list,
|
||||
NR_DRB_ToAddModList_t *const drb2add_list,
|
||||
NR_DRB_ToReleaseList_t *const drb2release_list,
|
||||
const uint8_t security_modeP,
|
||||
uint8_t *const kRRCenc,
|
||||
uint8_t *const kRRCint,
|
||||
uint8_t *const kUPenc,
|
||||
uint8_t *const kUPint,
|
||||
LTE_PMCH_InfoList_r9_t *pmch_InfoList_r9,
|
||||
rb_id_t *const defaultDRB,
|
||||
struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_bearer2add_list);
|
||||
|
||||
+20
-21
@@ -116,16 +116,16 @@ uint8_t first_rrcreconfiguration = 0;
|
||||
///---------------------------------------------------------------------------------------------------------------///
|
||||
///---------------------------------------------------------------------------------------------------------------///
|
||||
|
||||
boolean_t DURecvCb( protocol_ctxt_t *ctxt_pP,
|
||||
const srb_flag_t srb_flagP,
|
||||
const rb_id_t rb_idP,
|
||||
const mui_t muiP,
|
||||
const confirm_t confirmP,
|
||||
const sdu_size_t sdu_buffer_sizeP,
|
||||
unsigned char *const sdu_buffer_pP,
|
||||
const pdcp_transmission_mode_t modeP,
|
||||
const uint32_t *sourceL2Id,
|
||||
const uint32_t *destinationL2Id) {
|
||||
bool DURecvCb(protocol_ctxt_t *ctxt_pP,
|
||||
const srb_flag_t srb_flagP,
|
||||
const rb_id_t rb_idP,
|
||||
const mui_t muiP,
|
||||
const confirm_t confirmP,
|
||||
const sdu_size_t sdu_buffer_sizeP,
|
||||
unsigned char *const sdu_buffer_pP,
|
||||
const pdcp_transmission_mode_t modeP,
|
||||
const uint32_t *sourceL2Id,
|
||||
const uint32_t *destinationL2Id) {
|
||||
// The buffer comes from the stack in gtp-u thread, we have a make a separate buffer to enqueue in a inter-thread message queue
|
||||
mem_block_t *sdu=get_free_mem_block(sdu_buffer_sizeP, __func__);
|
||||
memcpy(sdu->data, sdu_buffer_pP, sdu_buffer_sizeP);
|
||||
@@ -917,7 +917,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
|
||||
sdap_config->sdap_HeaderDL = NR_SDAP_Config__sdap_HeaderDL_absent;
|
||||
sdap_config->sdap_HeaderUL = NR_SDAP_Config__sdap_HeaderUL_absent;
|
||||
}
|
||||
sdap_config->defaultDRB = TRUE;
|
||||
sdap_config->defaultDRB = true;
|
||||
sdap_config->mappedQoS_FlowsToAdd = calloc(1, sizeof(struct NR_SDAP_Config__mappedQoS_FlowsToAdd));
|
||||
memset(sdap_config->mappedQoS_FlowsToAdd, 0, sizeof(struct NR_SDAP_Config__mappedQoS_FlowsToAdd));
|
||||
|
||||
@@ -1826,7 +1826,7 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
|
||||
ue_context_pP->ue_context.rnti = ctxt_pP->rnti;
|
||||
|
||||
if (AMF_MODE_ENABLED) {
|
||||
uint8_t send_security_mode_command = FALSE;
|
||||
uint8_t send_security_mode_command = false;
|
||||
nr_rrc_pdcp_config_security(
|
||||
ctxt_pP,
|
||||
ue_context_pP,
|
||||
@@ -2113,7 +2113,7 @@ int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
|
||||
}
|
||||
|
||||
if (ue_context_p != NULL) {
|
||||
ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence = TRUE;
|
||||
ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence = true;
|
||||
ue_context_p->ue_context.ng_5G_S_TMSI_Part1 = s_tmsi_part1;
|
||||
}
|
||||
}
|
||||
@@ -2590,7 +2590,7 @@ rrc_gNB_decode_dcch(
|
||||
fiveg_s_TMSI, fiveg_s_TMSI >> 38, fiveg_s_TMSI >> 38,
|
||||
(fiveg_s_TMSI >> 32) & 0x3F, (fiveg_s_TMSI >> 32) & 0x3F,
|
||||
(uint32_t)fiveg_s_TMSI);
|
||||
if (ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence == TRUE) {
|
||||
if (ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence == true) {
|
||||
ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.amf_set_id = fiveg_s_TMSI >> 38;
|
||||
ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.amf_pointer = (fiveg_s_TMSI >> 32) & 0x3F;
|
||||
ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.fiveg_tmsi = (uint32_t)fiveg_s_TMSI;
|
||||
@@ -3235,7 +3235,6 @@ static int rrc_process_DU_DL(MessageDef *msg_p, const char *msg_name, instance_
|
||||
|
||||
LOG_I(F1AP, "Received DL RRC Transfer on srb_id %ld\n", req->srb_id);
|
||||
// rlc_op_status_t rlc_status;
|
||||
// boolean_t ret = TRUE;
|
||||
|
||||
//LOG_I(F1AP, "PRRCContainer size %lu:", ie->value.choice.RRCContainer.size);
|
||||
//for (int i = 0; i < ie->value.choice.RRCContainer.size; i++)
|
||||
@@ -3260,23 +3259,23 @@ static int rrc_process_DU_DL(MessageDef *msg_p, const char *msg_name, instance_
|
||||
// switch (rlc_status) {
|
||||
// case RLC_OP_STATUS_OK:
|
||||
// //LOG_I(F1AP, "Data sending request over RLC succeeded!\n");
|
||||
// ret=TRUE;
|
||||
// ret=true;
|
||||
// break;
|
||||
// case RLC_OP_STATUS_BAD_PARAMETER:
|
||||
// LOG_W(F1AP, "Data sending request over RLC failed with 'Bad Parameter' reason!\n");
|
||||
// ret= FALSE;
|
||||
// ret= false;
|
||||
// break;
|
||||
// case RLC_OP_STATUS_INTERNAL_ERROR:
|
||||
// LOG_W(F1AP, "Data sending request over RLC failed with 'Internal Error' reason!\n");
|
||||
// ret= FALSE;
|
||||
// ret= false;
|
||||
// break;
|
||||
// case RLC_OP_STATUS_OUT_OF_RESSOURCES:
|
||||
// LOG_W(F1AP, "Data sending request over RLC failed with 'Out of Resources' reason!\n");
|
||||
// ret= FALSE;
|
||||
// ret= false;
|
||||
// break;
|
||||
// default:
|
||||
// LOG_W(F1AP, "RLC returned an unknown status code after PDCP placed the order to send some data (Status Code:%d)\n", rlc_status);
|
||||
// ret= FALSE;
|
||||
// ret= false;
|
||||
// break;
|
||||
// } // switch case
|
||||
// return ret;
|
||||
@@ -3940,7 +3939,7 @@ void nr_rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) {
|
||||
gNB_MAC_INST *nrmac=RC.nrmac[ctxt_pP->module_id]; //WHAT A BEAUTIFULL RACE CONDITION !!!
|
||||
|
||||
if (fd) {
|
||||
if (ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence == TRUE) {
|
||||
if (ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.presence == true) {
|
||||
fprintf(fd,"NR RRC UE rnti %x: S-TMSI %x failure timer %d/8\n",
|
||||
ue_context_p->ue_id_rnti,
|
||||
ue_context_p->ue_context.Initialue_identity_5g_s_TMSI.fiveg_tmsi,
|
||||
|
||||
@@ -708,7 +708,7 @@ rrc_gNB_process_security(
|
||||
rrc_gNB_ue_context_t *const ue_context_pP,
|
||||
ngap_security_capabilities_t *security_capabilities_pP
|
||||
) {
|
||||
boolean_t changed = FALSE;
|
||||
bool changed = false;
|
||||
NR_CipheringAlgorithm_t cipheringAlgorithm;
|
||||
e_NR_IntegrityProtAlgorithm integrityProtAlgorithm;
|
||||
/* Save security parameters */
|
||||
@@ -726,14 +726,14 @@ rrc_gNB_process_security(
|
||||
|
||||
if (ue_context_pP->ue_context.ciphering_algorithm != cipheringAlgorithm) {
|
||||
ue_context_pP->ue_context.ciphering_algorithm = cipheringAlgorithm;
|
||||
changed = TRUE;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
integrityProtAlgorithm = rrc_gNB_select_integrity(ctxt_pP, ue_context_pP->ue_context.security_capabilities.nRintegrity_algorithms);
|
||||
|
||||
if (ue_context_pP->ue_context.integrity_algorithm != integrityProtAlgorithm) {
|
||||
ue_context_pP->ue_context.integrity_algorithm = integrityProtAlgorithm;
|
||||
changed = TRUE;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
LOG_I (NR_RRC, "[gNB %d][UE %x] Selected security algorithms (%p): %lx, %x, %s\n",
|
||||
@@ -1126,17 +1126,17 @@ rrc_gNB_process_NGAP_PDUSESSION_MODIFY_REQ(
|
||||
ue_context_p->ue_context.gNB_ue_ngap_id = gNB_ue_ngap_id;
|
||||
{
|
||||
int j;
|
||||
boolean_t is_treated[NGAP_MAX_PDUSESSION] = {FALSE};
|
||||
bool is_treated[NGAP_MAX_PDUSESSION] = {false};
|
||||
uint8_t nb_of_failed_pdusessions = 0;
|
||||
|
||||
for (i = 0; i < nb_pdusessions_tomodify; i++) {
|
||||
if (is_treated[i] == TRUE) {
|
||||
if (is_treated[i] == true) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//Check if same PDU session ID to handle multiple pdu sessions
|
||||
for (j = i+1; j < nb_pdusessions_tomodify; j++) {
|
||||
if (is_treated[j] == FALSE &&
|
||||
if (is_treated[j] == false &&
|
||||
NGAP_PDUSESSION_MODIFY_REQ(msg_p).pdusession_modify_params[j].pdusession_id ==
|
||||
NGAP_PDUSESSION_MODIFY_REQ(msg_p).pdusession_modify_params[i].pdusession_id) {
|
||||
// handle multiple pdu session id
|
||||
@@ -1147,12 +1147,12 @@ rrc_gNB_process_NGAP_PDUSESSION_MODIFY_REQ(
|
||||
ue_context_p->ue_context.modify_pdusession[j].cause = NGAP_CAUSE_RADIO_NETWORK;
|
||||
ue_context_p->ue_context.modify_pdusession[j].cause_value = NGAP_CauseRadioNetwork_multiple_PDU_session_ID_instances;
|
||||
nb_of_failed_pdusessions++;
|
||||
is_treated[i] = TRUE;
|
||||
is_treated[j] = TRUE;
|
||||
is_treated[i] = true;
|
||||
is_treated[j] = true;
|
||||
}
|
||||
}
|
||||
// handle multiple pdu session id case
|
||||
if (is_treated[i] == TRUE) {
|
||||
if (is_treated[i] == true) {
|
||||
LOG_D(NR_RRC, "handle multiple pdu session id \n");
|
||||
ue_context_p->ue_context.modify_pdusession[i].status = PDU_SESSION_STATUS_NEW;
|
||||
ue_context_p->ue_context.modify_pdusession[i].param.pdusession_id =
|
||||
@@ -1195,13 +1195,13 @@ rrc_gNB_process_NGAP_PDUSESSION_MODIFY_REQ(
|
||||
ue_context_p->ue_context.modify_pdusession[i].param.gtp_teid =
|
||||
ue_context_p->ue_context.pduSession[j].param.gtp_teid;
|
||||
|
||||
is_treated[i] = TRUE;
|
||||
is_treated[i] = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// handle Unknown pdu session ID
|
||||
if (is_treated[i] == FALSE) {
|
||||
if (is_treated[i] == false) {
|
||||
LOG_D(NR_RRC, "handle Unknown pdu session ID \n");
|
||||
ue_context_p->ue_context.modify_pdusession[i].status = PDU_SESSION_STATUS_NEW;
|
||||
ue_context_p->ue_context.modify_pdusession[i].param.pdusession_id =
|
||||
@@ -1209,7 +1209,7 @@ rrc_gNB_process_NGAP_PDUSESSION_MODIFY_REQ(
|
||||
ue_context_p->ue_context.modify_pdusession[i].cause = NGAP_CAUSE_RADIO_NETWORK;
|
||||
ue_context_p->ue_context.modify_pdusession[i].cause_value = NGAP_CauseRadioNetwork_unknown_PDU_session_ID;
|
||||
nb_of_failed_pdusessions++;
|
||||
is_treated[i] = TRUE;
|
||||
is_treated[i] = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,9 +47,6 @@
|
||||
#include "LAYER2/nr_rlc/nr_rlc_oai_api.h"
|
||||
#include "nr_rrc_config.h"
|
||||
|
||||
#define false 0
|
||||
#define true 1
|
||||
|
||||
void fix_servingcellconfigdedicated(NR_ServingCellConfig_t *scd) {
|
||||
|
||||
int b = 0;
|
||||
|
||||
@@ -181,6 +181,6 @@ rrc_data_req_nr_ue(
|
||||
TASK_PDCP_UE,
|
||||
ctxt_pP->instance,
|
||||
message_p);
|
||||
return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
return true; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.
|
||||
|
||||
}
|
||||
|
||||
@@ -2014,7 +2014,7 @@ nr_rrc_ue_establish_srb2(
|
||||
int i, cnt;
|
||||
|
||||
if( radioBearerConfig->srb3_ToRelease != NULL){
|
||||
if( *radioBearerConfig->srb3_ToRelease == TRUE){
|
||||
if( *radioBearerConfig->srb3_ToRelease == true){
|
||||
//TODO (release the PDCP entity and the srb-Identity of the SRB3.)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user