Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
Michael Black
OpenXG UE
Commits
40e980cd
Commit
40e980cd
authored
Feb 22, 2015
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
git-svn-id:
http://svn.eurecom.fr/openair4G/trunk@6598
818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent
373d67a4
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
22 additions
and
18 deletions
+22
-18
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+14
-12
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
+1
-1
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+1
-0
openair1/PHY/LTE_TRANSPORT/lte_mcs.c
openair1/PHY/LTE_TRANSPORT/lte_mcs.c
+1
-1
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+5
-4
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
40e980cd
...
@@ -658,7 +658,7 @@ int generate_eNB_dlsch_params_from_dci(uint8_t subframe,
...
@@ -658,7 +658,7 @@ int generate_eNB_dlsch_params_from_dci(uint8_t subframe,
rv
=
((
DCI1A_10MHz_FDD_t
*
)
dci_pdu
)
->
rv
;
rv
=
((
DCI1A_10MHz_FDD_t
*
)
dci_pdu
)
->
rv
;
TPC
=
((
DCI1A_10MHz_FDD_t
*
)
dci_pdu
)
->
TPC
;
TPC
=
((
DCI1A_10MHz_FDD_t
*
)
dci_pdu
)
->
TPC
;
harq_pid
=
((
DCI1A_10MHz_FDD_t
*
)
dci_pdu
)
->
harq_pid
;
harq_pid
=
((
DCI1A_10MHz_FDD_t
*
)
dci_pdu
)
->
harq_pid
;
//
printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB
);
//
printf("FDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC
);
}
}
dlsch0_harq
=
dlsch
[
0
]
->
harq_processes
[
harq_pid
];
dlsch0_harq
=
dlsch
[
0
]
->
harq_processes
[
harq_pid
];
...
@@ -740,7 +740,7 @@ int generate_eNB_dlsch_params_from_dci(uint8_t subframe,
...
@@ -740,7 +740,7 @@ int generate_eNB_dlsch_params_from_dci(uint8_t subframe,
if
(
NPRB
==
0
)
if
(
NPRB
==
0
)
return
(
-
1
);
return
(
-
1
);
//
printf("NPRB %d, nb_rb %d, ndi %d\n",NPRB,dlsch0_harq->nb_rb,ndi);
//printf("NPRB %d, nb_rb %d, ndi %d\n",NPRB,dlsch0_harq->nb_rb,ndi);
dlsch0_harq
->
rvidx
=
rv
;
dlsch0_harq
->
rvidx
=
rv
;
dlsch0_harq
->
Nl
=
1
;
dlsch0_harq
->
Nl
=
1
;
...
@@ -3548,7 +3548,6 @@ int generate_ue_dlsch_params_from_dci(uint8_t subframe,
...
@@ -3548,7 +3548,6 @@ int generate_ue_dlsch_params_from_dci(uint8_t subframe,
dlsch0_harq
=
dlsch
[
0
]
->
harq_processes
[
harq_pid
];
dlsch0_harq
=
dlsch
[
0
]
->
harq_processes
[
harq_pid
];
// see 36-212 V8.6.0 p. 45
// see 36-212 V8.6.0 p. 45
NPRB
=
(
TPC
&
1
)
+
2
;
NPRB
=
(
TPC
&
1
)
+
2
;
// toggle the ndi
}
}
else
{
else
{
...
@@ -3589,41 +3588,44 @@ int generate_ue_dlsch_params_from_dci(uint8_t subframe,
...
@@ -3589,41 +3588,44 @@ int generate_ue_dlsch_params_from_dci(uint8_t subframe,
}
}
// change the mcs limit from 7 to 8, supported by MAC
// change the mcs limit from 7 to 8, supported by MAC
if
(
mcs
>
10
)
{
if
(
mcs
>
10
)
{
LOG_E
(
PHY
,
"Format 1A:
unlikely mcs for format 1A (%d)
\n
"
,
mcs
);
LOG_E
(
PHY
,
"Format 1A:
subframe %d unlikely mcs for format 1A (%d), TPC %d rv %d
\n
"
,
subframe
,
mcs
,
TPC
,
rv
);
return
(
-
1
);
return
(
-
1
);
}
}
if
((
rnti
==
si_rnti
)
||
(
rnti
==
p_rnti
)
||
(
rnti
==
ra_rnti
)){
//
if
((
rnti
==
si_rnti
)
||
(
rnti
==
p_rnti
)
||
(
rnti
==
ra_rnti
)){
//
// toggle the ndi, always toggled for si,p and ra
if
(
dlsch0_harq
->
round
==
4
)
{
ndi
=
1
-
dlsch0_harq
->
DCINdi
;
dlsch0_harq
->
round
=
0
;
dlsch0_harq
->
first_tx
=
1
;
}
// if (dlsch0_harq->round == 0)
// ndi = 1-dlsch0_harq->DCINdi;
}
}
dlsch
[
0
]
->
current_harq_pid
=
harq_pid
;
dlsch
[
0
]
->
current_harq_pid
=
harq_pid
;
// msg("Format 1A: harq_pid %d\n",harq_pid);
dlsch0_harq
->
rvidx
=
rv
;
dlsch0_harq
->
rvidx
=
rv
;
dlsch0_harq
->
Nl
=
1
;
dlsch0_harq
->
Nl
=
1
;
// dlsch[0]->layer_index = 0;
// dlsch[0]->layer_index = 0;
dlsch0_harq
->
mimo_mode
=
frame_parms
->
mode1_flag
==
1
?
SISO
:
ALAMOUTI
;
dlsch0_harq
->
mimo_mode
=
frame_parms
->
mode1_flag
==
1
?
SISO
:
ALAMOUTI
;
dlsch0_harq
->
dl_power_off
=
1
;
//no power offset
dlsch0_harq
->
dl_power_off
=
1
;
//no power offset
LOG_D
(
PHY
,
"UE (%x/%d): Subframe %d Format1A DCI: ndi %d, old_ndi %d (first tx %d) harq_status %d
\n
"
,
dlsch
[
0
]
->
rnti
,
harq_pid
,
subframe
,
ndi
,
dlsch0_harq
->
DCINdi
,
//LOG_I(PHY,"UE (%x/%d): Subframe %d Format1A DCI: ndi %d, old_ndi %d (first tx %d) harq_status %d\n",dlsch[0]->rnti,harq_pid,subframe,ndi,dlsch0_harq->DCINdi,
dlsch0_harq
->
first_tx
,
dlsch0_harq
->
status
);
//dlsch0_harq->first_tx,dlsch0_harq->status);
if
((
rnti
!=
si_rnti
)
&&
(
rnti
!=
ra_rnti
))
{
if
((
ndi
!=
dlsch0_harq
->
DCINdi
)
||
// DCI has been toggled or this is the first transmission
if
((
ndi
!=
dlsch0_harq
->
DCINdi
)
||
// DCI has been toggled or this is the first transmission
(
dlsch0_harq
->
first_tx
==
1
))
{
(
dlsch0_harq
->
first_tx
==
1
))
{
dlsch0_harq
->
round
=
0
;
dlsch0_harq
->
round
=
0
;
if
(
dlsch0_harq
->
first_tx
==
1
)
{
if
(
dlsch0_harq
->
first_tx
==
1
)
{
LOG_I
(
PHY
,
"[PDSCH %x/%d] Format 1A DCI First TX: Clearing flag
\n
"
);
//
LOG_I(PHY,"[PDSCH %x/%d] Format 1A DCI First TX: Clearing flag\n");
dlsch0_harq
->
first_tx
=
0
;
dlsch0_harq
->
first_tx
=
0
;
}
}
}
}
}
dlsch0_harq
->
DCINdi
=
ndi
;
dlsch0_harq
->
DCINdi
=
ndi
;
dlsch0_harq
->
mcs
=
mcs
;
dlsch0_harq
->
mcs
=
mcs
;
dlsch0_harq
->
TBS
=
TBStable
[
get_I_TBS
(
mcs
)][
NPRB
-
1
];
dlsch0_harq
->
TBS
=
TBStable
[
get_I_TBS
(
mcs
)][
NPRB
-
1
];
dlsch
[
0
]
->
rnti
=
rnti
;
dlsch
[
0
]
->
rnti
=
rnti
;
dlsch0
=
dlsch
[
0
];
dlsch0
=
dlsch
[
0
];
//printf("Format 1A: harq_pid %d, nb_rb %d, round %d\n",harq_pid,dlsch0_harq->nb_rb,dlsch0_harq->round);
break
;
break
;
case
format1
:
case
format1
:
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
View file @
40e980cd
...
@@ -291,7 +291,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
...
@@ -291,7 +291,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
(
r
==
0
)
?
harq_process
->
F
:
0
);
(
r
==
0
)
?
harq_process
->
F
:
0
);
#ifdef DEBUG_DLSCH_DECODING
#ifdef DEBUG_DLSCH_DECODING
msg
(
"HARQ_PID %d Rate Matching Segment %d (coded bits %d,unpunctured/repeated bits %d, TBS %d, mod_order %d, nb_rb %d, Nl %d, rv %d, round %d)...
\n
"
,
LOG_I
(
PHY
,
"HARQ_PID %d Rate Matching Segment %d (coded bits %d,unpunctured/repeated bits %d, TBS %d, mod_order %d, nb_rb %d, Nl %d, rv %d, round %d)...
\n
"
,
harq_pid
,
r
,
G
,
harq_pid
,
r
,
G
,
Kr
*
3
,
Kr
*
3
,
harq_process
->
TBS
,
harq_process
->
TBS
,
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
View file @
40e980cd
...
@@ -2818,6 +2818,7 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF,
...
@@ -2818,6 +2818,7 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF,
if
(
rb_alloc_ind
==
1
)
{
if
(
rb_alloc_ind
==
1
)
{
//printf("demod: rb %d\n",rb);
*
pmi_loc
=
(
pmi
>>
((
rb
>>
2
)
<<
1
))
&
3
;
*
pmi_loc
=
(
pmi
>>
((
rb
>>
2
)
<<
1
))
&
3
;
// printf("rb %d: sb %d : pmi %d\n",rb,rb>>2,*pmi_loc);
// printf("rb %d: sb %d : pmi %d\n",rb,rb>>2,*pmi_loc);
...
...
openair1/PHY/LTE_TRANSPORT/lte_mcs.c
View file @
40e980cd
...
@@ -335,7 +335,7 @@ int get_G(LTE_DL_FRAME_PARMS *frame_parms,uint16_t nb_rb,uint32_t *rb_alloc,uint
...
@@ -335,7 +335,7 @@ int get_G(LTE_DL_FRAME_PARMS *frame_parms,uint16_t nb_rb,uint32_t *rb_alloc,uint
if
(
is_pmch_subframe
(
frame
,
subframe
,
frame_parms
)
==
0
)
{
if
(
is_pmch_subframe
(
frame
,
subframe
,
frame_parms
)
==
0
)
{
G_adj
=
adjust_G
(
frame_parms
,
rb_alloc
,
mod_order
,
subframe
);
G_adj
=
adjust_G
(
frame_parms
,
rb_alloc
,
mod_order
,
subframe
);
//
printf("get_G subframe %d mod_order %d, nb_rb %d: rb_alloc %x,%x,%x,%x, G_adj %d\n",subframe,mod_order,nb_rb,rb_alloc[3],rb_alloc[2],rb_alloc[1],rb_alloc[0], G_adj);
//printf("get_G subframe %d mod_order %d, nb_rb %d: rb_alloc %x,%x,%x,%x, G_adj %d\n",subframe,mod_order,nb_rb,rb_alloc[3],rb_alloc[2],rb_alloc[1],rb_alloc[0], G_adj);
if
(
frame_parms
->
Ncp
==
NORMAL
)
{
// normal prefix
if
(
frame_parms
->
Ncp
==
NORMAL
)
{
// normal prefix
// PDDDPDD PDDDPDD - 13 PDSCH symbols, 10 full, 3 w/ pilots = 10*12 + 3*8
// PDDDPDD PDDDPDD - 13 PDSCH symbols, 10 full, 3 w/ pilots = 10*12 + 3*8
// PCDDPDD PDDDPDD - 12 PDSCH symbols, 9 full, 3 w/ pilots = 9*12 + 3*8
// PCDDPDD PDDDPDD - 12 PDSCH symbols, 9 full, 3 w/ pilots = 9*12 + 3*8
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
40e980cd
...
@@ -1835,7 +1835,7 @@ void lte_ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
...
@@ -1835,7 +1835,7 @@ void lte_ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
phy_vars_ue
->
lte_frame_parms
.
phich_config_common
.
phich_duration
,
phy_vars_ue
->
lte_frame_parms
.
phich_config_common
.
phich_duration
,
phy_vars_ue
->
lte_frame_parms
.
phich_config_common
.
phich_resource
);
phy_vars_ue
->
lte_frame_parms
.
phich_config_common
.
phich_resource
);
if
(
frame_rx
%
100
==
0
)
{
if
(
frame_rx
%
100
==
0
)
{
LOG_I
(
PHY
,
"[UE %d] frame %d, slot %d, PBCH: mode1_flag %d, tx_ant %d, frame_tx %d, phase %d. N_RB_DL %d, phich_duration %d, phich_resource %d/6
\n
"
,
LOG_I
(
PHY
,
"[UE %d] frame %d, slot %d, PBCH: mode1_flag %d, tx_ant %d, frame_tx %d, phase %d. N_RB_DL %d, phich_duration %d, phich_resource %d/6
,Frequency offset %d Hz (%d)
\n
"
,
phy_vars_ue
->
Mod_id
,
phy_vars_ue
->
Mod_id
,
frame_rx
,
frame_rx
,
slot_rx
,
slot_rx
,
...
@@ -1845,7 +1845,8 @@ void lte_ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
...
@@ -1845,7 +1845,8 @@ void lte_ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
pbch_phase
,
pbch_phase
,
phy_vars_ue
->
lte_frame_parms
.
N_RB_DL
,
phy_vars_ue
->
lte_frame_parms
.
N_RB_DL
,
phy_vars_ue
->
lte_frame_parms
.
phich_config_common
.
phich_duration
,
phy_vars_ue
->
lte_frame_parms
.
phich_config_common
.
phich_duration
,
phy_vars_ue
->
lte_frame_parms
.
phich_config_common
.
phich_resource
);
phy_vars_ue
->
lte_frame_parms
.
phich_config_common
.
phich_resource
,
phy_vars_ue
->
lte_ue_common_vars
.
freq_offset
,
openair_daq_vars
.
freq_offset
);
//dump_frame_parms(&phy_vars_ue->lte_frame_parms);
//dump_frame_parms(&phy_vars_ue->lte_frame_parms);
}
}
#endif
#endif
...
@@ -2746,8 +2747,8 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
...
@@ -2746,8 +2747,8 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
LOG_D
(
PHY
,
"[UE %d] Frame %d, subframe %d, received SI in error
\n
"
,
phy_vars_ue
->
Mod_id
,
frame_rx
,
subframe_prev
);
LOG_D
(
PHY
,
"[UE %d] Frame %d, subframe %d, received SI in error
\n
"
,
phy_vars_ue
->
Mod_id
,
frame_rx
,
subframe_prev
);
#endif
#endif
dump_dlsch_SI
(
phy_vars_ue
,
eNB_id
,
subframe_prev
);
//
dump_dlsch_SI(phy_vars_ue,eNB_id,subframe_prev);
exit
(
-
1
);
//
exit(-1);
vcd_signal_dumper_dump_function_by_name
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX
,
VCD_FUNCTION_OUT
);
vcd_signal_dumper_dump_function_by_name
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX
,
VCD_FUNCTION_OUT
);
stop_meas
(
&
phy_vars_ue
->
phy_proc_rx
);
stop_meas
(
&
phy_vars_ue
->
phy_proc_rx
);
return
(
-
1
);
return
(
-
1
);
...
...
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