added selection of LTE or BL/CE SIB1/2 configuration
This commit is contained in:
@@ -83,15 +83,85 @@ typedef struct RrcStateInd_s {
|
|||||||
Rrc_Sub_State_t sub_state;
|
Rrc_Sub_State_t sub_state;
|
||||||
} RrcStateInd;
|
} RrcStateInd;
|
||||||
|
|
||||||
|
typedef struct RadioResourceConfig_s {
|
||||||
|
long prach_root;
|
||||||
|
long prach_config_index;
|
||||||
|
BOOLEAN_t prach_high_speed;
|
||||||
|
long prach_zero_correlation;
|
||||||
|
long prach_freq_offset;
|
||||||
|
long pucch_delta_shift;
|
||||||
|
long pucch_nRB_CQI;
|
||||||
|
long pucch_nCS_AN;
|
||||||
|
#if !defined(Rel10) && !defined(Rel14)
|
||||||
|
long pucch_n1_AN;
|
||||||
|
#endif
|
||||||
|
long pdsch_referenceSignalPower;
|
||||||
|
long pdsch_p_b;
|
||||||
|
long pusch_n_SB;
|
||||||
|
long pusch_hoppingMode;
|
||||||
|
long pusch_hoppingOffset;
|
||||||
|
BOOLEAN_t pusch_enable64QAM;
|
||||||
|
BOOLEAN_t pusch_groupHoppingEnabled;
|
||||||
|
long pusch_groupAssignment;
|
||||||
|
BOOLEAN_t pusch_sequenceHoppingEnabled;
|
||||||
|
long pusch_nDMRS1;
|
||||||
|
long phich_duration;
|
||||||
|
long phich_resource;
|
||||||
|
BOOLEAN_t srs_enable;
|
||||||
|
long srs_BandwidthConfig;
|
||||||
|
long srs_SubframeConfig;
|
||||||
|
BOOLEAN_t srs_ackNackST;
|
||||||
|
BOOLEAN_t srs_MaxUpPts;
|
||||||
|
long pusch_p0_Nominal;
|
||||||
|
long pusch_alpha;
|
||||||
|
long pucch_p0_Nominal;
|
||||||
|
long msg3_delta_Preamble;
|
||||||
|
long ul_CyclicPrefixLength;
|
||||||
|
e_DeltaFList_PUCCH__deltaF_PUCCH_Format1 pucch_deltaF_Format1;
|
||||||
|
e_DeltaFList_PUCCH__deltaF_PUCCH_Format1b pucch_deltaF_Format1b;
|
||||||
|
e_DeltaFList_PUCCH__deltaF_PUCCH_Format2 pucch_deltaF_Format2;
|
||||||
|
e_DeltaFList_PUCCH__deltaF_PUCCH_Format2a pucch_deltaF_Format2a;
|
||||||
|
e_DeltaFList_PUCCH__deltaF_PUCCH_Format2b pucch_deltaF_Format2b;
|
||||||
|
long rach_numberOfRA_Preambles;
|
||||||
|
BOOLEAN_t rach_preamblesGroupAConfig;
|
||||||
|
long rach_sizeOfRA_PreamblesGroupA;
|
||||||
|
long rach_messageSizeGroupA;
|
||||||
|
e_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB rach_messagePowerOffsetGroupB;
|
||||||
|
long rach_powerRampingStep;
|
||||||
|
long rach_preambleInitialReceivedTargetPower;
|
||||||
|
long rach_preambleTransMax;
|
||||||
|
long rach_raResponseWindowSize;
|
||||||
|
long rach_macContentionResolutionTimer;
|
||||||
|
long rach_maxHARQ_Msg3Tx;
|
||||||
|
long bcch_modificationPeriodCoeff;
|
||||||
|
long pcch_defaultPagingCycle;
|
||||||
|
long pcch_nB;
|
||||||
|
long ue_TimersAndConstants_t300;
|
||||||
|
long ue_TimersAndConstants_t301;
|
||||||
|
long ue_TimersAndConstants_t310;
|
||||||
|
long ue_TimersAndConstants_t311;
|
||||||
|
long ue_TimersAndConstants_n310;
|
||||||
|
long ue_TimersAndConstants_n311;
|
||||||
|
long ue_TransmissionMode;
|
||||||
|
#ifdef Rel14
|
||||||
|
//SIB2 BR Options
|
||||||
|
long* preambleTransMax_CE_r13;
|
||||||
|
BOOLEAN_t prach_ConfigCommon_v1310;
|
||||||
|
BOOLEAN_t* mpdcch_startSF_CSS_RA_r13;
|
||||||
|
long mpdcch_startSF_CSS_RA_r13_val;
|
||||||
|
long* prach_HoppingOffset_r13;
|
||||||
|
#endif
|
||||||
|
} RadioResourceConfig;
|
||||||
|
|
||||||
// eNB: ENB_APP -> RRC messages
|
// eNB: ENB_APP -> RRC messages
|
||||||
typedef struct RrcConfigurationReq_s {
|
typedef struct RrcConfigurationReq_s {
|
||||||
uint32_t cell_identity;
|
uint32_t cell_identity;
|
||||||
|
|
||||||
uint16_t tac;
|
uint16_t tac;
|
||||||
|
|
||||||
uint16_t mcc;
|
uint16_t mcc;
|
||||||
uint16_t mnc;
|
uint16_t mnc;
|
||||||
uint8_t mnc_digit_length;
|
uint8_t mnc_digit_length;
|
||||||
|
|
||||||
|
|
||||||
paging_drx_t default_drx;
|
paging_drx_t default_drx;
|
||||||
@@ -107,102 +177,44 @@ typedef struct RrcConfigurationReq_s {
|
|||||||
int16_t Nid_cell[MAX_NUM_CCs];// for testing, change later
|
int16_t Nid_cell[MAX_NUM_CCs];// for testing, change later
|
||||||
int16_t N_RB_DL[MAX_NUM_CCs];// for testing, change later
|
int16_t N_RB_DL[MAX_NUM_CCs];// for testing, change later
|
||||||
int nb_antenna_ports[MAX_NUM_CCs];
|
int nb_antenna_ports[MAX_NUM_CCs];
|
||||||
long prach_root[MAX_NUM_CCs];
|
|
||||||
long prach_config_index[MAX_NUM_CCs];
|
|
||||||
BOOLEAN_t prach_high_speed[MAX_NUM_CCs];
|
|
||||||
long prach_zero_correlation[MAX_NUM_CCs];
|
|
||||||
long prach_freq_offset[MAX_NUM_CCs];
|
|
||||||
long pucch_delta_shift[MAX_NUM_CCs];
|
|
||||||
long pucch_nRB_CQI[MAX_NUM_CCs];
|
|
||||||
long pucch_nCS_AN[MAX_NUM_CCs];
|
|
||||||
#if !defined(Rel10) && !defined(Rel14)
|
|
||||||
long pucch_n1_AN[MAX_NUM_CCs];
|
|
||||||
#endif
|
|
||||||
long pdsch_referenceSignalPower[MAX_NUM_CCs];
|
|
||||||
long pdsch_p_b[MAX_NUM_CCs];
|
|
||||||
long pusch_n_SB[MAX_NUM_CCs];
|
|
||||||
long pusch_hoppingMode[MAX_NUM_CCs];
|
|
||||||
long pusch_hoppingOffset[MAX_NUM_CCs];
|
|
||||||
BOOLEAN_t pusch_enable64QAM[MAX_NUM_CCs];
|
|
||||||
BOOLEAN_t pusch_groupHoppingEnabled[MAX_NUM_CCs];
|
|
||||||
long pusch_groupAssignment[MAX_NUM_CCs];
|
|
||||||
BOOLEAN_t pusch_sequenceHoppingEnabled[MAX_NUM_CCs];
|
|
||||||
long pusch_nDMRS1[MAX_NUM_CCs];
|
|
||||||
long phich_duration[MAX_NUM_CCs];
|
|
||||||
long phich_resource[MAX_NUM_CCs];
|
|
||||||
BOOLEAN_t srs_enable[MAX_NUM_CCs];
|
|
||||||
long srs_BandwidthConfig[MAX_NUM_CCs];
|
|
||||||
long srs_SubframeConfig[MAX_NUM_CCs];
|
|
||||||
BOOLEAN_t srs_ackNackST[MAX_NUM_CCs];
|
|
||||||
BOOLEAN_t srs_MaxUpPts[MAX_NUM_CCs];
|
|
||||||
long pusch_p0_Nominal[MAX_NUM_CCs];
|
|
||||||
long pusch_alpha[MAX_NUM_CCs];
|
|
||||||
long pucch_p0_Nominal[MAX_NUM_CCs];
|
|
||||||
long msg3_delta_Preamble[MAX_NUM_CCs];
|
|
||||||
long ul_CyclicPrefixLength[MAX_NUM_CCs];
|
|
||||||
e_DeltaFList_PUCCH__deltaF_PUCCH_Format1 pucch_deltaF_Format1[MAX_NUM_CCs];
|
|
||||||
e_DeltaFList_PUCCH__deltaF_PUCCH_Format1b pucch_deltaF_Format1b[MAX_NUM_CCs];
|
|
||||||
e_DeltaFList_PUCCH__deltaF_PUCCH_Format2 pucch_deltaF_Format2[MAX_NUM_CCs];
|
|
||||||
e_DeltaFList_PUCCH__deltaF_PUCCH_Format2a pucch_deltaF_Format2a[MAX_NUM_CCs];
|
|
||||||
e_DeltaFList_PUCCH__deltaF_PUCCH_Format2b pucch_deltaF_Format2b[MAX_NUM_CCs];
|
|
||||||
long rach_numberOfRA_Preambles[MAX_NUM_CCs];
|
|
||||||
BOOLEAN_t rach_preamblesGroupAConfig[MAX_NUM_CCs];
|
|
||||||
long rach_sizeOfRA_PreamblesGroupA[MAX_NUM_CCs];
|
|
||||||
long rach_messageSizeGroupA[MAX_NUM_CCs];
|
|
||||||
e_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB rach_messagePowerOffsetGroupB[MAX_NUM_CCs];
|
|
||||||
long rach_powerRampingStep[MAX_NUM_CCs];
|
|
||||||
long rach_preambleInitialReceivedTargetPower[MAX_NUM_CCs];
|
|
||||||
long rach_preambleTransMax[MAX_NUM_CCs];
|
|
||||||
long rach_raResponseWindowSize[MAX_NUM_CCs];
|
|
||||||
long rach_macContentionResolutionTimer[MAX_NUM_CCs];
|
|
||||||
long rach_maxHARQ_Msg3Tx[MAX_NUM_CCs];
|
|
||||||
long bcch_modificationPeriodCoeff[MAX_NUM_CCs];
|
|
||||||
long pcch_defaultPagingCycle[MAX_NUM_CCs];
|
|
||||||
long pcch_nB[MAX_NUM_CCs];
|
|
||||||
long ue_TimersAndConstants_t300[MAX_NUM_CCs];
|
|
||||||
long ue_TimersAndConstants_t301[MAX_NUM_CCs];
|
|
||||||
long ue_TimersAndConstants_t310[MAX_NUM_CCs];
|
|
||||||
long ue_TimersAndConstants_t311[MAX_NUM_CCs];
|
|
||||||
long ue_TimersAndConstants_n310[MAX_NUM_CCs];
|
|
||||||
long ue_TimersAndConstants_n311[MAX_NUM_CCs];
|
|
||||||
long ue_TransmissionMode[MAX_NUM_CCs];
|
|
||||||
|
|
||||||
|
|
||||||
|
RadioResourceConfig radioresourceconfig[MAX_NUM_CCs];
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef Rel14
|
||||||
|
|
||||||
|
RadioResourceConfig radioresourceconfig_BR[MAX_NUM_CCs];
|
||||||
//MIB
|
//MIB
|
||||||
long schedulingInfoSIB1_BR_r13[MAX_NUM_CCs];
|
long schedulingInfoSIB1_BR_r13[MAX_NUM_CCs];
|
||||||
//SIB1 BR options
|
//SIB1 BR options
|
||||||
|
|
||||||
|
|
||||||
uint16_t* hyperSFN_r13[MAX_NUM_CCs];
|
uint16_t* hyperSFN_r13[MAX_NUM_CCs];
|
||||||
long* eDRX_Allowed_r13[MAX_NUM_CCs];
|
long* eDRX_Allowed_r13[MAX_NUM_CCs];
|
||||||
BOOLEAN_t cellSelectionInfoCE_r13[MAX_NUM_CCs];
|
BOOLEAN_t cellSelectionInfoCE_r13[MAX_NUM_CCs];
|
||||||
long q_RxLevMinCE_r13[MAX_NUM_CCs];
|
long q_RxLevMinCE_r13[MAX_NUM_CCs];
|
||||||
long* q_QualMinRSRQ_CE_r13[MAX_NUM_CCs];
|
long* q_QualMinRSRQ_CE_r13[MAX_NUM_CCs];
|
||||||
BOOLEAN_t bandwidthReducedAccessRelatedInfo_r13[MAX_NUM_CCs];
|
BOOLEAN_t bandwidthReducedAccessRelatedInfo_r13[MAX_NUM_CCs];
|
||||||
long si_WindowLength_BR_r13[MAX_NUM_CCs];
|
long si_WindowLength_BR_r13[MAX_NUM_CCs];
|
||||||
long si_RepetitionPattern_r13[MAX_NUM_CCs];
|
long si_RepetitionPattern_r13[MAX_NUM_CCs];
|
||||||
BOOLEAN_t fdd_DownlinkOrTddSubframeBitmapBR_r13[MAX_NUM_CCs];
|
BOOLEAN_t fdd_DownlinkOrTddSubframeBitmapBR_r13[MAX_NUM_CCs];
|
||||||
uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13[MAX_NUM_CCs];
|
uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13[MAX_NUM_CCs];
|
||||||
uint16_t fdd_UplinkSubframeBitmapBR_r13[MAX_NUM_CCs];
|
uint16_t fdd_UplinkSubframeBitmapBR_r13[MAX_NUM_CCs];
|
||||||
long startSymbolBR_r13[MAX_NUM_CCs];
|
long startSymbolBR_r13[MAX_NUM_CCs];
|
||||||
long si_HoppingConfigCommon_r13[MAX_NUM_CCs];
|
long si_HoppingConfigCommon_r13[MAX_NUM_CCs];
|
||||||
long* si_ValidityTime_r13[MAX_NUM_CCs];
|
long* si_ValidityTime_r13[MAX_NUM_CCs];
|
||||||
BOOLEAN_t freqHoppingParametersDL_r13[MAX_NUM_CCs];
|
BOOLEAN_t freqHoppingParametersDL_r13[MAX_NUM_CCs];
|
||||||
long* mpdcch_pdsch_HoppingNB_r13[MAX_NUM_CCs];
|
long* mpdcch_pdsch_HoppingNB_r13[MAX_NUM_CCs];
|
||||||
BOOLEAN_t interval_DLHoppingConfigCommonModeA_r13[MAX_NUM_CCs];
|
BOOLEAN_t interval_DLHoppingConfigCommonModeA_r13[MAX_NUM_CCs];
|
||||||
long interval_DLHoppingConfigCommonModeA_r13_val[MAX_NUM_CCs];
|
long interval_DLHoppingConfigCommonModeA_r13_val[MAX_NUM_CCs];
|
||||||
BOOLEAN_t interval_DLHoppingConfigCommonModeB_r13[MAX_NUM_CCs];
|
BOOLEAN_t interval_DLHoppingConfigCommonModeB_r13[MAX_NUM_CCs];
|
||||||
long interval_DLHoppingConfigCommonModeB_r13_val[MAX_NUM_CCs];
|
long interval_DLHoppingConfigCommonModeB_r13_val[MAX_NUM_CCs];
|
||||||
long* mpdcch_pdsch_HoppingOffset_r13[MAX_NUM_CCs];
|
long* mpdcch_pdsch_HoppingOffset_r13[MAX_NUM_CCs];
|
||||||
|
|
||||||
|
|
||||||
//SIB2 BR Options
|
|
||||||
long* preambleTransMax_CE_r13[MAX_NUM_CCs];
|
|
||||||
BOOLEAN_t prach_ConfigCommon_v1310[MAX_NUM_CCs];
|
|
||||||
BOOLEAN_t* mpdcch_startSF_CSS_RA_r13[MAX_NUM_CCs];
|
|
||||||
long mpdcch_startSF_CSS_RA_r13_val[MAX_NUM_CCs];
|
|
||||||
long* prach_HoppingOffset_r13[MAX_NUM_CCs];
|
|
||||||
|
|
||||||
|
#endif
|
||||||
} RrcConfigurationReq;
|
} RrcConfigurationReq;
|
||||||
|
|
||||||
// UE: NAS -> RRC messages
|
// UE: NAS -> RRC messages
|
||||||
|
|||||||
+2833
-1769
File diff suppressed because it is too large
Load Diff
+1119
-1077
File diff suppressed because it is too large
Load Diff
@@ -75,10 +75,17 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich
|
|||||||
@param Mod_id Instance of eNB
|
@param Mod_id Instance of eNB
|
||||||
@param Component carrier Component carrier to configure
|
@param Component carrier Component carrier to configure
|
||||||
@param configuration Pointer Configuration Request structure
|
@param configuration Pointer Configuration Request structure
|
||||||
|
@param br_flag Do for BL/CE UE configuration
|
||||||
@return size of encoded bit stream in bytes*/
|
@return size of encoded bit stream in bytes*/
|
||||||
|
|
||||||
uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,int Mod_id,int CC_id, RrcConfigurationReq *configuration
|
uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,int Mod_id,int CC_id
|
||||||
);
|
#if defined(ENABLE_ITTI)
|
||||||
|
,RrcConfigurationReq *configuration
|
||||||
|
#endif
|
||||||
|
#ifdef Rel14
|
||||||
|
,int br_flag
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Generate a default configuration for SIB2/SIB3 in one System Information PDU (eNB).
|
\brief Generate a default configuration for SIB2/SIB3 in one System Information PDU (eNB).
|
||||||
@@ -95,6 +102,9 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
int CC_id
|
int CC_id
|
||||||
#if defined(ENABLE_ITTI)
|
#if defined(ENABLE_ITTI)
|
||||||
, RrcConfigurationReq *configuration
|
, RrcConfigurationReq *configuration
|
||||||
|
#endif
|
||||||
|
#ifdef Rel14
|
||||||
|
, int br_flag
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -475,7 +475,9 @@ typedef struct {
|
|||||||
uint32_t pbch_repetition;
|
uint32_t pbch_repetition;
|
||||||
BCCH_BCH_Message_t mib;
|
BCCH_BCH_Message_t mib;
|
||||||
BCCH_DL_SCH_Message_t siblock1;
|
BCCH_DL_SCH_Message_t siblock1;
|
||||||
|
BCCH_DL_SCH_Message_t siblock1_BR;
|
||||||
BCCH_DL_SCH_Message_t systemInformation;
|
BCCH_DL_SCH_Message_t systemInformation;
|
||||||
|
BCCH_DL_SCH_Message_t systemInformation_BR;
|
||||||
// SystemInformation_t systemInformation;
|
// SystemInformation_t systemInformation;
|
||||||
SystemInformationBlockType1_t *sib1;
|
SystemInformationBlockType1_t *sib1;
|
||||||
SystemInformationBlockType2_t *sib2;
|
SystemInformationBlockType2_t *sib2;
|
||||||
@@ -483,7 +485,6 @@ typedef struct {
|
|||||||
#ifdef Rel14
|
#ifdef Rel14
|
||||||
SystemInformationBlockType1_t *sib1_BR;
|
SystemInformationBlockType1_t *sib1_BR;
|
||||||
SystemInformationBlockType2_t *sib2_BR;
|
SystemInformationBlockType2_t *sib2_BR;
|
||||||
SystemInformationBlockType2_t *sib3_BR;
|
|
||||||
#endif
|
#endif
|
||||||
#if defined(Rel10) || defined(Rel14)
|
#if defined(Rel10) || defined(Rel14)
|
||||||
SystemInformationBlockType13_r9_t *sib13;
|
SystemInformationBlockType13_r9_t *sib13;
|
||||||
|
|||||||
+47
-17
@@ -127,8 +127,6 @@ init_SI(
|
|||||||
)
|
)
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
uint8_t SIwindowsize = 1;
|
|
||||||
uint16_t SIperiod = 8;
|
|
||||||
#if defined(Rel10) || defined(Rel14)
|
#if defined(Rel10) || defined(Rel14)
|
||||||
int i;
|
int i;
|
||||||
#endif
|
#endif
|
||||||
@@ -149,14 +147,14 @@ init_SI(
|
|||||||
#endif
|
#endif
|
||||||
LOG_I(RRC, "Configuring MIB (N_RB_DL %d,phich_Resource %d,phich_Duration %d)\n",
|
LOG_I(RRC, "Configuring MIB (N_RB_DL %d,phich_Resource %d,phich_Duration %d)\n",
|
||||||
configuration->N_RB_DL[CC_id],
|
configuration->N_RB_DL[CC_id],
|
||||||
configuration->phich_resource[CC_id],
|
(int)configuration->radioresourceconfig[CC_id].phich_resource,
|
||||||
configuration->phich_duration[CC_id]);
|
(int)configuration->radioresourceconfig[CC_id].phich_duration);
|
||||||
do_MIB(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],
|
do_MIB(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],
|
||||||
#ifdef ENABLE_ITTI
|
#ifdef ENABLE_ITTI
|
||||||
configuration->N_RB_DL[CC_id],
|
configuration->N_RB_DL[CC_id],
|
||||||
configuration->phich_resource[CC_id],
|
(int)configuration->radioresourceconfig[CC_id].phich_resource,
|
||||||
configuration->phich_duration[CC_id],
|
(int)configuration->radioresourceconfig[CC_id].phich_duration,
|
||||||
configuration->schedulingInfoSIB1_BR_r13[CC_id]
|
configuration->schedulingInfoSIB1_BR_r13[CC_id]
|
||||||
#else
|
#else
|
||||||
50, 0, 0, 1
|
50, 0, 0, 1
|
||||||
#endif
|
#endif
|
||||||
@@ -172,11 +170,24 @@ init_SI(
|
|||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id
|
||||||
#if defined(ENABLE_ITTI)
|
#if defined(ENABLE_ITTI)
|
||||||
, configuration
|
, configuration
|
||||||
|
#endif
|
||||||
|
#ifdef Rel14
|
||||||
|
,0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 != 255,"FATAL, RC.rrc[enb_mod_idP].carrier[CC_id].sizeof_SIB1 == 255");
|
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 != 255,"FATAL, RC.rrc[enb_mod_idP].carrier[CC_id].sizeof_SIB1 == 255");
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef Rel14
|
||||||
|
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
|
||||||
|
#if defined(ENABLE_ITTI)
|
||||||
|
, configuration
|
||||||
|
#endif
|
||||||
|
,1
|
||||||
|
);
|
||||||
|
#endif
|
||||||
|
|
||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23 = (uint8_t*) malloc16(64);
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23 = (uint8_t*) malloc16(64);
|
||||||
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23!=NULL,"cannot allocate memory for SIB");
|
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23!=NULL,"cannot allocate memory for SIB");
|
||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 = do_SIB23(
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 = do_SIB23(
|
||||||
@@ -185,11 +196,30 @@ init_SI(
|
|||||||
CC_id
|
CC_id
|
||||||
#if defined(ENABLE_ITTI)
|
#if defined(ENABLE_ITTI)
|
||||||
, configuration
|
, configuration
|
||||||
|
#endif
|
||||||
|
#ifdef Rel14
|
||||||
|
,0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 != 255,"FATAL, RC.rrc[mod].carrier[CC_id].sizeof_SIB23 == 255");
|
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 != 255,"FATAL, RC.rrc[mod].carrier[CC_id].sizeof_SIB23 == 255");
|
||||||
|
|
||||||
|
#ifdef Rel14
|
||||||
|
if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) {
|
||||||
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR = (uint8_t*) malloc16(64);
|
||||||
|
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR!=NULL,"cannot allocate memory for SIB");
|
||||||
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = do_SIB23(
|
||||||
|
ctxt_pP->module_id,
|
||||||
|
CC_id,
|
||||||
|
#if defined(ENABLE_ITTI)
|
||||||
|
configuration,
|
||||||
|
#endif
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
LOG_T(RRC, PROTOCOL_RRC_CTXT_FMT" SIB2/3 Contents (partial)\n",
|
LOG_T(RRC, PROTOCOL_RRC_CTXT_FMT" SIB2/3 Contents (partial)\n",
|
||||||
PROTOCOL_RRC_CTXT_ARGS(ctxt_pP));
|
PROTOCOL_RRC_CTXT_ARGS(ctxt_pP));
|
||||||
@@ -1679,9 +1709,9 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
|
|||||||
//TODO: change TM for secondary CC in SCelltoaddmodlist
|
//TODO: change TM for secondary CC in SCelltoaddmodlist
|
||||||
if (*physicalConfigDedicated) {
|
if (*physicalConfigDedicated) {
|
||||||
if ((*physicalConfigDedicated)->antennaInfo) {
|
if ((*physicalConfigDedicated)->antennaInfo) {
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.ue_TransmissionMode[0];
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode;
|
||||||
LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.ue_TransmissionMode[0]);
|
LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode);
|
||||||
if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm3) {
|
if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm3) {
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=
|
||||||
CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
|
CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
|
||||||
@@ -1691,7 +1721,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
|
|||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1;
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1;
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6;
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6;
|
||||||
}
|
}
|
||||||
else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) {
|
else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) {
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=
|
||||||
CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
|
CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
|
||||||
@@ -1702,7 +1732,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
|
|||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm4.bits_unused=2;
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm4.bits_unused=2;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) {
|
else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) {
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=
|
||||||
CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
|
CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
|
||||||
@@ -1712,7 +1742,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
|
|||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.size=1;
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.size=1;
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.bits_unused=4;
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.bits_unused=4;
|
||||||
}
|
}
|
||||||
else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6) {
|
else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6) {
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=
|
||||||
CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
|
CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
|
||||||
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
|
||||||
@@ -1727,9 +1757,9 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
|
|||||||
LOG_E(RRC,"antenna_info not present in physical_config_dedicated. Not reconfiguring!\n");
|
LOG_E(RRC,"antenna_info not present in physical_config_dedicated. Not reconfiguring!\n");
|
||||||
}
|
}
|
||||||
if ((*physicalConfigDedicated)->cqi_ReportConfig) {
|
if ((*physicalConfigDedicated)->cqi_ReportConfig) {
|
||||||
if ((rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) ||
|
if ((rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) ||
|
||||||
(rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) ||
|
(rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) ||
|
||||||
(rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6)) {
|
(rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6)) {
|
||||||
//feedback mode needs to be set as well
|
//feedback mode needs to be set as well
|
||||||
//TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable
|
//TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable
|
||||||
printf("setting cqi reporting mode to rm31\n");
|
printf("setting cqi reporting mode to rm31\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user