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
Michael Black
OpenXG-RAN
Commits
47fee08a
Commit
47fee08a
authored
Apr 29, 2021
by
hardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/multiple_ssb_sib1_bugfix' into integration_2021_wk17_b
parents
401151bf
b08037d6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
17 deletions
+18
-17
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+17
-16
No files found.
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
47fee08a
...
@@ -97,7 +97,7 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -97,7 +97,7 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
cset_start_symb
=
pdcch_pdu_rel15
->
StartSymbolIndex
;
cset_start_symb
=
pdcch_pdu_rel15
->
StartSymbolIndex
;
cset_nsymb
=
pdcch_pdu_rel15
->
DurationSymbols
;
cset_nsymb
=
pdcch_pdu_rel15
->
DurationSymbols
;
dci_idx
=
0
;
dci_idx
=
0
;
LOG_D
(
PHY
,
"Coreset rb_offset %d, nb_rb %d
\n
"
,
rb_offset
,
n_rb
);
LOG_D
(
PHY
,
"Coreset rb_offset %d, nb_rb %d
BWP Start %d
\n
"
,
rb_offset
,
n_rb
,
pdcch_pdu_rel15
->
BWPStart
);
LOG_D
(
PHY
,
"Coreset starting subcarrier %d on symbol %d (%d symbols)
\n
"
,
cset_start_sc
,
cset_start_symb
,
cset_nsymb
);
LOG_D
(
PHY
,
"Coreset starting subcarrier %d on symbol %d (%d symbols)
\n
"
,
cset_start_sc
,
cset_start_symb
,
cset_nsymb
);
// DMRS length is per OFDM symbol
// DMRS length is per OFDM symbol
uint32_t
dmrs_length
=
n_rb
*
6
;
//2(QPSK)*3(per RB)*6(REG per CCE)
uint32_t
dmrs_length
=
n_rb
*
6
;
//2(QPSK)*3(per RB)*6(REG per CCE)
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
47fee08a
...
@@ -427,8 +427,8 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
...
@@ -427,8 +427,8 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
bwp
);
bwp
);
// TODO: This assignment should be done in function nr_configure_pdcch()
// TODO: This assignment should be done in function nr_configure_pdcch()
pdcch_pdu_rel15
->
BWPSize
=
gNB_mac
->
type0_PDCCH_CSS_config
->
num_rbs
;
pdcch_pdu_rel15
->
BWPSize
=
type0_PDCCH_CSS_config
->
num_rbs
;
pdcch_pdu_rel15
->
BWPStart
=
gNB_mac
->
type0_PDCCH_CSS_config
->
cset_start_rb
;
pdcch_pdu_rel15
->
BWPStart
=
type0_PDCCH_CSS_config
->
cset_start_rb
;
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdsch_pdu
=
&
dl_req
->
dl_tti_pdu_list
[
dl_req
->
nPDUs
];
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdsch_pdu
=
&
dl_req
->
dl_tti_pdu_list
[
dl_req
->
nPDUs
];
memset
((
void
*
)
dl_tti_pdsch_pdu
,
0
,
sizeof
(
nfapi_nr_dl_tti_request_pdu_t
));
memset
((
void
*
)
dl_tti_pdsch_pdu
,
0
,
sizeof
(
nfapi_nr_dl_tti_request_pdu_t
));
...
@@ -589,25 +589,26 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
...
@@ -589,25 +589,26 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
uint8_t
sib1_sdu_length
=
mac_rrc_nr_data_req
(
module_idP
,
CC_id
,
frameP
,
BCCH
,
SI_RNTI
,
1
,
sib1_payload
);
uint8_t
sib1_sdu_length
=
mac_rrc_nr_data_req
(
module_idP
,
CC_id
,
frameP
,
BCCH
,
SI_RNTI
,
1
,
sib1_payload
);
LOG_D
(
NR_MAC
,
"sib1_sdu_length = %i
\n
"
,
sib1_sdu_length
);
LOG_D
(
NR_MAC
,
"sib1_sdu_length = %i
\n
"
,
sib1_sdu_length
);
LOG_D
(
NR_MAC
,
"SIB1:
\n
"
);
LOG_D
(
NR_MAC
,
"SIB1:
\n
"
);
for
(
int
k
=
0
;
k
<
sib1_sdu_length
;
k
++
)
LOG_D
(
NR_MAC
,
"byte %d : %x
\n
"
,
k
,((
uint8_t
*
)
sib1_payload
)[
k
]);
for
(
int
k
=
0
;
k
<
sib1_sdu_length
;
k
++
)
LOG_D
(
NR_MAC
,
"byte %d : %x
\n
"
,
k
,((
uint8_t
*
)
sib1_payload
)[
k
]);
// Configure sched_ctrlCommon for SIB1
// Configure sched_ctrlCommon for SIB1
schedule_control_sib1
(
module_idP
,
CC_id
,
type0_PDCCH_CSS_config
,
time_domain_allocation
,
mcsTableIdx
,
mcs
,
candidate_idx
,
sib1_sdu_length
);
schedule_control_sib1
(
module_idP
,
CC_id
,
type0_PDCCH_CSS_config
,
time_domain_allocation
,
mcsTableIdx
,
mcs
,
candidate_idx
,
sib1_sdu_length
);
int
startSymbolIndex
=
0
;
int
startSymbolIndex
=
0
;
int
nrOfSymbols
=
0
;
int
nrOfSymbols
=
0
;
if
(
gNB_mac
->
common_channels
->
ServingCellConfigCommon
->
dmrs_TypeA_Position
==
0
)
{
if
(
gNB_mac
->
common_channels
->
ServingCellConfigCommon
->
dmrs_TypeA_Position
==
0
)
{
startSymbolIndex
=
table_5_1_2_1_1_2_time_dom_res_alloc_A_dmrs_typeA_pos2
[
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
time_domain_allocation
][
1
];
startSymbolIndex
=
table_5_1_2_1_1_2_time_dom_res_alloc_A_dmrs_typeA_pos2
[
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
time_domain_allocation
][
1
];
nrOfSymbols
=
table_5_1_2_1_1_2_time_dom_res_alloc_A_dmrs_typeA_pos2
[
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
time_domain_allocation
][
2
];
nrOfSymbols
=
table_5_1_2_1_1_2_time_dom_res_alloc_A_dmrs_typeA_pos2
[
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
time_domain_allocation
][
2
];
}
else
{
}
else
{
startSymbolIndex
=
table_5_1_2_1_1_2_time_dom_res_alloc_A_dmrs_typeA_pos3
[
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
time_domain_allocation
][
1
];
startSymbolIndex
=
table_5_1_2_1_1_2_time_dom_res_alloc_A_dmrs_typeA_pos3
[
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
time_domain_allocation
][
1
];
nrOfSymbols
=
table_5_1_2_1_1_2_time_dom_res_alloc_A_dmrs_typeA_pos3
[
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
time_domain_allocation
][
2
];
nrOfSymbols
=
table_5_1_2_1_1_2_time_dom_res_alloc_A_dmrs_typeA_pos3
[
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
time_domain_allocation
][
2
];
}
}
// Calculate number of PRB_DMRS
// Calculate number of PRB_DMRS
uint8_t
N_PRB_DMRS
=
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
numDmrsCdmGrpsNoData
*
6
;
uint8_t
N_PRB_DMRS
=
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
numDmrsCdmGrpsNoData
*
6
;
uint16_t
dlDmrsSymbPos
=
fill_dmrs_mask
(
NULL
,
gNB_mac
->
common_channels
->
ServingCellConfigCommon
->
dmrs_TypeA_Position
,
nrOfSymbols
,
startSymbolIndex
);
uint16_t
dlDmrsSymbPos
=
fill_dmrs_mask
(
NULL
,
gNB_mac
->
common_channels
->
ServingCellConfigCommon
->
dmrs_TypeA_Position
,
nrOfSymbols
,
startSymbolIndex
);
uint16_t
dmrs_length
=
get_num_dmrs
(
dlDmrsSymbPos
);
uint16_t
dmrs_length
=
get_num_dmrs
(
dlDmrsSymbPos
);
const
uint32_t
TBS
=
nr_compute_tbs
(
nr_get_Qm_dl
(
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
mcs
,
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
mcsTableIdx
),
const
uint32_t
TBS
=
nr_compute_tbs
(
nr_get_Qm_dl
(
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
mcs
,
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
mcsTableIdx
),
nr_get_code_rate_dl
(
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
mcs
,
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
mcsTableIdx
),
nr_get_code_rate_dl
(
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
mcs
,
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
mcsTableIdx
),
...
...
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