updated fill_rar_brY
This commit is contained in:
@@ -132,12 +132,12 @@ unsigned short fill_rar(
|
|||||||
#ifdef Rel14
|
#ifdef Rel14
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
unsigned short fill_rar_br(eNB_MAC_INST *eNB,
|
unsigned short fill_rar_br(eNB_MAC_INST *eNB,
|
||||||
int CC_id,
|
int CC_id,
|
||||||
RA_TEMPLATE *RA_template,
|
RA_TEMPLATE *RA_template,
|
||||||
const frame_t frameP,
|
const frame_t frameP,
|
||||||
const sub_frame_t subframeP,
|
const sub_frame_t subframeP,
|
||||||
uint8_t* const dlsch_buffer,
|
uint8_t* const dlsch_buffer,
|
||||||
const uint8_t ce_level
|
const uint8_t ce_level
|
||||||
)
|
)
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
@@ -147,7 +147,7 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB,
|
|||||||
uint8_t *rar = (uint8_t *)(dlsch_buffer+1);
|
uint8_t *rar = (uint8_t *)(dlsch_buffer+1);
|
||||||
int i;
|
int i;
|
||||||
uint8_t nb,rballoc,reps;
|
uint8_t nb,rballoc,reps;
|
||||||
uint8_t mcs,TPC,ULdelay,cqireq;
|
uint8_t mcs,TPC,ULdelay,cqireq,mpdcch_nb_index;
|
||||||
int input_buffer_length;
|
int input_buffer_length;
|
||||||
|
|
||||||
|
|
||||||
@@ -163,10 +163,10 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB,
|
|||||||
|
|
||||||
int N_NB_index;
|
int N_NB_index;
|
||||||
|
|
||||||
AssertFatal(1==0,"RAR for BL/CE Still to be finished ...\n");
|
AssertFatal(1==0,"RAR for BL/CE Still to be finished ...\n");
|
||||||
|
|
||||||
// Copy the Msg2 narrowband
|
// Copy the Msg2 narrowband
|
||||||
RA_template->msg34_narrowband = RA_template->msg2_narrowband;
|
RA_template->msg34_narrowband = RA_template->msg2_narrowband;
|
||||||
|
|
||||||
if (ce_level<2) { //CE Level 0,1, CEmodeA
|
if (ce_level<2) { //CE Level 0,1, CEmodeA
|
||||||
input_buffer_length =6;
|
input_buffer_length =6;
|
||||||
@@ -177,16 +177,25 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB,
|
|||||||
rar[5] = (uint8_t)(RA_template->rnti&0xff);
|
rar[5] = (uint8_t)(RA_template->rnti&0xff);
|
||||||
//cc->RA_template[ra_idx].timing_offset = 0;
|
//cc->RA_template[ra_idx].timing_offset = 0;
|
||||||
nb = 0;
|
nb = 0;
|
||||||
rballoc = mac_computeRIV(6,1+ce_level,1); // one PRB only for UL Grant in position 1+ce_level within Narrowband
|
reps = 0;
|
||||||
rar[1] |= (rballoc&15)<<(4-N_NB_index); // Hopping = 0 (bit 3), 3 MSBs of rballoc
|
mcs = 7;
|
||||||
|
TPC = 3; // no power increase
|
||||||
reps = 4;
|
|
||||||
mcs = 7;
|
|
||||||
TPC = 3; // no power increase
|
|
||||||
ULdelay = 0;
|
ULdelay = 0;
|
||||||
cqireq = 0;
|
cqireq = 0;
|
||||||
rar[2] |= ((mcs&0x8)>>3); // mcs 10
|
mpdcch_nb_index = 0;
|
||||||
rar[3] = (((mcs&0x7)<<5)) | ((TPC&7)<<2) | ((ULdelay&1)<<1) | (cqireq&1);
|
rballoc = mac_computeRIV(6,1+ce_level,1); // one PRB only for UL Grant in position 1+ce_level within Narrowband
|
||||||
|
unsigned int buffer = 0;
|
||||||
|
buffer |= N_NB_index << (16 + (4 - N_NB_index));
|
||||||
|
buffer |= ((rballoc & 0xFF) << (12 + (4 - N_NB_index)));
|
||||||
|
buffer |= ((reps & 0x03) << (10 + (4 - N_NB_index)));
|
||||||
|
buffer |= ((mcs & 0x07) << (7 + (4 - N_NB_index)));
|
||||||
|
buffer |= ((TPC & 0x07) << (4 + (4 - N_NB_index)));
|
||||||
|
buffer |= ((cqireq & 0x01) << (3 + (4 - N_NB_index)));
|
||||||
|
buffer |= ((ULdelay & 0x01) << (2 + (4 - N_NB_index)));
|
||||||
|
buffer |= ((ULdelay & 0x01) << (4 - N_NB_index));
|
||||||
|
rar[1] = (buffer>>12) & 0x0F;
|
||||||
|
rar[2] = (buffer>>8) & 0xFF;
|
||||||
|
rar[3] = buffer&0xFF;
|
||||||
}
|
}
|
||||||
else { // CE level 2,3 => CEModeB
|
else { // CE level 2,3 => CEModeB
|
||||||
|
|
||||||
|
|||||||
@@ -2333,17 +2333,17 @@ do_RRCConnectionSetup_BR(
|
|||||||
// CQI ReportConfig
|
// CQI ReportConfig
|
||||||
|
|
||||||
/// TODO to be reviewed
|
/// TODO to be reviewed
|
||||||
physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic));
|
physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic));
|
||||||
#if defined(Rel10) || defined(Rel14)
|
#if defined(Rel10) || defined(Rel14)
|
||||||
*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic= CQI_ReportModeAperiodic_rm30;
|
*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic = CQI_ReportModeAperiodic_rm30;
|
||||||
#else
|
#else
|
||||||
*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CQI_ReportConfig__cqi_ReportModeAperiodic_rm30; // HLC CQI, no PMI
|
*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CQI_ReportConfig__cqi_ReportModeAperiodic_rm30; // HLC CQI, no PMI
|
||||||
#endif
|
#endif
|
||||||
physicalConfigDedicated2->cqi_ReportConfig->nomPDSCH_RS_EPRE_Offset = 0; // 0 dB
|
physicalConfigDedicated2->cqi_ReportConfig->nomPDSCH_RS_EPRE_Offset = 0; // 0 dB
|
||||||
//physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=NULL;
|
//physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=NULL;
|
||||||
|
|
||||||
physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic));
|
physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic));
|
||||||
physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release;
|
physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release;
|
||||||
/*
|
/*
|
||||||
physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_setup;
|
physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_setup;
|
||||||
physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_PUCCH_ResourceIndex = 0; // n2_pucch
|
physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_PUCCH_ResourceIndex = 0; // n2_pucch
|
||||||
@@ -2357,46 +2357,46 @@ do_RRCConnectionSetup_BR(
|
|||||||
|
|
||||||
/// TODO to be reviewed
|
/// TODO to be reviewed
|
||||||
if (rrc->srs_enable[CC_id]) {
|
if (rrc->srs_enable[CC_id]) {
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->present = SoundingRS_UL_ConfigDedicated_PR_setup;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->present = SoundingRS_UL_ConfigDedicated_PR_setup;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth =
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth =
|
||||||
SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0;
|
SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth =
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth =
|
||||||
SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0;
|
SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1;
|
||||||
if (carrier->sib1->tdd_Config==NULL) { // FDD
|
if (carrier->sib1->tdd_Config==NULL) { // FDD
|
||||||
if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present
|
if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present
|
||||||
== SoundingRS_UL_ConfigCommon_PR_setup)
|
== SoundingRS_UL_ConfigCommon_PR_setup)
|
||||||
if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0)
|
if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0)
|
||||||
LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n",
|
LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n",
|
||||||
carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig);
|
carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig);
|
||||||
if (ue_context_pP->local_uid >=20)
|
if (ue_context_pP->local_uid >=20)
|
||||||
LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n",
|
LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n",
|
||||||
ue_context_pP->local_uid);
|
ue_context_pP->local_uid);
|
||||||
//the current code will allow for 20 UEs - to be revised for more
|
//the current code will allow for 20 UEs - to be revised for more
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=7+ue_context_pP->local_uid/2;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=7+ue_context_pP->local_uid/2;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present
|
if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present
|
||||||
== SoundingRS_UL_ConfigCommon_PR_setup)
|
== SoundingRS_UL_ConfigCommon_PR_setup)
|
||||||
if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=7) {
|
if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=7) {
|
||||||
LOG_W(RRC,"This code has been optimized for SRS Subframe Config 7 and TDD config 3, but current configs are %d and %d. Expect undefined behaviour!\n",
|
LOG_W(RRC,"This code has been optimized for SRS Subframe Config 7 and TDD config 3, but current configs are %d and %d. Expect undefined behaviour!\n",
|
||||||
carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig,
|
carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig,
|
||||||
carrier->sib1->tdd_Config->subframeAssignment);
|
carrier->sib1->tdd_Config->subframeAssignment);
|
||||||
}
|
}
|
||||||
if (ue_context_pP->local_uid >=6)
|
if (ue_context_pP->local_uid >=6)
|
||||||
LOG_W(RRC,"This code has been optimized for up to 6 UEs, but current UE_id is %d. Expect undefined behaviour!\n",
|
LOG_W(RRC,"This code has been optimized for up to 6 UEs, but current UE_id is %d. Expect undefined behaviour!\n",
|
||||||
ue_context_pP->local_uid);
|
ue_context_pP->local_uid);
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=17+ue_context_pP->local_uid/2;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=17+ue_context_pP->local_uid/2;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2;
|
||||||
}
|
}
|
||||||
LOG_W(RRC,"local UID %d, srs ConfigIndex %d, TransmissionComb %d\n",ue_context_pP->local_uid,
|
LOG_W(RRC,"local UID %d, srs ConfigIndex %d, TransmissionComb %d\n",ue_context_pP->local_uid,
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex,
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex,
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb);
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb);
|
||||||
|
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift=
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift=
|
||||||
SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0;
|
SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//AntennaInfoDedicated
|
//AntennaInfoDedicated
|
||||||
@@ -2530,11 +2530,13 @@ do_RRCConnectionSetup_BR(
|
|||||||
|
|
||||||
// FIXME allocate physicalConfigDedicated2->ext7
|
// FIXME allocate physicalConfigDedicated2->ext7
|
||||||
physicalConfigDedicated2->ext7 = CALLOC(1, sizeof(struct PhysicalConfigDedicated__ext7));
|
physicalConfigDedicated2->ext7 = CALLOC(1, sizeof(struct PhysicalConfigDedicated__ext7));
|
||||||
physicalConfigDedicated2->ext7->pdsch_ConfigDedicated_v1310 = NULL;
|
|
||||||
|
physicalConfigDedicated2->ext7->pdsch_ConfigDedicated_v1310 = NULL; // has some parameters to be filled
|
||||||
|
|
||||||
physicalConfigDedicated2->ext7->pusch_ConfigDedicated_r13 = NULL;
|
physicalConfigDedicated2->ext7->pusch_ConfigDedicated_r13 = NULL;
|
||||||
|
physicalConfigDedicated2->ext7->pucch_ConfigDedicated_r13 = NULL;
|
||||||
|
|
||||||
physicalConfigDedicated2->ext7->pdcch_CandidateReductions_r13 = NULL;
|
physicalConfigDedicated2->ext7->pdcch_CandidateReductions_r13 = NULL;
|
||||||
physicalConfigDedicated2->ext7->pucch_ConfigDedicated_r13 = NULL;
|
|
||||||
|
|
||||||
physicalConfigDedicated2->ext7->cqi_ReportConfig_v1310 = NULL;
|
physicalConfigDedicated2->ext7->cqi_ReportConfig_v1310 = NULL;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user