Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
zhangtu
openairinterface5G
Commits
f52cbeeb
Commit
f52cbeeb
authored
Aug 07, 2016
by
knopp
Browse files
update of ulsim to use phy_procedures
parent
bf220352
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
f52cbeeb
...
...
@@ -44,7 +44,7 @@
#include "PHY/vars.h"
#endif
#include "assertions.h"
//#define DEBUG_DCI
uint32_t
localRIV2alloc_LUT6
[
32
];
...
...
@@ -1216,7 +1216,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
dlsch0_harq
=
dlsch
[
0
]
->
harq_processes
[
harq_pid
];
//
msg
("DCI: Setting subframe_tx for subframe %d\n",subframe);
//
printf
("DCI: Setting subframe_tx for subframe %d\n",subframe);
dlsch
[
0
]
->
subframe_tx
[
subframe
]
=
1
;
conv_rballoc
(
rah
,
...
...
@@ -4467,7 +4467,7 @@ int generate_ue_dlsch_params_from_dci(int frame,
dlsch0_harq
->
Qm
=
(
mcs
-
28
)
<<
1
;
else
LOG_E
(
PHY
,
"invalid mcs %d
\n
"
,
mcs
);
//
msg
("test: MCS %d, NPRB %d, TBS %d\n",mcs,NPRB,dlsch0_harq->TBS);
//
printf
("test: MCS %d, NPRB %d, TBS %d\n",mcs,NPRB,dlsch0_harq->TBS);
dlsch
[
0
]
->
current_harq_pid
=
harq_pid
;
dlsch
[
0
]
->
active
=
1
;
...
...
@@ -4735,7 +4735,7 @@ int generate_ue_dlsch_params_from_dci(int frame,
dlsch
[
0
]
->
g_pucch
+=
delta_PUCCH_lut
[
TPC
&
3
];
/*
if (dlsch0_harq->mcs>20) {
msg
("dci_tools.c: mcs > 20 disabled for now (asked %d)\n",dlsch0_harq->mcs);
printf
("dci_tools.c: mcs > 20 disabled for now (asked %d)\n",dlsch0_harq->mcs);
return(-1);
}
*/
...
...
@@ -5411,7 +5411,7 @@ int generate_ue_dlsch_params_from_dci(int frame,
/*
if (dlsch0_harq->mcs>20) {
msg
("dci_tools.c: mcs > 20 disabled for now (asked %d)\n",dlsch0_harq->mcs);
printf
("dci_tools.c: mcs > 20 disabled for now (asked %d)\n",dlsch0_harq->mcs);
return(-1);
}
*/
...
...
@@ -5437,7 +5437,7 @@ int generate_ue_dlsch_params_from_dci(int frame,
// Fix this
tpmi
=
((
DCI1E_5MHz_2A_M10PRB_TDD_t
*
)
dci_pdu
)
->
tpmi
;
//
msg
("ue: tpmi %d\n",tpmi);
//
printf
("ue: tpmi %d\n",tpmi);
switch
(
tpmi
)
{
case
0
:
...
...
@@ -5556,9 +5556,9 @@ uint8_t subframe2harq_pid(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame,uint8_t
/*
#ifdef DEBUG_DCI
if (frame_parms->frame_type == TDD)
msg
("dci_tools.c: subframe2_harq_pid, subframe %d for TDD configuration %d\n",subframe,frame_parms->tdd_config);
printf
("dci_tools.c: subframe2_harq_pid, subframe %d for TDD configuration %d\n",subframe,frame_parms->tdd_config);
else
msg
("dci_tools.c: subframe2_harq_pid, subframe %d for FDD \n",subframe);
printf
("dci_tools.c: subframe2_harq_pid, subframe %d for FDD \n",subframe);
#endif
*/
if
(
frame_parms
->
frame_type
==
FDD
)
{
...
...
@@ -5734,7 +5734,7 @@ uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_subba
pmivect
|=
(
pmiq
<<
(
2
*
i
));
}
else
{
// This needs to be done properly!!!
msg
(
"PMI feedback for rank>1 not supported!
\n
"
);
printf
(
"PMI feedback for rank>1 not supported!
\n
"
);
pmivect
=
0
;
}
}
...
...
@@ -5928,7 +5928,7 @@ uint32_t fill_subband_cqi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_t trans_mo
void
fill_CQI
(
LTE_UE_ULSCH_t
*
ulsch
,
PHY_MEASUREMENTS
*
meas
,
uint8_t
eNB_id
,
uint8_t
harq_pid
,
int
N_RB_DL
,
uint16_t
rnti
,
uint8_t
trans_mode
,
double
sinr_eff
)
{
//
msg
("[PHY][UE] Filling CQI for eNB %d, meas->wideband_cqi_tot[%d] %d\n",
//
printf
("[PHY][UE] Filling CQI for eNB %d, meas->wideband_cqi_tot[%d] %d\n",
// eNB_id,eNB_id,meas->wideband_cqi_tot[eNB_id]);
double
sinr_tmp
;
uint8_t
*
o
=
ulsch
->
o
;
...
...
@@ -6288,7 +6288,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
RIV_max
=
RIV_max25
;
ulsch
->
harq_processes
[
harq_pid
]
->
first_rb
=
RIV2first_rb_LUT25
[
rballoc
];
ulsch
->
harq_processes
[
harq_pid
]
->
nb_rb
=
RIV2nb_rb_LUT25
[
rballoc
];
// printf("***********rballoc %d, first_rb %d, nb_rb %d\n",rballoc,ulsch->harq_processes[harq_pid]->first_rb,ulsch->harq_processes[harq_pid]->nb_rb);
// printf("***********rballoc %d, first_rb %d, nb_rb %d
(dci %p)
\n",rballoc,ulsch->harq_processes[harq_pid]->first_rb,ulsch->harq_processes[harq_pid]->nb_rb
,dci_pdu
);
break
;
case
50
:
...
...
@@ -6409,7 +6409,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
ulsch
->
rnti
=
rnti
;
}
//
msg
("[PHY][UE] DCI format 0: harq_pid %d nb_rb %d, rballoc %d\n",harq_pid,ulsch->harq_processes[harq_pid]->nb_rb,
//
printf
("[PHY][UE] DCI format 0: harq_pid %d nb_rb %d, rballoc %d\n",harq_pid,ulsch->harq_processes[harq_pid]->nb_rb,
// ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->rballoc);
//Mapping of cyclic shift field in DCI format0 to n_DMRS2 (3GPP 36.211, Table 5.5.2.1.1-1)
if
(
cshift
==
0
)
...
...
@@ -7007,21 +7007,21 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
// ulsch->n_DMRS2 = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->cshift;
#ifdef DEBUG_DCI
msg
(
"Format 0 DCI : ulsch (ue): NBRB %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
nb_rb
);
msg
(
"Format 0 DCI :ulsch (ue): first_rb %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
first_rb
);
msg
(
"Format 0 DCI :ulsch (ue): harq_pid %d
\n
"
,
harq_pid
);
msg
(
"Format 0 DCI :ulsch (ue): round %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
round
);
msg
(
"Format 0 DCI :ulsch (ue): TBS %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
TBS
);
msg
(
"Format 0 DCI :ulsch (ue): mcs %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
mcs
);
msg
(
"Format 0 DCI :ulsch (ue): O %d
\n
"
,
ulsch
->
O
);
printf
(
"Format 0 DCI : ulsch (ue): NBRB %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
nb_rb
);
printf
(
"Format 0 DCI :ulsch (ue): first_rb %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
first_rb
);
printf
(
"Format 0 DCI :ulsch (ue): harq_pid %d
\n
"
,
harq_pid
);
printf
(
"Format 0 DCI :ulsch (ue): round %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
round
);
printf
(
"Format 0 DCI :ulsch (ue): TBS %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
TBS
);
printf
(
"Format 0 DCI :ulsch (ue): mcs %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
mcs
);
printf
(
"Format 0 DCI :ulsch (ue): O %d
\n
"
,
ulsch
->
O
);
if
(
frame_parms
->
frame_type
==
TDD
)
msg
(
"Format 0 DCI :ulsch (ue): O_ACK/DAI %d/%d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
,
dai
);
printf
(
"Format 0 DCI :ulsch (ue): O_ACK/DAI %d/%d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
,
dai
);
else
msg
(
"Format 0 DCI :ulsch (ue): O_ACK %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
);
printf
(
"Format 0 DCI :ulsch (ue): O_ACK %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
);
msg
(
"Format 0 DCI :ulsch (ue): Nsymb_pusch %d
\n
"
,
ulsch
->
Nsymb_pusch
);
msg
(
"Format 0 DCI :ulsch (ue): cshift %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
n_DMRS2
);
printf
(
"Format 0 DCI :ulsch (ue): Nsymb_pusch %d
\n
"
,
ulsch
->
Nsymb_pusch
);
printf
(
"Format 0 DCI :ulsch (ue): cshift %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
n_DMRS2
);
#else
UNUSED_VARIABLE
(
dai
);
#endif
...
...
@@ -7066,7 +7066,7 @@ int generate_eNB_ulsch_params_from_dci(PHY_VARS_eNB *eNB,
// uint32_t type;
#ifdef DEBUG_DCI
LOG_D
(
PHY
,
"filling eNB ulsch params for rnti %x, dci format %d, dci %x, subframe %d
\n
"
,
printf
(
"filling eNB ulsch params for rnti %x, dci format %d, dci %x, subframe %d
\n
"
,
rnti
,
dci_format
,
*
(
uint32_t
*
)
dci_pdu
,
subframe
);
#endif
...
...
@@ -7200,7 +7200,7 @@ int generate_eNB_ulsch_params_from_dci(PHY_VARS_eNB *eNB,
}
#ifdef DEBUG_DCI
LOG_D
(
PHY
,
"generate_eNB_ulsch_params_from_dci: subframe %d, rnti %x,harq_pid %d,cqi_req %d
\n
"
,
subframe
,
rnti
,
harq_pid
,
cqi_req
);
printf
(
"generate_eNB_ulsch_params_from_dci: subframe %d, rnti %x,harq_pid %d,cqi_req %d
\n
"
,
subframe
,
rnti
,
harq_pid
,
cqi_req
);
#endif
ulsch
->
harq_processes
[
harq_pid
]
->
dci_alloc
=
1
;
...
...
@@ -7641,15 +7641,15 @@ int generate_eNB_ulsch_params_from_dci(PHY_VARS_eNB *eNB,
//ulsch->n_DMRS2 = cshift;
#ifdef DEBUG_DCI
msg
(
"ulsch (eNB): NBRB %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
nb_rb
);
msg
(
"ulsch (eNB): first_rb %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
first_rb
);
msg
(
"ulsch (eNB): harq_pid %d
\n
"
,
harq_pid
);
msg
(
"ulsch (eNB): round %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
round
);
msg
(
"ulsch (eNB): TBS %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
TBS
);
msg
(
"ulsch (eNB): mcs %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
mcs
);
msg
(
"ulsch (eNB): Or1 %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
Or1
);
msg
(
"ulsch (eNB): Nsymb_pusch %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
Nsymb_pusch
);
msg
(
"ulsch (eNB): cshift %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
n_DMRS2
);
printf
(
"ulsch (eNB): NBRB %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
nb_rb
);
printf
(
"ulsch (eNB): first_rb %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
first_rb
);
printf
(
"ulsch (eNB): harq_pid %d
\n
"
,
harq_pid
);
printf
(
"ulsch (eNB): round %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
round
);
printf
(
"ulsch (eNB): TBS %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
TBS
);
printf
(
"ulsch (eNB): mcs %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
mcs
);
printf
(
"ulsch (eNB): Or1 %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
Or1
);
printf
(
"ulsch (eNB): Nsymb_pusch %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
Nsymb_pusch
);
printf
(
"ulsch (eNB): cshift %d
\n
"
,
ulsch
->
harq_processes
[
harq_pid
]
->
n_DMRS2
);
#else
UNUSED_VARIABLE
(
dai
);
#endif
...
...
@@ -7782,7 +7782,7 @@ double sinr_eff_cqi_calc(PHY_VARS_UE *ue, uint8_t eNB_id)
break
;
default:
msg
(
"Problem in SINR Calculation for TM5
\n
"
);
printf
(
"Problem in SINR Calculation for TM5
\n
"
);
break
;
}
//switch(qq)
}
//a_rx
...
...
@@ -7848,7 +7848,7 @@ double sinr_eff_cqi_calc(PHY_VARS_UE *ue, uint8_t eNB_id)
break
;
default:
msg
(
"Problem in SINR Calculation for TM6
\n
"
);
printf
(
"Problem in SINR Calculation for TM6
\n
"
);
break
;
}
//switch(qq)
}
//a_rx
...
...
@@ -7860,7 +7860,7 @@ double sinr_eff_cqi_calc(PHY_VARS_UE *ue, uint8_t eNB_id)
break
;
default:
msg
(
"Problem in SINR Calculation for CQI
\n
"
);
printf
(
"Problem in SINR Calculation for CQI
\n
"
);
break
;
}
...
...
@@ -7929,7 +7929,7 @@ double sinr_eff_cqi_calc(PHY_VARS_UE *ue, uint8_t eNB_id)
3
)
+
p_qam64
[
5
]
*
pow
(
I_qam64_avg
,
2
)
+
p_qam64
[
6
]
*
I_qam64_avg
+
p_qam64
[
7
]);
sinr_eff
=
cmax3
(
sinr_eff_qpsk
,
sinr_eff_qam16
,
sinr_eff_qam64
);
//
msg
("SINR_Eff = %e\n",sinr_eff);
//
printf
("SINR_Eff = %e\n",sinr_eff);
return
(
sinr_eff
);
}
...
...
@@ -7948,20 +7948,20 @@ main()
rah
=
0
;
rballoc
=
0x1fff
;
msg
(
"rballoc 0 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
printf
(
"rballoc 0 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
rah
=
1
;
rballoc
=
0x1678
;
msg
(
"rballoc 1 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
printf
(
"rballoc 1 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
rballoc
=
0xfffc
;
msg
(
"rballoc 1 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
printf
(
"rballoc 1 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
rballoc
=
0xfffd
;
msg
(
"rballoc 1 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
printf
(
"rballoc 1 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
rballoc
=
0xffff
;
msg
(
"rballoc 1 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
printf
(
"rballoc 1 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
rballoc
=
0xfffe
;
msg
(
"rballoc 1 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
printf
(
"rballoc 1 %x => %x
\n
"
,
rballoc
,
conv_rballoc
(
rah
,
rballoc
));
}
#endif
...
...
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
View file @
f52cbeeb
...
...
@@ -739,7 +739,7 @@ void ulsch_extract_rbs_single(int32_t **rxdataF,
nb_rb1
=
cmin
(
cmax
((
int
)(
frame_parms
->
N_RB_UL
)
-
(
int
)(
2
*
first_rb
),(
int
)
0
),(
int
)(
2
*
nb_rb
));
// 2 times no. RBs before the DC
nb_rb2
=
2
*
nb_rb
-
nb_rb1
;
// 2 times no. RBs after the DC
#ifdef DEBUG_ULSCH
printf
(
"ulsch_extract_rbs_single: 2*nb_rb1 = %d, 2*nb_rb2 = %d
\n
"
,
nb_rb1
,
nb_rb2
);
#endif
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
f52cbeeb
...
...
@@ -2346,10 +2346,11 @@ void cba_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq_p
int
ret
=
0
;
LTE_DL_FRAME_PARMS
*
fp
=&
eNB
->
frame_parms
;
if
(
eNB
->
ulsch
[
UE_id
]
==
NULL
)
return
;
num_active_cba_groups
=
eNB
->
ulsch
[
UE_id
]
->
num_active_cba_groups
;
if
((
eNB
->
ulsch
[
UE_id
])
&&
(
num_active_cba_groups
>
0
)
&&
if
((
num_active_cba_groups
>
0
)
&&
(
eNB
->
ulsch
[
UE_id
]
->
cba_rnti
[
UE_id
%
num_active_cba_groups
]
>
0
)
&&
(
eNB
->
ulsch
[
UE_id
]
->
harq_processes
[
harq_pid
]
->
subframe_cba_scheduling_flag
==
1
))
{
rnti
=
0
;
...
...
@@ -2462,7 +2463,8 @@ void cba_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq_p
UE_id
%
eNB
->
ulsch
[
UE_id
]
->
num_active_cba_groups
,
eNB
->
ulsch
[
UE_id
]
->
cba_rnti
[
UE_id
%
num_active_cba_groups
]);
// detect if there is a CBA collision
if
(
eNB
->
cba_last_reception
[
UE_id
%
num_active_cba_groups
]
==
0
)
{
if
((
eNB
->
cba_last_reception
[
UE_id
%
num_active_cba_groups
]
==
0
)
&&
(
eNB
->
mac_enabled
==
1
))
{
mac_xface
->
rx_sdu
(
eNB
->
Mod_id
,
eNB
->
CC_id
,
frame
,
subframe
,
...
...
@@ -2502,6 +2504,7 @@ void eNB_fep_full(PHY_VARS_eNB *eNB) {
LTE_DL_FRAME_PARMS
*
fp
=&
eNB
->
frame_parms
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_SLOT_FEP
,
1
);
start_meas
(
&
eNB
->
ofdm_demod_stats
);
remove_7_5_kHz
(
eNB
,
proc
->
subframe_rx
<<
1
);
remove_7_5_kHz
(
eNB
,
1
+
(
proc
->
subframe_rx
<<
1
));
for
(
l
=
0
;
l
<
fp
->
symbols_per_tti
/
2
;
l
++
)
{
...
...
@@ -2520,6 +2523,7 @@ void eNB_fep_full(PHY_VARS_eNB *eNB) {
0
);
}
stop_meas
(
&
eNB
->
ofdm_demod_stats
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_SLOT_FEP
,
0
);
...
...
@@ -2626,10 +2630,11 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
const
int
frame
=
proc
->
frame_rx
;
int
offset
=
(
proc
==
&
eNB
->
proc
.
proc_rxtx
[
0
])
?
0
:
1
;
if
((
fp
->
frame_type
==
TDD
)
&&
(
subframe_select
(
fp
,
subframe
)
!=
SF_UL
))
return
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC
+
offset
,
1
);
start_meas
(
&
eNB
->
phy_proc_rx
);
#ifdef DEBUG_PHY_PROC
LOG_D
(
PHY
,
"[eNB %d] Frame %d: Doing phy_procedures_eNB_uespec_RX(%d)
\n
"
,
eNB
->
Mod_id
,
frame
,
subframe
);
#endif
...
...
@@ -2920,14 +2925,15 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
eNB
->
UE_stats
[
i
].
ulsch_consecutive_errors
++
;
// indicate error to MAC
mac_xface
->
rx_sdu
(
eNB
->
Mod_id
,
eNB
->
CC_id
,
frame
,
subframe
,
eNB
->
ulsch
[
i
]
->
rnti
,
NULL
,
0
,
harq_pid
,
&
eNB
->
ulsch
[
i
]
->
Msg3_flag
);
if
(
eNB
->
mac_enabled
==
1
)
mac_xface
->
rx_sdu
(
eNB
->
Mod_id
,
eNB
->
CC_id
,
frame
,
subframe
,
eNB
->
ulsch
[
i
]
->
rnti
,
NULL
,
0
,
harq_pid
,
&
eNB
->
ulsch
[
i
]
->
Msg3_flag
);
}
}
}
// ulsch in error
...
...
@@ -2987,15 +2993,15 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
LOG_I
(
PHY
,
"[eNB %d][RAPROC] Frame %d Terminating ra_proc for harq %d, UE %d
\n
"
,
eNB
->
Mod_id
,
frame
,
harq_pid
,
i
);
mac_xface
->
rx_sdu
(
eNB
->
Mod_id
,
eNB
->
CC_id
,
frame
,
subframe
,
eNB
->
ulsch
[
i
]
->
rnti
,
eNB
->
ulsch
[
i
]
->
harq_processes
[
harq_pid
]
->
b
,
eNB
->
ulsch
[
i
]
->
harq_processes
[
harq_pid
]
->
TBS
>>
3
,
harq_pid
,
&
eNB
->
ulsch
[
i
]
->
Msg3_flag
);
if
(
eNB
->
mac_enabled
)
mac_xface
->
rx_sdu
(
eNB
->
Mod_id
,
eNB
->
CC_id
,
frame
,
subframe
,
eNB
->
ulsch
[
i
]
->
rnti
,
eNB
->
ulsch
[
i
]
->
harq_processes
[
harq_pid
]
->
b
,
eNB
->
ulsch
[
i
]
->
harq_processes
[
harq_pid
]
->
TBS
>>
3
,
harq_pid
,
&
eNB
->
ulsch
[
i
]
->
Msg3_flag
);
// one-shot msg3 detection by MAC: empty PDU (e.g. CRNTI)
if
(
eNB
->
ulsch
[
i
]
->
Msg3_flag
==
0
)
{
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
f52cbeeb
...
...
@@ -828,7 +828,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
int
i
;
int
aa
;
int
tx_amp
;
uint8_t
ulsch_input_buffer
[
2700
]
__attribute__
((
aligned
(
16
)));
uint8_t
ulsch_input_buffer
[
5477
]
__attribute__
((
aligned
(
32
)));
uint8_t
access_mode
;
// get harq_pid from subframe relationship
...
...
openair1/SIMULATION/LTE_PHY/ulsim.c
View file @
f52cbeeb
This diff is collapsed.
Click to expand it.
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