Commit 7900864f authored by knopp's avatar knopp
Browse files

testing after integration of eMTC

parent 55ed97eb
......@@ -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) {
......
......@@ -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");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment