Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangwenhui
OpenXG-RAN
Commits
b9363eef
Commit
b9363eef
authored
Apr 23, 2019
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
insert check on "ru->do_precoding" in RU TX chain for basic behaviour in monolithic eNB case
parent
a64e7eef
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
34 additions
and
439 deletions
+34
-439
openair1/PHY/INIT/lte_init.c
openair1/PHY/INIT/lte_init.c
+0
-377
openair1/SCHED/ru_procedures.c
openair1/SCHED/ru_procedures.c
+34
-62
No files found.
openair1/PHY/INIT/lte_init.c
View file @
b9363eef
...
...
@@ -319,148 +319,6 @@ void phy_config_request(PHY_Config_t *phy_config) {
}
/*
void phy_config_sib2_eNB(uint8_t Mod_id,
int CC_id,
RadioResourceConfigCommonSIB_t *radioResourceConfigCommon,
ARFCN_ValueEUTRA_t *ul_CArrierFreq,
long *ul_Bandwidth,
AdditionalSpectrumEmission_t *additionalSpectrumEmission,
struct MBSFN_SubframeConfigList *mbsfn_SubframeConfigList)
{
LTE_DL_FRAME_PARMS *fp = &RC.eNB[Mod_id][CC_id]->frame_parms;
//LTE_eNB_UE_stats *eNB_UE_stats = RC.eNB[Mod_id][CC_id].eNB_UE_stats;
//int32_t rx_total_gain_eNB_dB = RC.eNB[Mod_id][CC_id].rx_total_gain_eNB_dB;
int i;
LOG_I(PHY,"[eNB%d] CCid %d: Applying radioResourceConfigCommon\n",Mod_id,CC_id);
fp->prach_config_common.rootSequenceIndex = radioResourceConfigCommon->prach_Config.rootSequenceIndex;
LOG_D(PHY,"prach_config_common.rootSequenceIndex = %d\n",fp->prach_config_common.rootSequenceIndex );
fp->prach_config_common.prach_Config_enabled=1;
fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.prach_ConfigIndex;
LOG_D(PHY,"prach_config_common.prach_ConfigInfo.prach_ConfigIndex = %d\n",fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex);
fp->prach_config_common.prach_ConfigInfo.highSpeedFlag =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.highSpeedFlag;
LOG_D(PHY,"prach_config_common.prach_ConfigInfo.highSpeedFlag = %d\n",fp->prach_config_common.prach_ConfigInfo.highSpeedFlag);
fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig;
LOG_D(PHY,"prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig = %d\n",fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig);
fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.prach_FreqOffset;
LOG_D(PHY,"prach_config_common.prach_ConfigInfo.prach_FreqOffset = %d\n",fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset);
init_prach_tables(839);
compute_prach_seq(&fp->prach_config_common,fp->frame_type,
RC.eNB[Mod_id][CC_id]->X_u);
fp->pucch_config_common.deltaPUCCH_Shift = 1+radioResourceConfigCommon->pucch_ConfigCommon.deltaPUCCH_Shift;
fp->pucch_config_common.nRB_CQI = radioResourceConfigCommon->pucch_ConfigCommon.nRB_CQI;
fp->pucch_config_common.nCS_AN = radioResourceConfigCommon->pucch_ConfigCommon.nCS_AN;
fp->pucch_config_common.n1PUCCH_AN = radioResourceConfigCommon->pucch_ConfigCommon.n1PUCCH_AN;
fp->pdsch_config_common.referenceSignalPower = radioResourceConfigCommon->pdsch_ConfigCommon.referenceSignalPower;
fp->pdsch_config_common.p_b = radioResourceConfigCommon->pdsch_ConfigCommon.p_b;
fp->pusch_config_common.n_SB = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.n_SB;
LOG_D(PHY,"pusch_config_common.n_SB = %d\n",fp->pusch_config_common.n_SB );
fp->pusch_config_common.hoppingMode = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode;
LOG_D(PHY,"pusch_config_common.hoppingMode = %d\n",fp->pusch_config_common.hoppingMode);
fp->pusch_config_common.pusch_HoppingOffset = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset;
LOG_D(PHY,"pusch_config_common.pusch_HoppingOffset = %d\n",fp->pusch_config_common.pusch_HoppingOffset);
fp->pusch_config_common.enable64QAM = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM;
LOG_D(PHY,"pusch_config_common.enable64QAM = %d\n",fp->pusch_config_common.enable64QAM );
fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled;
LOG_D(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled);
fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH;
LOG_D(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH);
fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled;
LOG_D(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled);
fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = dmrs1_tab[radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift];
LOG_D(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift);
init_ul_hopping(fp);
fp->soundingrs_ul_config_common.enabled_flag = 0;
if (radioResourceConfigCommon->soundingRS_UL_ConfigCommon.present==SoundingRS_UL_ConfigCommon_PR_setup) {
fp->soundingrs_ul_config_common.enabled_flag = 1;
fp->soundingrs_ul_config_common.srs_BandwidthConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_BandwidthConfig;
fp->soundingrs_ul_config_common.srs_SubframeConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig;
fp->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission;
if (radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts)
fp->soundingrs_ul_config_common.srs_MaxUpPts = 1;
else
fp->soundingrs_ul_config_common.srs_MaxUpPts = 0;
}
fp->ul_power_control_config_common.p0_NominalPUSCH = radioResourceConfigCommon->uplinkPowerControlCommon.p0_NominalPUSCH;
fp->ul_power_control_config_common.alpha = radioResourceConfigCommon->uplinkPowerControlCommon.alpha;
fp->ul_power_control_config_common.p0_NominalPUCCH = radioResourceConfigCommon->uplinkPowerControlCommon.p0_NominalPUCCH;
fp->ul_power_control_config_common.deltaPreambleMsg3 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaPreambleMsg3;
fp->ul_power_control_config_common.deltaF_PUCCH_Format1 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1;
fp->ul_power_control_config_common.deltaF_PUCCH_Format1b = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b;
fp->ul_power_control_config_common.deltaF_PUCCH_Format2 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2;
fp->ul_power_control_config_common.deltaF_PUCCH_Format2a = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a;
fp->ul_power_control_config_common.deltaF_PUCCH_Format2b = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b;
fp->maxHARQ_Msg3Tx = radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx;
// Now configure some of the Physical Channels
// PUCCH
init_ncs_cell(fp,RC.eNB[Mod_id][CC_id]->ncs_cell);
init_ul_hopping(fp);
// MBSFN
if (mbsfn_SubframeConfigList != NULL) {
fp->num_MBSFN_config = mbsfn_SubframeConfigList->list.count;
for (i = 0; i < mbsfn_SubframeConfigList->list.count; i++) {
fp->MBSFN_config[i].radioframeAllocationPeriod = mbsfn_SubframeConfigList->list.array[i]->radioframeAllocationPeriod;
fp->MBSFN_config[i].radioframeAllocationOffset = mbsfn_SubframeConfigList->list.array[i]->radioframeAllocationOffset;
if (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.present == MBSFN_SubframeConfig__subframeAllocation_PR_oneFrame) {
fp->MBSFN_config[i].fourFrames_flag = 0;
fp->MBSFN_config[i].mbsfn_SubframeConfig = mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[0]; // 6-bit subframe configuration
LOG_I (PHY, "[CONFIG] MBSFN_SubframeConfig[%d] pattern is %d\n", i, fp->MBSFN_config[i].mbsfn_SubframeConfig);
} else if (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.present == MBSFN_SubframeConfig__subframeAllocation_PR_fourFrames) { // 24-bit subframe configuration
fp->MBSFN_config[i].fourFrames_flag = 1;
fp->MBSFN_config[i].mbsfn_SubframeConfig =
mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[2]|
(mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[1]<<8)|
(mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[0]<<16);
LOG_I(PHY, "[CONFIG] MBSFN_SubframeConfig[%d] pattern is %x\n", i,
fp->MBSFN_config[i].mbsfn_SubframeConfig);
}
}
} else
fp->num_MBSFN_config = 0;
//
}
*/
void
phy_config_sib13_eNB
(
module_id_t
Mod_id
,
int
CC_id
,
int
mbsfn_Area_idx
,
long
mbsfn_AreaId_r9
)
...
...
@@ -480,241 +338,6 @@ void phy_config_sib13_eNB(module_id_t Mod_id,int CC_id,int mbsfn_Area_idx,
}
void
phy_config_dedicated_eNB_step2
(
PHY_VARS_eNB
*
eNB
)
{
uint16_t
UE_id
;
struct
LTE_PhysicalConfigDedicated
*
physicalConfigDedicated
;
LTE_DL_FRAME_PARMS
*
fp
=
&
eNB
->
frame_parms
;
for
(
UE_id
=
0
;
UE_id
<
NUMBER_OF_UE_MAX
;
UE_id
++
)
{
physicalConfigDedicated
=
eNB
->
physicalConfigDedicated
[
UE_id
];
if
(
physicalConfigDedicated
!=
NULL
)
{
LOG_I
(
PHY
,
"[eNB %d] Sent physicalConfigDedicated=%p for UE %d
\n
"
,
eNB
->
Mod_id
,
physicalConfigDedicated
,
UE_id
);
LOG_D
(
PHY
,
"------------------------------------------------------------------------
\n
"
);
if
(
physicalConfigDedicated
->
pdsch_ConfigDedicated
)
{
eNB
->
pdsch_config_dedicated
[
UE_id
].
p_a
=
physicalConfigDedicated
->
pdsch_ConfigDedicated
->
p_a
;
LOG_D
(
PHY
,
"pdsch_config_dedicated.p_a %d
\n
"
,
eNB
->
pdsch_config_dedicated
[
UE_id
].
p_a
);
LOG_D
(
PHY
,
"
\n
"
);
}
if
(
physicalConfigDedicated
->
pucch_ConfigDedicated
)
{
if
(
physicalConfigDedicated
->
pucch_ConfigDedicated
->
ackNackRepetition
.
present
==
LTE_PUCCH_ConfigDedicated__ackNackRepetition_PR_release
)
eNB
->
pucch_config_dedicated
[
UE_id
].
ackNackRepetition
=
0
;
else
{
eNB
->
pucch_config_dedicated
[
UE_id
].
ackNackRepetition
=
1
;
}
if
(
fp
->
frame_type
==
FDD
)
{
eNB
->
pucch_config_dedicated
[
UE_id
].
tdd_AckNackFeedbackMode
=
multiplexing
;
}
else
{
if
(
physicalConfigDedicated
->
pucch_ConfigDedicated
->
tdd_AckNackFeedbackMode
)
eNB
->
pucch_config_dedicated
[
UE_id
].
tdd_AckNackFeedbackMode
=
*
physicalConfigDedicated
->
pucch_ConfigDedicated
->
tdd_AckNackFeedbackMode
;
else
eNB
->
pucch_config_dedicated
[
UE_id
].
tdd_AckNackFeedbackMode
=
bundling
;
}
if
(
eNB
->
pucch_config_dedicated
[
UE_id
].
tdd_AckNackFeedbackMode
==
multiplexing
)
LOG_D
(
PHY
,
"pucch_config_dedicated.tdd_AckNackFeedbackMode = multiplexing
\n
"
);
else
LOG_D
(
PHY
,
"pucch_config_dedicated.tdd_AckNackFeedbackMode = bundling
\n
"
);
}
if
(
physicalConfigDedicated
->
pusch_ConfigDedicated
)
{
eNB
->
pusch_config_dedicated
[
UE_id
].
betaOffset_ACK_Index
=
physicalConfigDedicated
->
pusch_ConfigDedicated
->
betaOffset_ACK_Index
;
eNB
->
pusch_config_dedicated
[
UE_id
].
betaOffset_RI_Index
=
physicalConfigDedicated
->
pusch_ConfigDedicated
->
betaOffset_RI_Index
;
eNB
->
pusch_config_dedicated
[
UE_id
].
betaOffset_CQI_Index
=
physicalConfigDedicated
->
pusch_ConfigDedicated
->
betaOffset_CQI_Index
;
LOG_E
(
PHY
,
"pusch_config_dedicated.betaOffset_ACK_Index %d
\n
"
,
eNB
->
pusch_config_dedicated
[
UE_id
].
betaOffset_ACK_Index
);
LOG_E
(
PHY
,
"pusch_config_dedicated.betaOffset_RI_Index %d
\n
"
,
eNB
->
pusch_config_dedicated
[
UE_id
].
betaOffset_RI_Index
);
LOG_E
(
PHY
,
"pusch_config_dedicated.betaOffset_CQI_Index %d
\n
"
,
eNB
->
pusch_config_dedicated
[
UE_id
].
betaOffset_CQI_Index
);
LOG_D
(
PHY
,
"
\n
"
);
}
if
(
physicalConfigDedicated
->
uplinkPowerControlDedicated
)
{
eNB
->
ul_power_control_dedicated
[
UE_id
].
p0_UE_PUSCH
=
physicalConfigDedicated
->
uplinkPowerControlDedicated
->
p0_UE_PUSCH
;
eNB
->
ul_power_control_dedicated
[
UE_id
].
deltaMCS_Enabled
=
physicalConfigDedicated
->
uplinkPowerControlDedicated
->
deltaMCS_Enabled
;
eNB
->
ul_power_control_dedicated
[
UE_id
].
accumulationEnabled
=
physicalConfigDedicated
->
uplinkPowerControlDedicated
->
accumulationEnabled
;
eNB
->
ul_power_control_dedicated
[
UE_id
].
p0_UE_PUCCH
=
physicalConfigDedicated
->
uplinkPowerControlDedicated
->
p0_UE_PUCCH
;
eNB
->
ul_power_control_dedicated
[
UE_id
].
pSRS_Offset
=
physicalConfigDedicated
->
uplinkPowerControlDedicated
->
pSRS_Offset
;
eNB
->
ul_power_control_dedicated
[
UE_id
].
filterCoefficient
=
*
physicalConfigDedicated
->
uplinkPowerControlDedicated
->
filterCoefficient
;
LOG_D
(
PHY
,
"ul_power_control_dedicated.p0_UE_PUSCH %d
\n
"
,
eNB
->
ul_power_control_dedicated
[
UE_id
].
p0_UE_PUSCH
);
LOG_D
(
PHY
,
"ul_power_control_dedicated.deltaMCS_Enabled %d
\n
"
,
eNB
->
ul_power_control_dedicated
[
UE_id
].
deltaMCS_Enabled
);
LOG_D
(
PHY
,
"ul_power_control_dedicated.accumulationEnabled %d
\n
"
,
eNB
->
ul_power_control_dedicated
[
UE_id
].
accumulationEnabled
);
LOG_D
(
PHY
,
"ul_power_control_dedicated.p0_UE_PUCCH %d
\n
"
,
eNB
->
ul_power_control_dedicated
[
UE_id
].
p0_UE_PUCCH
);
LOG_D
(
PHY
,
"ul_power_control_dedicated.pSRS_Offset %d
\n
"
,
eNB
->
ul_power_control_dedicated
[
UE_id
].
pSRS_Offset
);
LOG_D
(
PHY
,
"ul_power_control_dedicated.filterCoefficient %d
\n
"
,
eNB
->
ul_power_control_dedicated
[
UE_id
].
filterCoefficient
);
LOG_D
(
PHY
,
"
\n
"
);
}
if
(
physicalConfigDedicated
->
antennaInfo
)
{
eNB
->
transmission_mode
[
UE_id
]
=
1
+
(
physicalConfigDedicated
->
antennaInfo
->
choice
.
explicitValue
.
transmissionMode
);
LOG_D
(
PHY
,
"Transmission Mode (phy_config_dedicated_eNB_step2) %d
\n
"
,
eNB
->
transmission_mode
[
UE_id
]);
LOG_D
(
PHY
,
"
\n
"
);
}
if
(
physicalConfigDedicated
->
schedulingRequestConfig
)
{
if
(
physicalConfigDedicated
->
schedulingRequestConfig
->
present
==
LTE_SchedulingRequestConfig_PR_setup
)
{
eNB
->
scheduling_request_config
[
UE_id
].
sr_PUCCH_ResourceIndex
=
physicalConfigDedicated
->
schedulingRequestConfig
->
choice
.
setup
.
sr_PUCCH_ResourceIndex
;
eNB
->
scheduling_request_config
[
UE_id
].
sr_ConfigIndex
=
physicalConfigDedicated
->
schedulingRequestConfig
->
choice
.
setup
.
sr_ConfigIndex
;
eNB
->
scheduling_request_config
[
UE_id
].
dsr_TransMax
=
physicalConfigDedicated
->
schedulingRequestConfig
->
choice
.
setup
.
dsr_TransMax
;
LOG_D
(
PHY
,
"scheduling_request_config.sr_PUCCH_ResourceIndex %d
\n
"
,
eNB
->
scheduling_request_config
[
UE_id
].
sr_PUCCH_ResourceIndex
);
LOG_D
(
PHY
,
"scheduling_request_config.sr_ConfigIndex %d
\n
"
,
eNB
->
scheduling_request_config
[
UE_id
].
sr_ConfigIndex
);
LOG_D
(
PHY
,
"scheduling_request_config.dsr_TransMax %d
\n
"
,
eNB
->
scheduling_request_config
[
UE_id
].
dsr_TransMax
);
}
LOG_D
(
PHY
,
"------------------------------------------------------------
\n
"
);
}
if
(
physicalConfigDedicated
->
soundingRS_UL_ConfigDedicated
)
{
if
(
physicalConfigDedicated
->
soundingRS_UL_ConfigDedicated
->
present
==
LTE_SoundingRS_UL_ConfigDedicated_PR_setup
)
{
eNB
->
soundingrs_ul_config_dedicated
[
UE_id
].
srsConfigDedicatedSetup
=
1
;
eNB
->
soundingrs_ul_config_dedicated
[
UE_id
].
duration
=
physicalConfigDedicated
->
soundingRS_UL_ConfigDedicated
->
choice
.
setup
.
duration
;
eNB
->
soundingrs_ul_config_dedicated
[
UE_id
].
cyclicShift
=
physicalConfigDedicated
->
soundingRS_UL_ConfigDedicated
->
choice
.
setup
.
cyclicShift
;
eNB
->
soundingrs_ul_config_dedicated
[
UE_id
].
freqDomainPosition
=
physicalConfigDedicated
->
soundingRS_UL_ConfigDedicated
->
choice
.
setup
.
freqDomainPosition
;
eNB
->
soundingrs_ul_config_dedicated
[
UE_id
].
srs_Bandwidth
=
physicalConfigDedicated
->
soundingRS_UL_ConfigDedicated
->
choice
.
setup
.
srs_Bandwidth
;
eNB
->
soundingrs_ul_config_dedicated
[
UE_id
].
srs_ConfigIndex
=
physicalConfigDedicated
->
soundingRS_UL_ConfigDedicated
->
choice
.
setup
.
srs_ConfigIndex
;
eNB
->
soundingrs_ul_config_dedicated
[
UE_id
].
srs_HoppingBandwidth
=
physicalConfigDedicated
->
soundingRS_UL_ConfigDedicated
->
choice
.
setup
.
srs_HoppingBandwidth
;
eNB
->
soundingrs_ul_config_dedicated
[
UE_id
].
transmissionComb
=
physicalConfigDedicated
->
soundingRS_UL_ConfigDedicated
->
choice
.
setup
.
transmissionComb
;
LOG_D
(
PHY
,
"soundingrs_ul_config_dedicated.srs_ConfigIndex %d
\n
"
,
eNB
->
soundingrs_ul_config_dedicated
[
UE_id
].
srs_ConfigIndex
);
}
LOG_D
(
PHY
,
"------------------------------------------------------------
\n
"
);
}
eNB
->
physicalConfigDedicated
[
UE_id
]
=
NULL
;
}
}
}
/*
void phy_config_dedicated_eNB(uint8_t Mod_id,
int CC_id,
uint16_t rnti,
struct PhysicalConfigDedicated *physicalConfigDedicated)
{
PHY_VARS_eNB *eNB = RC.eNB[Mod_id][CC_id];
int8_t UE_id = find_ue(rnti,eNB);
int i;
if (UE_id == -1) {
LOG_E( PHY, "[eNB %"PRIu8"] find_ue() returns -1\n", Mod_id);
return;
}
if (physicalConfigDedicated) {
eNB->physicalConfigDedicated[UE_id] = physicalConfigDedicated;
LOG_I(PHY,"phy_config_dedicated_eNB: physicalConfigDedicated=%p\n",physicalConfigDedicated);
if (physicalConfigDedicated->antennaInfo) {
switch(physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode) {
case AntennaInfoDedicated__transmissionMode_tm1:
eNB->transmission_mode[UE_id] = 1;
break;
case AntennaInfoDedicated__transmissionMode_tm2:
eNB->transmission_mode[UE_id] = 2;
break;
case AntennaInfoDedicated__transmissionMode_tm3:
eNB->transmission_mode[UE_id] = 3;
break;
case AntennaInfoDedicated__transmissionMode_tm4:
eNB->transmission_mode[UE_id] = 4;
break;
case AntennaInfoDedicated__transmissionMode_tm5:
eNB->transmission_mode[UE_id] = 5;
break;
case AntennaInfoDedicated__transmissionMode_tm6:
eNB->transmission_mode[UE_id] = 6;
break;
case AntennaInfoDedicated__transmissionMode_tm7:
lte_gold_ue_spec_port5(eNB->lte_gold_uespec_port5_table[0],eNB->frame_parms.Nid_cell,rnti);
for (i=0;i<eNB->num_RU;i++) eNB->RU_list[i]->do_precoding=1;
eNB->transmission_mode[UE_id] = 7;
break;
default:
LOG_E (PHY, "Unknown transmission mode!\n");
break;
}
LOG_I(PHY,"Transmission Mode (phy_config_dedicated_eNB) %d\n",eNB->transmission_mode[UE_id]);
} else {
LOG_D(PHY,"[eNB %d] : Received NULL radioResourceConfigDedicated->antennaInfo from eNB %d\n",Mod_id,UE_id);
}
} else {
LOG_E(PHY,"[eNB %d] Received NULL radioResourceConfigDedicated from eNB %d\n",Mod_id, UE_id);
return;
}
}
*/
/*
void phy_config_dedicated_scell_eNB(uint8_t Mod_id,
uint16_t rnti,
SCellToAddMod_r10_t *sCellToAddMod_r10,
int CC_id)
{
uint8_t UE_id = find_ue(rnti,RC.eNB[Mod_id][0]);
struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10 = sCellToAddMod_r10->radioResourceConfigDedicatedSCell_r10->physicalConfigDedicatedSCell_r10;
//struct RadioResourceConfigCommonSCell_r10 *physicalConfigCommonSCell_r10 = sCellToAddMod_r10->radioResourceConfigCommonSCell_r10;
//PhysCellId_t physCellId_r10 = sCellToAddMod_r10->cellIdentification_r10->physCellId_r10;
ARFCN_ValueEUTRA_t dl_CarrierFreq_r10 = sCellToAddMod_r10->cellIdentification_r10->dl_CarrierFreq_r10;
uint32_t carrier_freq_local;
if ((dl_CarrierFreq_r10>=36000) && (dl_CarrierFreq_r10<=36199)) {
carrier_freq_local = 1900000000 + (dl_CarrierFreq_r10-36000)*100000; //band 33 from 3GPP 36.101 v 10.9 Table 5.7.3-1
LOG_I(PHY,"[eNB %d] Frame %d: Configured SCell %d to frequency %d (ARFCN %ld) for UE %d\n",Mod_id,
//eNB->frame
0,
CC_id,carrier_freq_local,dl_CarrierFreq_r10,UE_id);
} else if ((dl_CarrierFreq_r10>=6150) && (dl_CarrierFreq_r10<=6449)) {
carrier_freq_local = 832000000 + (dl_CarrierFreq_r10-6150)*100000; //band 20 from 3GPP 36.101 v 10.9 Table 5.7.3-1
// this is actually for the UL only, but we use it for DL too, since there is no TDD mode for this band
LOG_I(PHY,"[eNB %d] Frame %d: Configured SCell %d to frequency %d (ARFCN %ld) for UE %d\n",Mod_id,
//eNB->frame
0,CC_id,carrier_freq_local,dl_CarrierFreq_r10,UE_id);
} else {
LOG_E(PHY,"[eNB %d] Frame %d: ARFCN %ld of SCell %d for UE %d not supported\n",Mod_id,
//eNB->frame
0,dl_CarrierFreq_r10,CC_id,UE_id);
}
if (physicalConfigDedicatedSCell_r10) {
//#warning " eNB->physicalConfigDedicatedSCell_r10 does not exist in eNB"
// eNB->physicalConfigDedicatedSCell_r10[UE_id] = physicalConfigDedicatedSCell_r10;
LOG_I(PHY,"[eNB %d] Frame %d: Configured phyConfigDedicatedSCell with CC_id %d for UE %d\n",Mod_id,
//eNB->frame
0,CC_id,UE_id);
} else {
LOG_E(PHY,"[eNB %d] Frame %d: Received NULL radioResourceConfigDedicated (CC_id %d, UE %d)\n",Mod_id,
//eNB->frame
0,CC_id,UE_id);
return;
}
}
*/
int
phy_init_lte_eNB
(
PHY_VARS_eNB
*
eNB
,
unsigned
char
is_secondary_eNB
,
unsigned
char
abstraction_flag
)
...
...
openair1/SCHED/ru_procedures.c
View file @
b9363eef
...
...
@@ -438,74 +438,46 @@ void feptx_prec(RU_t *ru) {
for
(
aa
=
0
;
aa
<
ru
->
nb_tx
;
aa
++
)
{
memset
(
ru
->
common
.
txdataF_BF
[
aa
],
0
,
sizeof
(
int32_t
)
*
fp
->
ofdm_symbol_size
*
fp
->
symbols_per_tti
);
for
(
p
=
0
;
p
<
NB_ANTENNA_PORTS_ENB
;
p
++
)
{
#ifdef NO_PRECODING
memcpy
((
void
*
)
ru
->
common
.
txdataF_BF
[
aa
],
(
void
*
)
&
eNB
->
common_vars
.
txdataF
[
aa
][
subframe
*
fp
->
symbols_per_tti
*
fp
->
ofdm_symbol_size
],
sizeof
(
int32_t
)
*
fp
->
ofdm_symbol_size
*
fp
->
symbols_per_tti
);
#else
if
(
p
<
fp
->
nb_antenna_ports_eNB
)
{
// For the moment this does nothing different than below, except ignore antenna ports 5,7,8.
for
(
l
=
0
;
l
<
pdcch_vars
->
num_pdcch_symbols
;
l
++
)
beam_precoding
(
eNB
->
common_vars
.
txdataF
,
ru
->
common
.
txdataF_BF
,
subframe
,
fp
,
ru
->
beam_weights
,
l
,
aa
,
p
,
eNB
->
Mod_id
);
}
//if (p<fp->nb_antenna_ports_eNB)
if
(
ru
->
do_precoding
==
0
)
{
if
(
p
==
0
)
memcpy
((
void
*
)
ru
->
common
.
txdataF_BF
[
aa
],
(
void
*
)
&
eNB
->
common_vars
.
txdataF
[
aa
][
subframe
*
fp
->
symbols_per_tti
*
fp
->
ofdm_symbol_size
],
sizeof
(
int32_t
)
*
fp
->
ofdm_symbol_size
*
fp
->
symbols_per_tti
);
}
else
{
if
(
p
<
fp
->
nb_antenna_ports_eNB
)
{
// For the moment this does nothing different than below, except ignore antenna ports 5,7,8.
for
(
l
=
0
;
l
<
pdcch_vars
->
num_pdcch_symbols
;
l
++
)
beam_precoding
(
eNB
->
common_vars
.
txdataF
,
ru
->
common
.
txdataF_BF
,
subframe
,
fp
,
ru
->
beam_weights
,
l
,
aa
,
p
,
eNB
->
Mod_id
);
}
//if (p<fp->nb_antenna_ports_eNB)
// PDSCH region
if
(
p
<
fp
->
nb_antenna_ports_eNB
||
p
==
5
||
p
==
7
||
p
==
8
)
{
for
(
l
=
pdcch_vars
->
num_pdcch_symbols
;
l
<
fp
->
symbols_per_tti
;
l
++
)
{
beam_precoding
(
eNB
->
common_vars
.
txdataF
,
ru
->
common
.
txdataF_BF
,
subframe
,
fp
,
ru
->
beam_weights
,
l
,
aa
,
p
,
eNB
->
Mod_id
);
}
// for (l=pdcch_vars ....)
}
// if (p<fp->nb_antenna_ports_eNB) ...
#endif //NO_PRECODING
if
(
p
<
fp
->
nb_antenna_ports_eNB
||
p
==
5
||
p
==
7
||
p
==
8
)
{
for
(
l
=
pdcch_vars
->
num_pdcch_symbols
;
l
<
fp
->
symbols_per_tti
;
l
++
)
{
beam_precoding
(
eNB
->
common_vars
.
txdataF
,
ru
->
common
.
txdataF_BF
,
subframe
,
fp
,
ru
->
beam_weights
,
l
,
aa
,
p
,
eNB
->
Mod_id
);
}
// for (l=pdcch_vars ....)
}
// if (p<fp->nb_antenna_ports_eNB) ...
}
// ru->do_precoding!=0
}
// for (p=0...)
}
// for (aa=0 ...)
if
(
ru
->
idx
<
2
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC
+
ru
->
idx
,
0
);
// VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RU_FEPTX_PREC+ru->idx,0);
///////////////////////////////////////////////////
/* fdragon
eNB = eNB_list[0];
bw = ru->beam_weights[0];
fp = &eNB->frame_parms;
int nb_antenna_ports=15;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC+ru->idx , 1);
beam_precoding_one_eNB(eNB->common_vars.txdataF,
ru->common.txdataF_BF,
bw,
subframe,
nb_antenna_ports,
ru->nb_tx,
fp);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC+ru->idx , 0);
*/
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC
+
ru
->
idx
,
0
);
}
else
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment