testing after integration of eMTC
This commit is contained in:
@@ -727,55 +727,54 @@ config_dedicated_scell(int Mod_idP,
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
rrc_mac_config_req_eNB(module_id_t Mod_idP,
|
||||
int CC_idP,
|
||||
int physCellId,
|
||||
int p_eNB,
|
||||
int Ncp, int eutra_band, uint32_t dl_CarrierFreq,
|
||||
int rrc_mac_config_req_eNB(module_id_t Mod_idP,
|
||||
int CC_idP,
|
||||
int physCellId,
|
||||
int p_eNB,
|
||||
int Ncp, int eutra_band, uint32_t dl_CarrierFreq,
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
int pbch_repetition,
|
||||
int pbch_repetition,
|
||||
#endif
|
||||
rnti_t rntiP,
|
||||
LTE_BCCH_BCH_Message_t * mib,
|
||||
LTE_RadioResourceConfigCommonSIB_t *
|
||||
radioResourceConfigCommon,
|
||||
rnti_t rntiP,
|
||||
LTE_BCCH_BCH_Message_t * mib,
|
||||
LTE_RadioResourceConfigCommonSIB_t *
|
||||
radioResourceConfigCommon,
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||
LTE_RadioResourceConfigCommonSIB_t *
|
||||
radioResourceConfigCommon_BR,
|
||||
LTE_RadioResourceConfigCommonSIB_t *
|
||||
radioResourceConfigCommon_BR,
|
||||
#endif
|
||||
struct LTE_PhysicalConfigDedicated
|
||||
*physicalConfigDedicated,
|
||||
struct LTE_PhysicalConfigDedicated
|
||||
*physicalConfigDedicated,
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
LTE_SCellToAddMod_r10_t * sCellToAddMod_r10,
|
||||
//struct LTE_PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10,
|
||||
LTE_SCellToAddMod_r10_t * sCellToAddMod_r10,
|
||||
//struct LTE_PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10,
|
||||
#endif
|
||||
LTE_MeasObjectToAddMod_t ** measObj,
|
||||
LTE_MAC_MainConfig_t * mac_MainConfig,
|
||||
long logicalChannelIdentity,
|
||||
LTE_LogicalChannelConfig_t * logicalChannelConfig,
|
||||
LTE_MeasGapConfig_t * measGapConfig,
|
||||
LTE_TDD_Config_t * tdd_Config,
|
||||
LTE_MobilityControlInfo_t * mobilityControlInfo,
|
||||
LTE_SchedulingInfoList_t * schedulingInfoList,
|
||||
uint32_t ul_CarrierFreq,
|
||||
long *ul_Bandwidth,
|
||||
LTE_AdditionalSpectrumEmission_t *
|
||||
additionalSpectrumEmission,
|
||||
struct LTE_MBSFN_SubframeConfigList
|
||||
*mbsfn_SubframeConfigList
|
||||
LTE_MeasObjectToAddMod_t ** measObj,
|
||||
LTE_MAC_MainConfig_t * mac_MainConfig,
|
||||
long logicalChannelIdentity,
|
||||
LTE_LogicalChannelConfig_t * logicalChannelConfig,
|
||||
LTE_MeasGapConfig_t * measGapConfig,
|
||||
LTE_TDD_Config_t * tdd_Config,
|
||||
LTE_MobilityControlInfo_t * mobilityControlInfo,
|
||||
LTE_SchedulingInfoList_t * schedulingInfoList,
|
||||
uint32_t ul_CarrierFreq,
|
||||
long *ul_Bandwidth,
|
||||
LTE_AdditionalSpectrumEmission_t *
|
||||
additionalSpectrumEmission,
|
||||
struct LTE_MBSFN_SubframeConfigList
|
||||
*mbsfn_SubframeConfigList
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
|
||||
, uint8_t MBMS_Flag,
|
||||
LTE_MBSFN_AreaInfoList_r9_t * mbsfn_AreaInfoList,
|
||||
LTE_PMCH_InfoList_r9_t * pmch_InfoList
|
||||
, uint8_t MBMS_Flag,
|
||||
LTE_MBSFN_AreaInfoList_r9_t * mbsfn_AreaInfoList,
|
||||
LTE_PMCH_InfoList_r9_t * pmch_InfoList
|
||||
#endif
|
||||
#if (LTE_RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
,
|
||||
LTE_SystemInformationBlockType1_v1310_IEs_t *
|
||||
sib1_v13ext
|
||||
,
|
||||
LTE_SystemInformationBlockType1_v1310_IEs_t *
|
||||
sib1_v13ext
|
||||
#endif
|
||||
) {
|
||||
|
||||
) {
|
||||
|
||||
int i;
|
||||
|
||||
int UE_id = -1;
|
||||
@@ -897,36 +896,18 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP,
|
||||
if (logicalChannelConfig != NULL) { // check for eMTC specific things
|
||||
UE_id = find_UE_id(Mod_idP, rntiP);
|
||||
|
||||
if (UE_id == -1) {
|
||||
LOG_E(MAC, "%s:%d:%s: ERROR, UE_id == -1\n", __FILE__,
|
||||
__LINE__, __FUNCTION__);
|
||||
} else {
|
||||
if (logicalChannelConfig) {
|
||||
UE_list->
|
||||
UE_template[CC_idP][UE_id].lcgidmap
|
||||
[logicalChannelIdentity] =
|
||||
*logicalChannelConfig->
|
||||
ul_SpecificParameters->logicalChannelGroup;
|
||||
UE_list->
|
||||
UE_template[CC_idP][UE_id].lcgidpriority
|
||||
[logicalChannelIdentity]=
|
||||
logicalChannelConfig->ul_SpecificParameters->priority;
|
||||
|
||||
} else
|
||||
UE_list->
|
||||
UE_template[CC_idP][UE_id].lcgidmap
|
||||
[logicalChannelIdentity] = 0;
|
||||
}
|
||||
AssertFatal(UE_id>=0,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP);
|
||||
if (logicalChannelConfig) {
|
||||
UE_list->UE_template[CC_idP][UE_id].lcgidmap[logicalChannelIdentity] = *logicalChannelConfig->ul_SpecificParameters->logicalChannelGroup;
|
||||
UE_list->UE_template[CC_idP][UE_id].lcgidpriority[logicalChannelIdentity] = logicalChannelConfig->ul_SpecificParameters->priority;
|
||||
} else UE_list->UE_template[CC_idP][UE_id].lcgidmap[logicalChannelIdentity] = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (physicalConfigDedicated != NULL) {
|
||||
UE_id = find_UE_id(Mod_idP, rntiP);
|
||||
|
||||
if (UE_id == -1)
|
||||
LOG_E(MAC, "%s:%d:%s: ERROR, UE_id == -1\n", __FILE__, __LINE__, __FUNCTION__);
|
||||
else
|
||||
UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated = physicalConfigDedicated;
|
||||
AssertFatal(UE_id>=0,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP);
|
||||
UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated = physicalConfigDedicated;
|
||||
LOG_I(MAC,"Added physicalConfigDedicated %p for %d.%d\n",physicalConfigDedicated,CC_idP,UE_id);
|
||||
}
|
||||
|
||||
|
||||
@@ -934,27 +915,19 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP,
|
||||
|
||||
if (sCellToAddMod_r10 != NULL) {
|
||||
UE_id = find_UE_id(Mod_idP, rntiP);
|
||||
if (UE_id == -1)
|
||||
LOG_E(MAC, "%s:%d:%s: ERROR, UE_id == -1\n", __FILE__,
|
||||
__LINE__, __FUNCTION__);
|
||||
else
|
||||
config_dedicated_scell(Mod_idP, rntiP, sCellToAddMod_r10);
|
||||
AssertFatal(UE_id>=0,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP);
|
||||
config_dedicated_scell(Mod_idP, rntiP, sCellToAddMod_r10);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
if (mbsfn_SubframeConfigList != NULL) {
|
||||
LOG_I(MAC,
|
||||
"[eNB %d][CONFIG] Received %d subframe allocation pattern for MBSFN\n",
|
||||
Mod_idP, mbsfn_SubframeConfigList->list.count);
|
||||
RC.mac[Mod_idP]->common_channels[0].num_sf_allocation_pattern =
|
||||
mbsfn_SubframeConfigList->list.count;
|
||||
RC.mac[Mod_idP]->common_channels[0].num_sf_allocation_pattern = mbsfn_SubframeConfigList->list.count;
|
||||
|
||||
for (i = 0; i < mbsfn_SubframeConfigList->list.count; i++) {
|
||||
RC.mac[Mod_idP]->common_channels[0].mbsfn_SubframeConfig[i] =
|
||||
mbsfn_SubframeConfigList->list.array[i];
|
||||
RC.mac[Mod_idP]->common_channels[0].mbsfn_SubframeConfig[i] = mbsfn_SubframeConfigList->list.array[i];
|
||||
LOG_I(MAC,
|
||||
"[eNB %d][CONFIG] MBSFN_SubframeConfig[%d] pattern is %x\n",
|
||||
Mod_idP, i,
|
||||
|
||||
@@ -1704,7 +1704,7 @@ schedule_ue_spec(module_id_t module_idP, int slice_idxP,
|
||||
format2A);
|
||||
break;
|
||||
default:
|
||||
LOG_W(MAC, "Unsupported transmission mode %d\n", get_tmode(module_idP, CC_id, UE_id));
|
||||
AssertFatal(1==0,"Unsupported transmission mode %d\n", get_tmode(module_idP, CC_id, UE_id));
|
||||
aggregation = 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2272,7 +2272,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP)
|
||||
eNB_MAC_INST *eNB = RC.mac[module_idP];
|
||||
COMMON_channels_t *cc = &eNB->common_channels[CC_idP];
|
||||
|
||||
struct LTE_PhysicalConfigDedicated *physicalConfigDedicated = &eNB->UE_list.physicalConfigDedicated[CC_idP][UE_idP];
|
||||
struct LTE_PhysicalConfigDedicated *physicalConfigDedicated = eNB->UE_list.UE_template[CC_idP][UE_idP].physicalConfigDedicated;
|
||||
|
||||
if (physicalConfigDedicated == NULL) { // RRCConnectionSetup not received by UE yet
|
||||
AssertFatal(cc->p_eNB <= 2, "p_eNB is %d, should be <2\n",
|
||||
@@ -2280,8 +2280,8 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP)
|
||||
return (cc->p_eNB);
|
||||
} else {
|
||||
AssertFatal(physicalConfigDedicated->antennaInfo != NULL,
|
||||
"antennaInfo is null for CCId %d, UEid %d\n", CC_idP,
|
||||
UE_idP);
|
||||
"antennaInfo (mod_id %d) is null for CCId %d, UEid %d, physicalConfigDedicated %p\n", module_idP,CC_idP,
|
||||
UE_idP,physicalConfigDedicated);
|
||||
|
||||
AssertFatal(physicalConfigDedicated->antennaInfo->present !=
|
||||
LTE_PhysicalConfigDedicated__antennaInfo_PR_NOTHING,
|
||||
@@ -2290,7 +2290,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP)
|
||||
|
||||
if (physicalConfigDedicated->antennaInfo->present ==
|
||||
LTE_PhysicalConfigDedicated__antennaInfo_PR_explicitValue) {
|
||||
return (physicalConfigDedicated->antennaInfo->
|
||||
return (1+physicalConfigDedicated->antennaInfo->
|
||||
choice.explicitValue.transmissionMode);
|
||||
} else if (physicalConfigDedicated->antennaInfo->present ==
|
||||
LTE_PhysicalConfigDedicated__antennaInfo_PR_defaultValue) {
|
||||
|
||||
+34
-38
@@ -1070,44 +1070,40 @@ typedef struct {
|
||||
} SBMAP_CONF;
|
||||
/*! \brief UE list used by eNB to order UEs/CC for scheduling*/
|
||||
typedef struct {
|
||||
/// Dedicated information for UEs
|
||||
struct PhysicalConfigDedicated
|
||||
*physicalConfigDedicated[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
||||
/// DLSCH pdu
|
||||
DLSCH_PDU DLSCH_pdu[NFAPI_CC_MAX][2][MAX_MOBILES_PER_ENB];
|
||||
/// DCI template and MAC connection parameters for UEs
|
||||
UE_TEMPLATE UE_template[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
||||
/// DCI template and MAC connection for RA processes
|
||||
int pCC_id[MAX_MOBILES_PER_ENB];
|
||||
/// sorted downlink component carrier for the scheduler
|
||||
int ordered_CCids[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
||||
/// number of downlink active component carrier
|
||||
int numactiveCCs[MAX_MOBILES_PER_ENB];
|
||||
/// sorted uplink component carrier for the scheduler
|
||||
int ordered_ULCCids[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
||||
/// number of uplink active component carrier
|
||||
int numactiveULCCs[MAX_MOBILES_PER_ENB];
|
||||
/// number of downlink active component carrier
|
||||
uint8_t dl_CC_bitmap[MAX_MOBILES_PER_ENB];
|
||||
/// eNB to UE statistics
|
||||
eNB_UE_STATS eNB_UE_stats[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
||||
/// scheduling control info
|
||||
UE_sched_ctrl UE_sched_ctrl[MAX_MOBILES_PER_ENB];
|
||||
int next[MAX_MOBILES_PER_ENB];
|
||||
int head;
|
||||
int next_ul[MAX_MOBILES_PER_ENB];
|
||||
int head_ul;
|
||||
int avail;
|
||||
int num_UEs;
|
||||
boolean_t active[MAX_MOBILES_PER_ENB];
|
||||
|
||||
/// Sorting criteria for the UE list in the MAC preprocessor
|
||||
uint16_t sorting_criteria[MAX_NUM_SLICES][CR_NUM];
|
||||
uint16_t first_rb_offset[NFAPI_CC_MAX][MAX_NUM_SLICES];
|
||||
|
||||
int assoc_dl_slice_idx[MAX_MOBILES_PER_ENB];
|
||||
int assoc_ul_slice_idx[MAX_MOBILES_PER_ENB];
|
||||
|
||||
DLSCH_PDU DLSCH_pdu[NFAPI_CC_MAX][2][MAX_MOBILES_PER_ENB];
|
||||
/// DCI template and MAC connection parameters for UEs
|
||||
UE_TEMPLATE UE_template[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
||||
/// DCI template and MAC connection for RA processes
|
||||
int pCC_id[MAX_MOBILES_PER_ENB];
|
||||
/// sorted downlink component carrier for the scheduler
|
||||
int ordered_CCids[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
||||
/// number of downlink active component carrier
|
||||
int numactiveCCs[MAX_MOBILES_PER_ENB];
|
||||
/// sorted uplink component carrier for the scheduler
|
||||
int ordered_ULCCids[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
||||
/// number of uplink active component carrier
|
||||
int numactiveULCCs[MAX_MOBILES_PER_ENB];
|
||||
/// number of downlink active component carrier
|
||||
uint8_t dl_CC_bitmap[MAX_MOBILES_PER_ENB];
|
||||
/// eNB to UE statistics
|
||||
eNB_UE_STATS eNB_UE_stats[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB];
|
||||
/// scheduling control info
|
||||
UE_sched_ctrl UE_sched_ctrl[MAX_MOBILES_PER_ENB];
|
||||
int next[MAX_MOBILES_PER_ENB];
|
||||
int head;
|
||||
int next_ul[MAX_MOBILES_PER_ENB];
|
||||
int head_ul;
|
||||
int avail;
|
||||
int num_UEs;
|
||||
boolean_t active[MAX_MOBILES_PER_ENB];
|
||||
|
||||
/// Sorting criteria for the UE list in the MAC preprocessor
|
||||
uint16_t sorting_criteria[MAX_NUM_SLICES][CR_NUM];
|
||||
uint16_t first_rb_offset[NFAPI_CC_MAX][MAX_NUM_SLICES];
|
||||
|
||||
int assoc_dl_slice_idx[MAX_MOBILES_PER_ENB];
|
||||
int assoc_ul_slice_idx[MAX_MOBILES_PER_ENB];
|
||||
|
||||
} UE_list_t;
|
||||
|
||||
/*! \brief deleting control information*/
|
||||
|
||||
@@ -2855,6 +2855,8 @@ do_RRCConnectionSetup(
|
||||
//assign_enum(&physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode,
|
||||
// AntennaInfoDedicated__transmissionMode_tm2);
|
||||
|
||||
LOG_D(RRC,"physicalConfigDedicated2 %p, physicalConfigDedicated2->antennaInfo %p => %d\n",physicalConfigDedicated2,physicalConfigDedicated2->antennaInfo,transmission_mode);
|
||||
|
||||
switch (transmission_mode) {
|
||||
default:
|
||||
LOG_W(RRC,"At RRCConnectionSetup Transmission mode can only take values 1 or 2! Defaulting to 1!\n");
|
||||
|
||||
Reference in New Issue
Block a user