transmission mode is now taken into account in RRC signalling
small bugfix in dlsch_demodulation shunted out TM3-7 specific DCI generation in scheduler to enable basic operation. more work needed.
This commit is contained in:
@@ -990,6 +990,7 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
|
||||
break;
|
||||
}
|
||||
|
||||
if (dlsch1_harq) {
|
||||
switch (get_Qm(dlsch1_harq->mcs)) {
|
||||
case 2 :
|
||||
if (rx_type==rx_standard) {
|
||||
@@ -1033,6 +1034,8 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
|
||||
return(-1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return(0);
|
||||
|
||||
}
|
||||
@@ -4795,4 +4798,4 @@ void print_ints(char *s,__m128i *x)
|
||||
tempb[0],tempb[1],tempb[2],tempb[3]);
|
||||
|
||||
}*/
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -392,8 +392,8 @@ int rotate_cpx_vector(int16_t *x,
|
||||
m3 = _mm_sra_epi32(m3,shift); // shift right by shift in order to compensate for the input amplitude
|
||||
|
||||
y_128[0] = _mm_packs_epi32(m2,m3); // pack in 16bit integers with saturation [re im re im re im re im]
|
||||
print_ints("y_128[0]=", &y_128[0]);
|
||||
#elif defined(__arm__)
|
||||
//print_ints("y_128[0]=", &y_128[0]);
|
||||
#elif defined(__arm__)
|
||||
|
||||
ab_re0 = vmull_s16(((int16x4_t*)xd)[0],((int16x4_t*)&bconj)[0]);
|
||||
ab_re1 = vmull_s16(((int16x4_t*)xd)[1],((int16x4_t*)&bconj)[1]);
|
||||
|
||||
@@ -737,7 +737,8 @@ schedule_ue_spec(
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
/*
|
||||
// this code is disabled for now - needs to be done properly
|
||||
case 4:
|
||||
// if (nb_rb>10) {
|
||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->ndi1 = 0;
|
||||
@@ -775,6 +776,7 @@ schedule_ue_spec(
|
||||
((DCI1E_5MHz_2A_M10PRB_TDD_t*)DLSCH_dci)->dai = (UE_list->UE_template[CC_id][UE_id].DAI-1)&3;
|
||||
((DCI1E_5MHz_2A_M10PRB_TDD_t*)DLSCH_dci)->dl_power_off = 1;//dl_pow_off[UE_id];
|
||||
break;
|
||||
*/
|
||||
}
|
||||
|
||||
add_ue_dlsch_info(module_idP,
|
||||
@@ -1402,8 +1404,9 @@ schedule_ue_spec(
|
||||
|
||||
break;
|
||||
|
||||
/*
|
||||
// disabled for now as this needs to be done properly
|
||||
case 4:
|
||||
// if (nb_rb>10) {
|
||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->mcs1 = mcs;
|
||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->harq_pid = harq_pid;
|
||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->ndi1 = 1;
|
||||
@@ -1411,15 +1414,6 @@ schedule_ue_spec(
|
||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->dai = (UE_list->UE_template[CC_id][UE_id].DAI-1)&3;
|
||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->TPC = tpc;
|
||||
|
||||
//}
|
||||
/* else {
|
||||
((DCI2_5MHz_2A_L10PRB_TDD_t*)DLSCH_dci)->mcs1 = eNB_UE_stats->DL_cqi[0];
|
||||
((DCI2_5MHz_2A_L10PRB_TDD_t*)DLSCH_dci)->harq_pid = harq_pid;
|
||||
((DCI2_5MHz_2A_L10PRB_TDD_t*)DLSCH_dci)->ndi1 = 1;
|
||||
((DCI2_5MHz_2A_L10PRB_TDD_t*)DLSCH_dci)->rv1 = round&3;
|
||||
((DCI2_5MHz_2A_L10PRB_TDD_t*)DLSCH_dci)->tpmi = 5;
|
||||
((DCI2_5MHz_2A_L10PRB_TDD_t*)DLSCH_dci)->dai = (UE_list->UE_template[CC_id][UE_id].DAI-1)&3;
|
||||
}*/
|
||||
break;
|
||||
|
||||
case 5:
|
||||
@@ -1450,6 +1444,7 @@ schedule_ue_spec(
|
||||
((DCI1E_5MHz_2A_M10PRB_TDD_t*)DLSCH_dci)->TPC = tpc;
|
||||
|
||||
break;
|
||||
*/
|
||||
}
|
||||
|
||||
// Toggle NDI for next time
|
||||
@@ -1729,9 +1724,9 @@ fill_DLSCH_dci(
|
||||
|
||||
break;
|
||||
|
||||
/*
|
||||
case 4:
|
||||
|
||||
//if (nb_rb>10) {
|
||||
// DCI format 2_2A
|
||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->rballoc = allocate_prbs_sub(nb_rb,rballoc_sub);
|
||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->rah = 0;
|
||||
@@ -1743,17 +1738,6 @@ fill_DLSCH_dci(
|
||||
sizeof_DCI2_5MHz_2A_TDD_t,
|
||||
format2,
|
||||
0);
|
||||
/*}
|
||||
else {
|
||||
((DCI2_5MHz_2A_L10PRB_TDD_t*)DLSCH_dci)->rballoc = allocate_prbs_sub(nb_rb,rballoc_sub);
|
||||
add_ue_spec_dci(DCI_pdu,
|
||||
DLSCH_dci,
|
||||
rnti,
|
||||
sizeof(DCI2_5MHz_2A_L10PRB_TDD_t),
|
||||
2,//aggregation,
|
||||
sizeof_DCI2_5MHz_2A_L10PRB_TDD_t,
|
||||
format2_2A_L10PRB);
|
||||
}*/
|
||||
break;
|
||||
|
||||
case 5:
|
||||
@@ -1783,6 +1767,7 @@ fill_DLSCH_dci(
|
||||
format1E_2A_M10PRB,
|
||||
0);
|
||||
break;
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ int errno;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//#define XER_PRINT
|
||||
#define XER_PRINT
|
||||
|
||||
extern Enb_properties_array_t enb_properties;
|
||||
typedef struct xer_sprint_string_s {
|
||||
|
||||
@@ -3277,7 +3277,7 @@ rrc_eNB_generate_RRCConnectionSetup(
|
||||
do_RRCConnectionSetup(ctxt_pP,
|
||||
ue_context_pP,
|
||||
(uint8_t*) eNB_rrc_inst[ctxt_pP->module_id].carrier[CC_id].Srb0.Tx_buffer.Payload,
|
||||
(mac_xface->lte_frame_parms->nb_antennas_tx==2)?2:1,
|
||||
mac_xface->get_transmission_mode(ctxt_pP->module_id,CC_id,ue_context_pP->ue_id_rnti),
|
||||
rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id),
|
||||
mac_xface->lte_frame_parms,
|
||||
SRB_configList,
|
||||
|
||||
@@ -47,7 +47,7 @@ eNBs =
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -24;
|
||||
pdsch_p_b = 0;
|
||||
pdsch_p_b = 1;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
pusch_hoppingMode = "interSubFrame";
|
||||
|
||||
@@ -684,8 +684,9 @@ void get_simulation_options(int argc, char *argv[])
|
||||
case 'x':
|
||||
oai_emulation.info.transmission_mode[0] = atoi (optarg);
|
||||
|
||||
if ((oai_emulation.info.transmission_mode[0] != 1) && (oai_emulation.info.transmission_mode[0] != 2) && (oai_emulation.info.transmission_mode[0] != 3)
|
||||
&& (oai_emulation.info.transmission_mode[0] != 5) && (oai_emulation.info.transmission_mode[0] != 6)) {
|
||||
if ((oai_emulation.info.transmission_mode[0] != 1) && (oai_emulation.info.transmission_mode[0] != 2) &&
|
||||
(oai_emulation.info.transmission_mode[0] != 3) && (oai_emulation.info.transmission_mode[0] != 4) &&
|
||||
(oai_emulation.info.transmission_mode[0] != 5) && (oai_emulation.info.transmission_mode[0] != 6)) {
|
||||
printf("Unsupported transmission mode %d\n",oai_emulation.info.transmission_mode[0]);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user