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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dlsch1_harq) {
|
||||||
switch (get_Qm(dlsch1_harq->mcs)) {
|
switch (get_Qm(dlsch1_harq->mcs)) {
|
||||||
case 2 :
|
case 2 :
|
||||||
if (rx_type==rx_standard) {
|
if (rx_type==rx_standard) {
|
||||||
@@ -1033,6 +1034,8 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
|
|||||||
return(-1);
|
return(-1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -4795,4 +4798,4 @@ void print_ints(char *s,__m128i *x)
|
|||||||
tempb[0],tempb[1],tempb[2],tempb[3]);
|
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
|
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]
|
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]);
|
//print_ints("y_128[0]=", &y_128[0]);
|
||||||
#elif defined(__arm__)
|
#elif defined(__arm__)
|
||||||
|
|
||||||
ab_re0 = vmull_s16(((int16x4_t*)xd)[0],((int16x4_t*)&bconj)[0]);
|
ab_re0 = vmull_s16(((int16x4_t*)xd)[0],((int16x4_t*)&bconj)[0]);
|
||||||
ab_re1 = vmull_s16(((int16x4_t*)xd)[1],((int16x4_t*)&bconj)[1]);
|
ab_re1 = vmull_s16(((int16x4_t*)xd)[1],((int16x4_t*)&bconj)[1]);
|
||||||
|
|||||||
@@ -737,7 +737,8 @@ schedule_ue_spec(
|
|||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
/*
|
||||||
|
// this code is disabled for now - needs to be done properly
|
||||||
case 4:
|
case 4:
|
||||||
// if (nb_rb>10) {
|
// if (nb_rb>10) {
|
||||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->ndi1 = 0;
|
((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)->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];
|
((DCI1E_5MHz_2A_M10PRB_TDD_t*)DLSCH_dci)->dl_power_off = 1;//dl_pow_off[UE_id];
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
add_ue_dlsch_info(module_idP,
|
add_ue_dlsch_info(module_idP,
|
||||||
@@ -1402,8 +1404,9 @@ schedule_ue_spec(
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
|
// disabled for now as this needs to be done properly
|
||||||
case 4:
|
case 4:
|
||||||
// if (nb_rb>10) {
|
|
||||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->mcs1 = mcs;
|
((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)->harq_pid = harq_pid;
|
||||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->ndi1 = 1;
|
((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)->dai = (UE_list->UE_template[CC_id][UE_id].DAI-1)&3;
|
||||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->TPC = tpc;
|
((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;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
@@ -1450,6 +1444,7 @@ schedule_ue_spec(
|
|||||||
((DCI1E_5MHz_2A_M10PRB_TDD_t*)DLSCH_dci)->TPC = tpc;
|
((DCI1E_5MHz_2A_M10PRB_TDD_t*)DLSCH_dci)->TPC = tpc;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
// Toggle NDI for next time
|
// Toggle NDI for next time
|
||||||
@@ -1729,9 +1724,9 @@ fill_DLSCH_dci(
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
case 4:
|
case 4:
|
||||||
|
|
||||||
//if (nb_rb>10) {
|
|
||||||
// DCI format 2_2A
|
// 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)->rballoc = allocate_prbs_sub(nb_rb,rballoc_sub);
|
||||||
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->rah = 0;
|
((DCI2_5MHz_2A_TDD_t*)DLSCH_dci)->rah = 0;
|
||||||
@@ -1743,17 +1738,6 @@ fill_DLSCH_dci(
|
|||||||
sizeof_DCI2_5MHz_2A_TDD_t,
|
sizeof_DCI2_5MHz_2A_TDD_t,
|
||||||
format2,
|
format2,
|
||||||
0);
|
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;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
@@ -1783,6 +1767,7 @@ fill_DLSCH_dci(
|
|||||||
format1E_2A_M10PRB,
|
format1E_2A_M10PRB,
|
||||||
0);
|
0);
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ int errno;
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//#define XER_PRINT
|
#define XER_PRINT
|
||||||
|
|
||||||
extern Enb_properties_array_t enb_properties;
|
extern Enb_properties_array_t enb_properties;
|
||||||
typedef struct xer_sprint_string_s {
|
typedef struct xer_sprint_string_s {
|
||||||
|
|||||||
@@ -3277,7 +3277,7 @@ rrc_eNB_generate_RRCConnectionSetup(
|
|||||||
do_RRCConnectionSetup(ctxt_pP,
|
do_RRCConnectionSetup(ctxt_pP,
|
||||||
ue_context_pP,
|
ue_context_pP,
|
||||||
(uint8_t*) eNB_rrc_inst[ctxt_pP->module_id].carrier[CC_id].Srb0.Tx_buffer.Payload,
|
(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),
|
rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id),
|
||||||
mac_xface->lte_frame_parms,
|
mac_xface->lte_frame_parms,
|
||||||
SRB_configList,
|
SRB_configList,
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ eNBs =
|
|||||||
pucch_nCS_AN = 0;
|
pucch_nCS_AN = 0;
|
||||||
pucch_n1_AN = 32;
|
pucch_n1_AN = 32;
|
||||||
pdsch_referenceSignalPower = -24;
|
pdsch_referenceSignalPower = -24;
|
||||||
pdsch_p_b = 0;
|
pdsch_p_b = 1;
|
||||||
pusch_n_SB = 1;
|
pusch_n_SB = 1;
|
||||||
pusch_enable64QAM = "DISABLE";
|
pusch_enable64QAM = "DISABLE";
|
||||||
pusch_hoppingMode = "interSubFrame";
|
pusch_hoppingMode = "interSubFrame";
|
||||||
|
|||||||
@@ -684,8 +684,9 @@ void get_simulation_options(int argc, char *argv[])
|
|||||||
case 'x':
|
case 'x':
|
||||||
oai_emulation.info.transmission_mode[0] = atoi (optarg);
|
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)
|
if ((oai_emulation.info.transmission_mode[0] != 1) && (oai_emulation.info.transmission_mode[0] != 2) &&
|
||||||
&& (oai_emulation.info.transmission_mode[0] != 5) && (oai_emulation.info.transmission_mode[0] != 6)) {
|
(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]);
|
printf("Unsupported transmission mode %d\n",oai_emulation.info.transmission_mode[0]);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user