Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
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
wangjie
OpenXG-RAN
Commits
6a8a551e
Commit
6a8a551e
authored
Jun 24, 2016
by
Xiwen JIANG
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add beamforming_mode into generate eNB and UE dlsch parameters from DCI
parent
4fa0810c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
68 additions
and
34 deletions
+68
-34
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+19
-4
openair1/PHY/LTE_TRANSPORT/proto.h
openair1/PHY/LTE_TRANSPORT/proto.h
+4
-2
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+6
-3
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+9
-7
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+30
-18
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
6a8a551e
...
...
@@ -872,7 +872,8 @@ int generate_eNB_dlsch_params_from_dci(int frame,
uint16_t
si_rnti
,
uint16_t
ra_rnti
,
uint16_t
p_rnti
,
uint16_t
DL_pmi_single
)
uint16_t
DL_pmi_single
,
uint8_t
beamforming_mode
)
{
uint8_t
harq_pid
=
UINT8_MAX
;
...
...
@@ -1244,7 +1245,13 @@ int generate_eNB_dlsch_params_from_dci(int frame,
dlsch0_harq
->
Nl
=
1
;
// dlsch[0]->layer_index = 0;
dlsch0_harq
->
mimo_mode
=
(
frame_parms
->
mode1_flag
==
1
)
?
SISO
:
ALAMOUTI
;
if
(
beamforming_mode
==
0
)
dlsch0_harq
->
mimo_mode
=
(
frame_parms
->
mode1_flag
==
1
)
?
SISO
:
ALAMOUTI
;
else
if
(
beamforming_mode
==
7
)
dlsch0_harq
->
mimo_mode
=
TM7
;
else
LOG_E
(
PHY
,
"Invalid beamforming mode %dL
\n
"
,
beamforming_mode
);
dlsch0_harq
->
dl_power_off
=
1
;
/*
if (dlsch[0]->harq_processes[harq_pid]->first_tx == 1) {
...
...
@@ -3854,7 +3861,8 @@ int generate_ue_dlsch_params_from_dci(int frame,
PDSCH_CONFIG_DEDICATED
*
pdsch_config_dedicated
,
uint16_t
si_rnti
,
uint16_t
ra_rnti
,
uint16_t
p_rnti
)
uint16_t
p_rnti
,
uint8_t
beamforming_mode
)
{
uint8_t
harq_pid
=
0
;
...
...
@@ -4171,6 +4179,7 @@ int generate_ue_dlsch_params_from_dci(int frame,
dlsch0_harq
->
rvidx
=
rv
;
dlsch0_harq
->
Nl
=
1
;
// dlsch[0]->layer_index = 0;
dlsch0_harq
->
mimo_mode
=
frame_parms
->
mode1_flag
==
1
?
SISO
:
ALAMOUTI
;
dlsch0_harq
->
dl_power_off
=
1
;
//no power offset
...
...
@@ -4521,7 +4530,13 @@ int generate_ue_dlsch_params_from_dci(int frame,
dlsch
[
0
]
->
rnti
=
rnti
;
dlsch0_harq
->
mimo_mode
=
(
frame_parms
->
mode1_flag
==
1
)
?
SISO
:
ALAMOUTI
;
if
(
beamforming_mode
==
0
)
dlsch0_harq
->
mimo_mode
=
(
frame_parms
->
mode1_flag
==
1
)
?
SISO
:
ALAMOUTI
;
else
if
(
beamforming_mode
==
7
)
dlsch0_harq
->
mimo_mode
=
TM7
;
else
LOG_E
(
PHY
,
"Not supported beamforming mode %d
\n
"
,
beamforming_mode
);
dlsch0
=
dlsch
[
0
];
...
...
openair1/PHY/LTE_TRANSPORT/proto.h
View file @
6a8a551e
...
...
@@ -1424,7 +1424,8 @@ int generate_ue_dlsch_params_from_dci(int frame,
PDSCH_CONFIG_DEDICATED
*
pdsch_config_dedicated
,
uint16_t
si_rnti
,
uint16_t
ra_rnti
,
uint16_t
p_rnti
);
uint16_t
p_rnti
,
uint8_t
beamforming_mode
);
int32_t
generate_eNB_dlsch_params_from_dci
(
int
frame
,
uint8_t
subframe
,
...
...
@@ -1437,7 +1438,8 @@ int32_t generate_eNB_dlsch_params_from_dci(int frame,
uint16_t
si_rnti
,
uint16_t
ra_rnti
,
uint16_t
p_rnti
,
uint16_t
DL_pmi_single
);
uint16_t
DL_pmi_single
,
uint8_t
beamforming_mode
);
int32_t
generate_eNB_ulsch_params_from_rar
(
uint8_t
*
rar_pdu
,
frame_t
frame
,
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
6a8a551e
...
...
@@ -1094,7 +1094,8 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
SI_RNTI
,
0
,
P_RNTI
,
phy_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
);
phy_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
,
0
);
phy_vars_eNB
->
dlsch_eNB_SI
->
nCCE
[
subframe
]
=
DCI_pdu
->
dci_alloc
[
i
].
firstCCE
;
...
...
@@ -1129,7 +1130,8 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
SI_RNTI
,
DCI_pdu
->
dci_alloc
[
i
].
rnti
,
P_RNTI
,
phy_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
);
phy_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
,
0
);
// mac_xface->macphy_exit("Transmitted RAR, exiting\n");
...
...
@@ -1187,7 +1189,8 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
SI_RNTI
,
0
,
P_RNTI
,
phy_vars_eNB
->
eNB_UE_stats
[(
uint8_t
)
UE_id
].
DL_pmi_single
);
phy_vars_eNB
->
eNB_UE_stats
[(
uint8_t
)
UE_id
].
DL_pmi_single
,
phy_vars_eNB
->
transmission_mode
[(
uint8_t
)
UE_id
]
>
7
?
0
:
phy_vars_eNB
->
transmission_mode
[(
uint8_t
)
UE_id
]);
LOG_D
(
PHY
,
"[eNB %"
PRIu8
"][PDSCH %"
PRIx16
"/%"
PRIu8
"] Frame %d subframe %d: Generated dlsch params
\n
"
,
phy_vars_eNB
->
Mod_id
,
DCI_pdu
->
dci_alloc
[
i
].
rnti
,
phy_vars_eNB
->
dlsch_eNB
[(
uint8_t
)
UE_id
][
0
]
->
current_harq_pid
,
phy_vars_eNB
->
proc
[
sched_subframe
].
frame_tx
,
subframe
);
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
6a8a551e
...
...
@@ -132,7 +132,7 @@ void dump_dlsch(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t subframe,uint8_t
phy_vars_ue
->
lte_ue_pdcch_vars
[
eNB_id
]
->
num_pdcch_symbols
,
phy_vars_ue
->
frame_rx
,
subframe
,
phy_vars_ue
->
transmission_mode
[
eNB_id
]);
phy_vars_ue
->
transmission_mode
[
eNB_id
]);
write_output
(
"rxsigF0.m"
,
"rxsF0"
,
phy_vars_ue
->
lte_ue_common_vars
.
rxdataF
[
0
],
2
*
nsymb
*
phy_vars_ue
->
lte_frame_parms
.
ofdm_symbol_size
,
2
,
1
);
write_output
(
"rxsigF0_ext.m"
,
"rxsF0_ext"
,
phy_vars_ue
->
lte_ue_pdsch_vars
[
0
]
->
rxdataF_ext
[
0
],
2
*
nsymb
*
phy_vars_ue
->
lte_frame_parms
.
ofdm_symbol_size
,
1
,
1
);
...
...
@@ -2143,7 +2143,8 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
phy_vars_ue
->
pdsch_config_dedicated
,
SI_RNTI
,
0
,
P_RNTI
)
==
0
))
{
P_RNTI
,
phy_vars_ue
->
transmission_mode
[
eNB_id
]
>
7
?
0
:
phy_vars_ue
->
transmission_mode
[
eNB_id
])
==
0
))
{
#ifdef DIAG_PHY
...
...
@@ -2211,7 +2212,8 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
phy_vars_ue
->
pdsch_config_dedicated
,
SI_RNTI
,
0
,
P_RNTI
)
==
0
)
{
P_RNTI
,
0
)
==
0
)
{
phy_vars_ue
->
dlsch_SI_received
[
eNB_id
]
++
;
...
...
@@ -2255,7 +2257,8 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
phy_vars_ue
->
pdsch_config_dedicated
,
SI_RNTI
,
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_RNTI
,
P_RNTI
)
==
0
)
{
P_RNTI
,
0
)
==
0
)
{
phy_vars_ue
->
dlsch_ra_received
[
eNB_id
]
++
;
...
...
@@ -2790,7 +2793,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
phy_vars_ue
->
lte_ue_pdcch_vars
[
eNB_id
]
->
num_pdcch_symbols
,
frame_rx
,
subframe_prev
,
phy_vars_ue
->
transmission_mode
[
eNB_id
]
);
0
);
#ifdef DEBUG_PHY_PROC
LOG_D
(
PHY
,
"Decoding DLSCH_SI : rb_alloc %x : nb_rb %d G %d TBS %d, num_pdcch_sym %d
\n
"
,
phy_vars_ue
->
dlsch_ue_SI
[
eNB_id
]
->
harq_processes
[
0
]
->
rb_alloc_even
[
0
],
...
...
@@ -2853,8 +2856,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
phy_vars_ue
->
dlsch_ue_SI
[
eNB_id
]
->
harq_processes
[
0
]
->
rb_alloc_even
[
2
],
phy_vars_ue
->
dlsch_ue_SI
[
eNB_id
]
->
harq_processes
[
0
]
->
rb_alloc_even
[
3
]);
#endif
// dump_dlsch_SI(phy_vars_ue,eNB_id,subframe_prev);
// dump_dlsch_SI(phy_vars_ue,eNB_id,subframe_prev);
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
);
return
(
-
1
);
...
...
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
6a8a551e
...
...
@@ -1149,10 +1149,11 @@ int main(int argc, char **argv)
SI_RNTI
,
0
,
P_RNTI
,
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
);
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
,
transmission_mode
<
7
?
0
:
transmission_mode
);
if
(
transmission_mode
==
7
)
PHY_vars_eNB
->
dlsch_eNB
[
0
][
0
]
->
harq_processes
[
0
]
->
mimo_mode
=
TM7
;
//Xiwen: to check about harq_pid
/*
if (transmission_mode == 7)
PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->mimo_mode = TM7; //Xiwen: to check about harq_pid
*/
num_dci
++
;
num_ue_spec_dci
++
;
...
...
@@ -1292,7 +1293,8 @@ int main(int argc, char **argv)
SI_RNTI
,
0
,
P_RNTI
,
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
);
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
,
0
);
num_common_dci
++
;
num_dci
++
;
...
...
@@ -1459,7 +1461,8 @@ int main(int argc, char **argv)
SI_RNTI
,
0
,
P_RNTI
,
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
);
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
,
0
);
num_dci
++
;
num_ue_spec_dci
++
;
...
...
@@ -1599,7 +1602,8 @@ int main(int argc, char **argv)
SI_RNTI
,
0
,
P_RNTI
,
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
);
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
,
0
);
num_common_dci
++
;
num_dci
++
;
...
...
@@ -1767,7 +1771,8 @@ int main(int argc, char **argv)
SI_RNTI
,
0
,
P_RNTI
,
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
);
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
,
0
);
num_dci
++
;
num_ue_spec_dci
++
;
...
...
@@ -1907,7 +1912,8 @@ int main(int argc, char **argv)
SI_RNTI
,
0
,
P_RNTI
,
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
);
PHY_vars_eNB
->
eNB_UE_stats
[
0
].
DL_pmi_single
,
0
);
num_common_dci
++
;
num_dci
++
;
...
...
@@ -1936,7 +1942,8 @@ int main(int argc, char **argv)
SI_RNTI
,
0
,
P_RNTI
,
PHY_vars_eNB
->
eNB_UE_stats
[
k
].
DL_pmi_single
);
PHY_vars_eNB
->
eNB_UE_stats
[
k
].
DL_pmi_single
,
0
);
dump_dci
(
&
PHY_vars_eNB
->
lte_frame_parms
,
&
dci_alloc
[
num_dci
]);
num_ue_spec_dci
++
;
...
...
@@ -3226,7 +3233,8 @@ PMI_FEEDBACK:
PHY_vars_UE
->
pdsch_config_dedicated
,
SI_RNTI
,
0
,
P_RNTI
)
==
0
))
{
P_RNTI
==
0
,
transmission_mode
<
7
?
0
:
transmission_mode
)))
{
//dump_dci(&PHY_vars_UE->lte_frame_parms,&dci_alloc_rx[i]);
coded_bits_per_codeword
=
get_G
(
&
PHY_vars_eNB
->
lte_frame_parms
,
PHY_vars_UE
->
dlsch_ue
[
0
][
0
]
->
harq_processes
[
PHY_vars_UE
->
dlsch_ue
[
0
][
0
]
->
current_harq_pid
]
->
nb_rb
,
...
...
@@ -3237,8 +3245,8 @@ PMI_FEEDBACK:
0
,
subframe
,
(
transmission_mode
<
7
?
0
:
transmission_mode
));
if
(
transmission_mode
==
7
&&
common_flag
==
0
)
PHY_vars_UE
->
dlsch_ue
[
0
][
0
]
->
harq_processes
[
0
]
->
mimo_mode
=
TM7
;
/*
if (transmission_mode==7 && common_flag==0)
PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->mimo_mode = TM7;
*/
/*
rate = (double)dlsch_tbs25[get_I_TBS(PHY_vars_UE->dlsch_ue[0][0]->harq_processes[PHY_vars_UE->dlsch_ue[0][0]->current_harq_pid]->mcs)][PHY_vars_UE->dlsch_ue[0][0]->nb_rb-1]/(coded_bits_per_codeword);
...
...
@@ -3289,9 +3297,10 @@ PMI_FEEDBACK:
PHY_vars_UE
->
pdsch_config_dedicated
,
SI_RNTI
,
0
,
P_RNTI
);
if
(
transmission_mode
==
7
&&
common_flag
==
0
)
PHY_vars_UE
->
dlsch_ue
[
0
][
0
]
->
harq_processes
[
0
]
->
mimo_mode
=
TM7
;
P_RNTI
,
transmission_mode
<
7
?
0
:
transmission_mode
);
/*if(transmission_mode==7 && common_flag==0)
PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->mimo_mode = TM7;*/
break
;
case
3
:
...
...
@@ -3306,7 +3315,8 @@ PMI_FEEDBACK:
PHY_vars_UE
->
pdsch_config_dedicated
,
SI_RNTI
,
0
,
P_RNTI
);
P_RNTI
,
0
);
// printf("Rate: TM3 (after) round %d (%d) first_tx %d\n",round,PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->round,PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->first_tx);
break
;
...
...
@@ -3321,7 +3331,8 @@ PMI_FEEDBACK:
PHY_vars_UE
->
pdsch_config_dedicated
,
SI_RNTI
,
0
,
P_RNTI
);
P_RNTI
,
0
);
break
;
case
5
:
...
...
@@ -3336,7 +3347,8 @@ PMI_FEEDBACK:
PHY_vars_UE
->
pdsch_config_dedicated
,
SI_RNTI
,
0
,
P_RNTI
);
P_RNTI
,
0
);
break
;
}
...
...
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