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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
f6a1c188
Commit
f6a1c188
authored
Mar 10, 2021
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add support for PUSCH scheduled by RAR when BWPStart>0
parent
982a0546
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
11 additions
and
8 deletions
+11
-8
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+2
-2
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+1
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+6
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+2
-1
No files found.
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
f6a1c188
...
@@ -326,7 +326,7 @@ void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
...
@@ -326,7 +326,7 @@ void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
#endif
#endif
uint8_t
is_dmrs_re
;
uint8_t
is_dmrs_re
;
start_re
=
(
frame_parms
->
first_carrier_offset
+
(
pusch_pdu
->
rb_start
*
NR_NB_SC_PER_RB
)
)
%
frame_parms
->
ofdm_symbol_size
;
start_re
=
(
frame_parms
->
first_carrier_offset
+
(
pusch_pdu
->
rb_start
+
pusch_pdu
->
bwp_start
)
*
NR_NB_SC_PER_RB
)
%
frame_parms
->
ofdm_symbol_size
;
nb_re_pusch
=
NR_NB_SC_PER_RB
*
pusch_pdu
->
rb_size
;
nb_re_pusch
=
NR_NB_SC_PER_RB
*
pusch_pdu
->
rb_size
;
#ifdef __AVX2__
#ifdef __AVX2__
int
nb_re_pusch2
=
nb_re_pusch
+
(
nb_re_pusch
&
7
);
int
nb_re_pusch2
=
nb_re_pusch
+
(
nb_re_pusch
&
7
);
...
@@ -1174,7 +1174,7 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
...
@@ -1174,7 +1174,7 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
}
}
bwp_start_subcarrier
=
(
rel15_ul
->
rb_start
*
NR_NB_SC_PER_RB
+
frame_parms
->
first_carrier_offset
)
%
frame_parms
->
ofdm_symbol_size
;
bwp_start_subcarrier
=
(
(
rel15_ul
->
rb_start
+
rel15_ul
->
bwp_start
)
*
NR_NB_SC_PER_RB
+
frame_parms
->
first_carrier_offset
)
%
frame_parms
->
ofdm_symbol_size
;
dmrs_symbol_flag
=
((
rel15_ul
->
ul_dmrs_symb_pos
)
>>
symbol
)
&
0x01
;
dmrs_symbol_flag
=
((
rel15_ul
->
ul_dmrs_symb_pos
)
>>
symbol
)
&
0x01
;
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
View file @
f6a1c188
...
@@ -137,7 +137,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
...
@@ -137,7 +137,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
uint8_t
mod_order
=
pusch_pdu
->
qam_mod_order
;
uint8_t
mod_order
=
pusch_pdu
->
qam_mod_order
;
uint16_t
rnti
=
pusch_pdu
->
rnti
;
uint16_t
rnti
=
pusch_pdu
->
rnti
;
uint8_t
cdm_grps_no_data
=
pusch_pdu
->
num_dmrs_cdm_grps_no_data
;
uint8_t
cdm_grps_no_data
=
pusch_pdu
->
num_dmrs_cdm_grps_no_data
;
uint16_t
start_sc
=
frame_parms
->
first_carrier_offset
+
start_rb
*
NR_NB_SC_PER_RB
;
uint16_t
start_sc
=
frame_parms
->
first_carrier_offset
+
(
start_rb
+
pusch_pdu
->
bwp_start
)
*
NR_NB_SC_PER_RB
;
if
(
start_sc
>=
frame_parms
->
ofdm_symbol_size
)
if
(
start_sc
>=
frame_parms
->
ofdm_symbol_size
)
start_sc
-=
frame_parms
->
ofdm_symbol_size
;
start_sc
-=
frame_parms
->
ofdm_symbol_size
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
f6a1c188
...
@@ -495,11 +495,13 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
...
@@ -495,11 +495,13 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
int
ibwp_size
=
NRRIV2BW
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
int
ibwp_size
=
NRRIV2BW
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
// BWP start selection according to 8.3 of TS 38.213
// BWP start selection according to 8.3 of TS 38.213
pusch_config_pdu
->
bwp_size
=
ibwp_size
;
if
((
ibwp_start
<
abwp_start
)
||
(
ibwp_size
>
abwp_size
))
{
if
((
ibwp_start
<
abwp_start
)
||
(
ibwp_size
>
abwp_size
))
pusch_config_pdu
->
bwp_start
=
abwp_start
;
pusch_config_pdu
->
bwp_start
=
abwp_start
;
else
pusch_config_pdu
->
bwp_size
=
abwp_size
;
}
else
{
pusch_config_pdu
->
bwp_start
=
ibwp_start
;
pusch_config_pdu
->
bwp_start
=
ibwp_start
;
pusch_config_pdu
->
bwp_size
=
ibwp_size
;
}
//// Resource assignment from RAR
//// Resource assignment from RAR
// Frequency domain allocation according to 8.3 of TS 38.213
// Frequency domain allocation according to 8.3 of TS 38.213
...
@@ -513,7 +515,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
...
@@ -513,7 +515,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
return
-
1
;
return
-
1
;
// virtual resource block to physical resource mapping for Msg3 PUSCH (6.3.1.7 in 38.211)
// virtual resource block to physical resource mapping for Msg3 PUSCH (6.3.1.7 in 38.211)
pusch_config_pdu
->
rb_start
+=
ibwp_start
-
abwp_start
;
//
pusch_config_pdu->rb_start += ibwp_start - abwp_start;
// Time domain allocation
// Time domain allocation
SLIV2SL
(
startSymbolAndLength
,
&
StartSymbolIndex
,
&
NrOfSymbols
);
SLIV2SL
(
startSymbolAndLength
,
&
StartSymbolIndex
,
&
NrOfSymbols
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
f6a1c188
...
@@ -791,7 +791,8 @@ void nr_add_msg3(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t
...
@@ -791,7 +791,8 @@ void nr_add_msg3(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t
pusch_pdu
->
dmrs_ports
=
1
;
// 6.2.2 in 38.214 only port 0 to be used
pusch_pdu
->
dmrs_ports
=
1
;
// 6.2.2 in 38.214 only port 0 to be used
pusch_pdu
->
num_dmrs_cdm_grps_no_data
=
2
;
// no data in dmrs symbols as in 6.2.2 in 38.214
pusch_pdu
->
num_dmrs_cdm_grps_no_data
=
2
;
// no data in dmrs symbols as in 6.2.2 in 38.214
pusch_pdu
->
resource_alloc
=
1
;
//type 1
pusch_pdu
->
resource_alloc
=
1
;
//type 1
pusch_pdu
->
rb_start
=
ra
->
msg3_first_rb
+
ibwp_start
-
abwp_start
;
// as for 6.3.1.7 in 38.211
//pusch_pdu->rb_start = ra->msg3_first_rb + ibwp_start - abwp_start; // as for 6.3.1.7 in 38.211
pusch_pdu
->
rb_start
=
ra
->
msg3_first_rb
;
if
(
ra
->
msg3_nb_rb
>
pusch_pdu
->
bwp_size
)
if
(
ra
->
msg3_nb_rb
>
pusch_pdu
->
bwp_size
)
AssertFatal
(
1
==
0
,
"MSG3 allocated number of RBs exceed the BWP size
\n
"
);
AssertFatal
(
1
==
0
,
"MSG3 allocated number of RBs exceed the BWP size
\n
"
);
else
else
...
...
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