message-transfer-update
This commit is contained in:
committed by
LouisAdrien
parent
cd6b19fa53
commit
7e088701e1
@@ -47,6 +47,7 @@
|
|||||||
#include "common/ran_context.h"
|
#include "common/ran_context.h"
|
||||||
|
|
||||||
#include "rrc_eNB_UE_context.h"
|
#include "rrc_eNB_UE_context.h"
|
||||||
|
#include "asn1_msg.h"
|
||||||
|
|
||||||
// undefine C_RNTI from
|
// undefine C_RNTI from
|
||||||
// openair1/PHY/LTE_TRANSPORT/transport_common.h which
|
// openair1/PHY/LTE_TRANSPORT/transport_common.h which
|
||||||
@@ -401,8 +402,38 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
for (i = 0; i< 8; i++){
|
for (i = 0; i< 8; i++){
|
||||||
DRB2LCHAN[i] = 0;
|
DRB2LCHAN[i] = 0;
|
||||||
}
|
}
|
||||||
if (rrcConnectionReconfiguration_r8->radioResourceConfigDedicated->mac_MainConfig)
|
if (rrcConnectionReconfiguration_r8->radioResourceConfigDedicated->mac_MainConfig) {
|
||||||
mac_MainConfig = &rrcConnectionReconfiguration_r8->radioResourceConfigDedicated->mac_MainConfig->choice.explicitValue;
|
mac_MainConfig = &rrcConnectionReconfiguration_r8->radioResourceConfigDedicated->mac_MainConfig->choice.explicitValue;
|
||||||
|
int UE_id = find_UE_id(ctxt.module_id, ctxt.rnti);
|
||||||
|
if (UE_id != -1) {
|
||||||
|
eNB_RRC_INST *rrc_inst = RC.rrc[ctxt.module_id];
|
||||||
|
uint8_t cc_id = ue_context_p->ue_context.primaryCC_id;
|
||||||
|
eNB_MAC_INST *mac = RC.mac[ctxt.module_id];
|
||||||
|
UE_list_t *UE_list = &(mac->UE_list);
|
||||||
|
|
||||||
|
if (rrc_inst->carrier[cc_id].sib1->tdd_Config == NULL &&
|
||||||
|
UE_list->UE_template[cc_id][UE_id].rach_resource_type == 0) {
|
||||||
|
if (cc_id < MAX_NUM_CCs) {
|
||||||
|
LTE_UE_EUTRA_Capability_t *UEcap = ue_context_p->ue_context.UE_Capability;
|
||||||
|
mac_MainConfig->drx_Config = do_DrxConfig(cc_id,
|
||||||
|
&rrc_inst->configuration,
|
||||||
|
UEcap);
|
||||||
|
if (mac_MainConfig->drx_Config == NULL) {
|
||||||
|
LOG_E(F1AP, "drx_Configuration parameter is NULL, cannot configure local UE parameters\n");
|
||||||
|
} else {
|
||||||
|
/* Set timers and thresholds values in local MAC context of UE */
|
||||||
|
eNB_Config_Local_DRX(ctxt.module_id, ctxt.rnti, mac_MainConfig->drx_Config);
|
||||||
|
LOG_D(F1AP, "DRX configured in mac main config for RRC Connection Reconfiguration\n");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
LOG_E(F1AP, "Invalid CC_id for DRX configuration\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else { // UE_id invalid
|
||||||
|
LOG_E(F1AP, "Invalid UE_id found!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LTE_MeasGapConfig_t *measGapConfig = NULL;
|
LTE_MeasGapConfig_t *measGapConfig = NULL;
|
||||||
struct LTE_PhysicalConfigDedicated* physicalConfigDedicated = rrcConnectionReconfiguration_r8->radioResourceConfigDedicated->physicalConfigDedicated;
|
struct LTE_PhysicalConfigDedicated* physicalConfigDedicated = rrcConnectionReconfiguration_r8->radioResourceConfigDedicated->physicalConfigDedicated;
|
||||||
rrc_rlc_config_asn1_req(
|
rrc_rlc_config_asn1_req(
|
||||||
@@ -602,7 +633,9 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance, const f1ap_ul_rrc_message_t *msg) {
|
int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
||||||
|
const f1ap_ul_rrc_message_t *msg)
|
||||||
|
{
|
||||||
const rnti_t rnti = msg->rnti;
|
const rnti_t rnti = msg->rnti;
|
||||||
|
|
||||||
F1AP_F1AP_PDU_t pdu;
|
F1AP_F1AP_PDU_t pdu;
|
||||||
@@ -703,6 +736,7 @@ int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance, const f1ap_ul_rrc_messa
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case LTE_UL_DCCH_MessageType__c1_PR_rrcConnectionReconfigurationComplete:
|
case LTE_UL_DCCH_MessageType__c1_PR_rrcConnectionReconfigurationComplete:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LTE_UL_DCCH_MessageType__c1_PR_rrcConnectionReestablishmentComplete:
|
case LTE_UL_DCCH_MessageType__c1_PR_rrcConnectionReestablishmentComplete:
|
||||||
@@ -715,9 +749,16 @@ int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance, const f1ap_ul_rrc_messa
|
|||||||
}else {
|
}else {
|
||||||
LOG_I(F1AP, "Processing RRCConnectionSetupComplete UE %x\n", rnti);
|
LOG_I(F1AP, "Processing RRCConnectionSetupComplete UE %x\n", rnti);
|
||||||
ue_context_p->ue_context.Status = RRC_CONNECTED;
|
ue_context_p->ue_context.Status = RRC_CONNECTED;
|
||||||
}
|
|
||||||
|
int UE_id_mac = find_UE_id(instance, rnti);
|
||||||
|
UE_sched_ctrl_t *UE_scheduling_control = &(RC.mac[instance]->UE_list.UE_sched_ctrl[UE_id_mac]);
|
||||||
|
if (UE_scheduling_control->cdrx_waiting_ack == TRUE) {
|
||||||
|
UE_scheduling_control->cdrx_waiting_ack = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LTE_UL_DCCH_MessageType__c1_PR_securityModeComplete:
|
case LTE_UL_DCCH_MessageType__c1_PR_securityModeComplete:
|
||||||
LOG_I(F1AP, "[MSG] RRC securityModeComplete \n");
|
LOG_I(F1AP, "[MSG] RRC securityModeComplete \n");
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -3202,11 +3202,11 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
|
|||||||
mac_MainConfig->phr_Config->choice.setup.dl_PathlossChange = LTE_MAC_MainConfig__phr_Config__setup__dl_PathlossChange_dB3; // Value dB1 =1 dB, dB3 = 3 dB
|
mac_MainConfig->phr_Config->choice.setup.dl_PathlossChange = LTE_MAC_MainConfig__phr_Config__setup__dl_PathlossChange_dB3; // Value dB1 =1 dB, dB3 = 3 dB
|
||||||
|
|
||||||
mac_MainConfig->drx_Config = NULL;
|
mac_MainConfig->drx_Config = NULL;
|
||||||
|
rnti_t rnti = ue_context_pP->ue_id_rnti;
|
||||||
|
module_id_t module_id = ctxt_pP->module_id;
|
||||||
if (!NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type)) {
|
if (!NODE_IS_CU(RC.rrc[ctxt_pP->module_id]->node_type)) {
|
||||||
/* CDRX Configuration */
|
/* CDRX Configuration */
|
||||||
// Need to check if UE is a BR UE
|
// Need to check if UE is a BR UE
|
||||||
rnti_t rnti = ue_context_pP->ue_id_rnti;
|
|
||||||
module_id_t module_id = ctxt_pP->module_id;
|
|
||||||
int UE_id = find_UE_id(module_id, rnti);
|
int UE_id = find_UE_id(module_id, rnti);
|
||||||
|
|
||||||
if (UE_id != -1) {
|
if (UE_id != -1) {
|
||||||
@@ -6490,7 +6490,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
|||||||
LTE_SRB_ToAddModList_t *SRB_configList = ue_context_pP->ue_context.SRB_configList2[xid];
|
LTE_SRB_ToAddModList_t *SRB_configList = ue_context_pP->ue_context.SRB_configList2[xid];
|
||||||
LTE_DRB_ToReleaseList_t *DRB_Release_configList2 = ue_context_pP->ue_context.DRB_Release_configList2[xid];
|
LTE_DRB_ToReleaseList_t *DRB_Release_configList2 = ue_context_pP->ue_context.DRB_Release_configList2[xid];
|
||||||
LTE_DRB_Identity_t *drb_id_p = NULL;
|
LTE_DRB_Identity_t *drb_id_p = NULL;
|
||||||
|
|
||||||
ue_context_pP->ue_context.ue_reestablishment_timer = 0;
|
ue_context_pP->ue_context.ue_reestablishment_timer = 0;
|
||||||
ue_context_pP->ue_context.ue_rrc_inactivity_timer = 1; // reset rrc inactivity timer
|
ue_context_pP->ue_context.ue_rrc_inactivity_timer = 1; // reset rrc inactivity timer
|
||||||
|
|
||||||
@@ -6498,7 +6498,8 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
|||||||
/* CDRX: activated if ack was expected */
|
/* CDRX: activated if ack was expected */
|
||||||
int UE_id_mac = find_UE_id(ctxt_pP->module_id, ue_context_pP->ue_context.rnti);
|
int UE_id_mac = find_UE_id(ctxt_pP->module_id, ue_context_pP->ue_context.rnti);
|
||||||
if (UE_id_mac == -1){
|
if (UE_id_mac == -1){
|
||||||
LOG_E(RRC,PROTOCOL_RRC_CTXT_UE_FMT" rrc_eNB_process_RRCConnectionReconfigurationComplete without UE_id(MAC) rnti %x, let's return\n",PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ue_context_pP->ue_context.rnti);
|
LOG_E(RRC,PROTOCOL_RRC_CTXT_UE_FMT" rrc_eNB_process_RRCConnectionReconfigurationComplete without UE_id(MAC) rnti %x, let's return\n",
|
||||||
|
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), ue_context_pP->ue_context.rnti);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
UE_sched_ctrl_t *UE_scheduling_control = &(RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id_mac]);
|
UE_sched_ctrl_t *UE_scheduling_control = &(RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id_mac]);
|
||||||
|
|||||||
Reference in New Issue
Block a user