Cleanup of enb_config.c config.c asn1_msg.c asn1_msg.h
This commit is contained in:
@@ -1189,7 +1189,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
|||||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].drx_Config_present = LTE_DRX_Config_PR_setup;
|
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].drx_Config_present = LTE_DRX_Config_PR_setup;
|
||||||
} else {
|
} else {
|
||||||
AssertFatal (0,
|
AssertFatal (0,
|
||||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for drx_Config_present choice: prNothing,prRelease,prSetup !\n",
|
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for drx_Config_present choice: prNothing, prRelease, prSetup!\n",
|
||||||
RC.config_file_name, i, ccparams_lte.drx_Config_present);
|
RC.config_file_name, i, ccparams_lte.drx_Config_present);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1058,9 +1058,9 @@ void eNB_Config_Local_DRX(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Modify scheduling control structure according to DRX configuration */
|
/* Modify scheduling control structure according to DRX configuration: doesn't support every configurations! */
|
||||||
UE_scheduling_control->cdrx_configured = TRUE;
|
UE_scheduling_control->cdrx_configured = TRUE;
|
||||||
UE_scheduling_control->bypass_cdrx = TRUE;
|
UE_scheduling_control->bypass_cdrx = TRUE; // set to true first, waiting for the UE to configure CDRX on its side
|
||||||
UE_scheduling_control->in_active_time = FALSE;
|
UE_scheduling_control->in_active_time = FALSE;
|
||||||
|
|
||||||
UE_scheduling_control->on_duration_timer = 0;
|
UE_scheduling_control->on_duration_timer = 0;
|
||||||
|
|||||||
@@ -317,13 +317,22 @@ uint8_t do_MIB_SL(const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index,
|
|||||||
return((enc_rval.encoded+7)/8);
|
return((enc_rval.encoded+7)/8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *configuration, LTE_UE_EUTRA_Capability_t *UEcap)
|
/*
|
||||||
|
* Generate the configuration structure for CDRX feature
|
||||||
|
*/
|
||||||
|
LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id,
|
||||||
|
int CC_id,
|
||||||
|
RrcConfigurationReq *configuration,
|
||||||
|
LTE_UE_EUTRA_Capability_t *UEcap)
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
LTE_DRX_Config_t *drxConfig = NULL;
|
LTE_DRX_Config_t *drxConfig = NULL;
|
||||||
BIT_STRING_t *featureGroupIndicators = NULL;
|
BIT_STRING_t *featureGroupIndicators = NULL;
|
||||||
bool ueSupportCdrxShortFlag = false;
|
bool ueSupportCdrxShortFlag = false;
|
||||||
bool ueSupportCdrxLongFlag = false;
|
bool ueSupportCdrxLongFlag = false;
|
||||||
|
|
||||||
|
/* Check the UE capabilities for short and long CDRX cycles support */
|
||||||
if (UEcap) {
|
if (UEcap) {
|
||||||
featureGroupIndicators = UEcap->featureGroupIndicators;
|
featureGroupIndicators = UEcap->featureGroupIndicators;
|
||||||
if (featureGroupIndicators) {
|
if (featureGroupIndicators) {
|
||||||
@@ -339,6 +348,7 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *c
|
|||||||
if (drxConfig == NULL) return NULL;
|
if (drxConfig == NULL) return NULL;
|
||||||
memset(drxConfig, 0, sizeof(LTE_DRX_Config_t));
|
memset(drxConfig, 0, sizeof(LTE_DRX_Config_t));
|
||||||
|
|
||||||
|
/* Long DRX cycle support is mandatory for CDRX activation */
|
||||||
if (!ueSupportCdrxLongFlag || configuration == NULL) {
|
if (!ueSupportCdrxLongFlag || configuration == NULL) {
|
||||||
drxConfig->present = LTE_DRX_Config_PR_release;
|
drxConfig->present = LTE_DRX_Config_PR_release;
|
||||||
} else {
|
} else {
|
||||||
@@ -405,6 +415,8 @@ LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *c
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Short DRX cycle configuration */
|
||||||
if (!ueSupportCdrxShortFlag || configuration->radioresourceconfig[CC_id].drx_shortDrx_ShortCycleTimer == 0) {
|
if (!ueSupportCdrxShortFlag || configuration->radioresourceconfig[CC_id].drx_shortDrx_ShortCycleTimer == 0) {
|
||||||
drxConfig->choice.setup.shortDRX = NULL;
|
drxConfig->choice.setup.shortDRX = NULL;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -71,12 +71,12 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich
|
|||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Generate configuration for DRX_Config
|
\brief Generate configuration structure for DRX_Config
|
||||||
@param Mod_id Instance of eNB
|
@param Mod_id Instance of eNB
|
||||||
@param CC_id Id of component to configure
|
@param CC_id Id of component to configure
|
||||||
@param configuration Pointer Configuration Request structure
|
@param configuration Pointer Configuration Request structure
|
||||||
@param UEcap Pointer Configuration UE capablities
|
@param UEcap Pointer Configuration UE capablities
|
||||||
@return DRX_Config structure pointer or NULL => error*/
|
@return DRX_Config structure pointer or NULL => error */
|
||||||
LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *configuration, LTE_UE_EUTRA_Capability_t *UEcap);
|
LTE_DRX_Config_t *do_DrxConfig(uint8_t Mod_id, int CC_id, RrcConfigurationReq *configuration, LTE_UE_EUTRA_Capability_t *UEcap);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user