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
86685897
Commit
86685897
authored
Oct 27, 2020
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
RNTI_SI: update to 0xFFFF
parent
a7a314c4
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
61 additions
and
46 deletions
+61
-46
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+10
-8
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+9
-0
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+1
-0
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+9
-7
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+32
-31
No files found.
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
86685897
...
@@ -168,13 +168,6 @@ uint8_t nr_generate_dci_top(PHY_VARS_gNB *gNB,
...
@@ -168,13 +168,6 @@ uint8_t nr_generate_dci_top(PHY_VARS_gNB *gNB,
/// Scrambling
/// Scrambling
uint32_t
scrambled_output
[
NR_MAX_DCI_SIZE_DWORD
]
=
{
0
};
uint32_t
scrambled_output
[
NR_MAX_DCI_SIZE_DWORD
]
=
{
0
};
nr_pdcch_scrambling
(
encoder_output
,
encoded_length
,
Nid
,
scrambling_RNTI
,
scrambled_output
);
nr_pdcch_scrambling
(
encoder_output
,
encoded_length
,
Nid
,
scrambling_RNTI
,
scrambled_output
);
printf
(
"polar_encoder_fast: pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d] = %i, pdcch_pdu_rel15->dci_pdu.AggregationLevel[d] = %i, n_RNTI = %i
\n
"
,
pdcch_pdu_rel15
->
dci_pdu
.
PayloadSizeBits
[
d
],
pdcch_pdu_rel15
->
dci_pdu
.
AggregationLevel
[
d
],
n_RNTI
);
printf
(
"nr_pdcch_scrambling: encoded_length = %i, Nid = %i, scrambling_RNTI = %i
\n\n
"
,
encoded_length
,
Nid
,
scrambling_RNTI
);
#ifdef DEBUG_CHANNEL_CODING
#ifdef DEBUG_CHANNEL_CODING
printf
(
"scrambled output: [0]->0x%08x
\t
[1]->0x%08x
\t
[2]->0x%08x
\t
[3]->0x%08x
\t
[4]->0x%08x
\t
[5]->0x%08x
\t
\
printf
(
"scrambled output: [0]->0x%08x
\t
[1]->0x%08x
\t
[2]->0x%08x
\t
[3]->0x%08x
\t
[4]->0x%08x
\t
[5]->0x%08x
\t
\
[6]->0x%08x
\t
[7]->0x%08x
\t
[8]->0x%08x
\t
[9]->0x%08x
\t
[10]->0x%08x
\t
[11]->0x%08x
\n
"
,
[6]->0x%08x
\t
[7]->0x%08x
\t
[8]->0x%08x
\t
[9]->0x%08x
\t
[10]->0x%08x
\t
[11]->0x%08x
\n
"
,
...
@@ -247,6 +240,15 @@ uint8_t nr_generate_dci_top(PHY_VARS_gNB *gNB,
...
@@ -247,6 +240,15 @@ uint8_t nr_generate_dci_top(PHY_VARS_gNB *gNB,
}
// m
}
// m
}
// reg_idx
}
// reg_idx
printf
(
"polar_encoder_fast: pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d] = %i, pdcch_pdu_rel15->dci_pdu.AggregationLevel[d] = %i, n_RNTI = %i
\n
"
,
pdcch_pdu_rel15
->
dci_pdu
.
PayloadSizeBits
[
d
],
pdcch_pdu_rel15
->
dci_pdu
.
AggregationLevel
[
d
],
n_RNTI
);
printf
(
"nr_pdcch_scrambling: encoded_length = %i, Nid = %i, scrambling_RNTI = %i
\n\n
"
,
encoded_length
,
Nid
,
scrambling_RNTI
);
printf
(
"
\n
>> DCI: payloadSize = %d | payload = %llx
\n\n
"
,
*
pdcch_pdu_rel15
->
dci_pdu
.
PayloadSizeBits
,
*
(
unsigned
long
long
*
)
pdcch_pdu_rel15
->
dci_pdu
.
Payload
);
}
// for (int d=0;d<pdcch_pdu_rel15->numDlDci;d++)
}
// for (int d=0;d<pdcch_pdu_rel15->numDlDci;d++)
return
0
;
return
0
;
}
}
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
86685897
...
@@ -2953,5 +2953,14 @@ int get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PDC
...
@@ -2953,5 +2953,14 @@ int get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PDC
AssertFatal
(
type0_PDCCH_CSS_config
->
sfn_c
!=
SFN_C_IMPOSSIBLE
,
""
);
AssertFatal
(
type0_PDCCH_CSS_config
->
sfn_c
!=
SFN_C_IMPOSSIBLE
,
""
);
AssertFatal
(
type0_PDCCH_CSS_config
->
n_c
!=
UINT_MAX
,
""
);
AssertFatal
(
type0_PDCCH_CSS_config
->
n_c
!=
UINT_MAX
,
""
);
type0_PDCCH_CSS_config
->
n_0
=
((
uint32_t
)(
big_o
*
pow
(
2
,
scs_pdcch
))
+
(
uint32_t
)(
type0_PDCCH_CSS_config
->
ssb_index
*
big_m
))
%
num_slot_per_frame
;
/*printf("\nbig_o = %f\n", big_o);
printf("scs_pdcch = %u\n", scs_pdcch);
printf("ssb_index = %u\n", type0_PDCCH_CSS_config->ssb_index);
printf("big_m = %f\n", big_m);
printf("num_slot_per_frame = %u\n", num_slot_per_frame);*/
return
0
;
return
0
;
}
}
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
86685897
...
@@ -121,6 +121,7 @@ typedef struct Type0_PDCCH_CSS_config_s {
...
@@ -121,6 +121,7 @@ typedef struct Type0_PDCCH_CSS_config_s {
uint16_t
frame
;
uint16_t
frame
;
SFN_C_TYPE
sfn_c
;
SFN_C_TYPE
sfn_c
;
uint32_t
n_c
;
uint32_t
n_c
;
uint32_t
n_0
;
uint32_t
number_of_search_space_per_slot
;
uint32_t
number_of_search_space_per_slot
;
uint32_t
first_symbol_index
;
uint32_t
first_symbol_index
;
uint32_t
search_space_duration
;
uint32_t
search_space_duration
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
View file @
86685897
...
@@ -148,7 +148,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
...
@@ -148,7 +148,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
sps
=
bwp_Common
->
genericParameters
.
cyclicPrefix
==
NULL
?
14
:
12
;
sps
=
bwp_Common
->
genericParameters
.
cyclicPrefix
==
NULL
?
14
:
12
;
// for SPS=14 8 MSBs in positions 13 down to 6
// for SPS=14 8 MSBs in positions 13 down to 6
monitoringSymbolsWithinSlot
=
(
ss
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
<<
(
sps
-
8
))
|
(
ss
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
>>
(
16
-
sps
));
monitoringSymbolsWithinSlot
=
(
ss
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
<<
(
sps
-
8
))
|
(
ss
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
>>
(
16
-
sps
));
rel15
->
rnti
=
mac
->
crnti
;
// FIXME: Must be 0xFFFF
rel15
->
rnti
=
0xFFFF
;
// SI-RNTI - 3GPP TS 38.321 Table 7.1-1: RNTI values
rel15
->
BWPSize
=
NRRIV2BW
(
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
rel15
->
BWPSize
=
NRRIV2BW
(
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
rel15
->
BWPStart
=
NRRIV2PRBOFFSET
(
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
rel15
->
BWPStart
=
NRRIV2PRBOFFSET
(
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
rel15
->
SubcarrierSpacing
=
bwp_Common
->
genericParameters
.
subcarrierSpacing
;
rel15
->
SubcarrierSpacing
=
bwp_Common
->
genericParameters
.
subcarrierSpacing
;
...
@@ -252,19 +252,21 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
...
@@ -252,19 +252,21 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
}
}
}
}
if
(
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceSIB1
){
if
(
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceSIB1
){
printf
(
"*pdcch_ConfigCommon->choice.setup->searchSpaceSIB1 = %li
\n
"
,
*
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceSIB1
);
printf
(
"ss->searchSpaceId = %li
\n
"
,
ss
->
searchSpaceId
);
// FIXME:
//if (ss->searchSpaceId == *pdcch_ConfigCommon->choice.setup->searchSpaceSIB1){
//if (ss->searchSpaceId == *pdcch_ConfigCommon->choice.setup->searchSpaceSIB1){
if
(
slot
==
10
){
if
(
(
frame
%
2
==
mac
->
type0_PDCCH_CSS_config
.
sfn_c
)
&&
(
slot
==
mac
->
type0_PDCCH_CSS_config
.
n_0
)
){
rel15
->
num_dci_options
=
1
;
rel15
->
num_dci_options
=
1
;
rel15
->
dci_format_options
[
0
]
=
NR_DL_DCI_FORMAT_1_0
;
rel15
->
dci_format_options
[
0
]
=
NR_DL_DCI_FORMAT_1_0
;
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_SI
,
ss_id
);
config_dci_pdu
(
mac
,
rel15
,
dl_config
,
NR_RNTI_SI
,
ss_id
);
fill_dci_search_candidates
(
ss
,
rel15
);
fill_dci_search_candidates
(
ss
,
rel15
);
//}
// Configure monitoring of PDCCH candidates in Type0-PDCCH common search space on the MCG
LOG_W
(
MAC
,
"[DCI_CONFIG] This seach space should not be configured yet..."
);
}
}
//}
}
}
if
(
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceOtherSystemInformation
){
if
(
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceOtherSystemInformation
){
if
(
ss
->
searchSpaceId
==
*
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceOtherSystemInformation
){
if
(
ss
->
searchSpaceId
==
*
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceOtherSystemInformation
){
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
86685897
...
@@ -165,7 +165,6 @@ void schedule_control_sib1(module_id_t module_id,
...
@@ -165,7 +165,6 @@ void schedule_control_sib1(module_id_t module_id,
uint8_t
numDmrsCdmGrpsNoData
)
{
uint8_t
numDmrsCdmGrpsNoData
)
{
gNB_MAC_INST
*
gNB_mac
=
RC
.
nrmac
[
module_id
];
gNB_MAC_INST
*
gNB_mac
=
RC
.
nrmac
[
module_id
];
NR_BWP_Downlink_t
*
bwp
=
gNB_mac
->
secondaryCellGroupCommon
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_id
-
1
];
if
(
gNB_mac
->
sched_ctrlCommon
==
NULL
){
if
(
gNB_mac
->
sched_ctrlCommon
==
NULL
){
gNB_mac
->
sched_ctrlCommon
=
calloc
(
1
,
sizeof
(
*
gNB_mac
->
sched_ctrlCommon
));
gNB_mac
->
sched_ctrlCommon
=
calloc
(
1
,
sizeof
(
*
gNB_mac
->
sched_ctrlCommon
));
...
@@ -176,7 +175,7 @@ void schedule_control_sib1(module_id_t module_id,
...
@@ -176,7 +175,7 @@ void schedule_control_sib1(module_id_t module_id,
fill_default_coresetZero
(
gNB_mac
->
sched_ctrlCommon
->
coreset
);
fill_default_coresetZero
(
gNB_mac
->
sched_ctrlCommon
->
coreset
);
}
}
gNB_mac
->
sched_ctrlCommon
->
active_bwp
=
bwp
;
gNB_mac
->
sched_ctrlCommon
->
active_bwp
=
gNB_mac
->
secondaryCellGroupCommon
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_id
-
1
]
;
gNB_mac
->
sched_ctrlCommon
->
rbSize
=
0
;
gNB_mac
->
sched_ctrlCommon
->
rbSize
=
0
;
gNB_mac
->
sched_ctrlCommon
->
time_domain_allocation
=
time_domain_allocation
;
gNB_mac
->
sched_ctrlCommon
->
time_domain_allocation
=
time_domain_allocation
;
gNB_mac
->
sched_ctrlCommon
->
mcsTableIdx
=
mcsTableIdx
;
gNB_mac
->
sched_ctrlCommon
->
mcsTableIdx
=
mcsTableIdx
;
...
@@ -193,14 +192,6 @@ void schedule_control_sib1(module_id_t module_id,
...
@@ -193,14 +192,6 @@ void schedule_control_sib1(module_id_t module_id,
0
,
0
,
0
);
0
);
// Frequency-domain allocation
const
uint16_t
bwpSize
=
NRRIV2BW
(
gNB_mac
->
sched_ctrlCommon
->
active_bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
int
rbStart
=
NRRIV2PRBOFFSET
(
gNB_mac
->
sched_ctrlCommon
->
active_bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
uint8_t
*
vrb_map
=
RC
.
nrmac
[
module_id
]
->
common_channels
[
CC_id
].
vrb_map
;
while
(
rbStart
<
bwpSize
&&
vrb_map
[
rbStart
])
{
rbStart
++
;
}
// Calculate number of PRB_DMRS
// Calculate number of PRB_DMRS
uint8_t
N_PRB_DMRS
;
uint8_t
N_PRB_DMRS
;
if
(
gNB_mac
->
sched_ctrlCommon
->
active_bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_Type
==
NFAPI_NR_DMRS_TYPE1
)
{
if
(
gNB_mac
->
sched_ctrlCommon
->
active_bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
dmrs_Type
==
NFAPI_NR_DMRS_TYPE1
)
{
...
@@ -216,18 +207,14 @@ void schedule_control_sib1(module_id_t module_id,
...
@@ -216,18 +207,14 @@ void schedule_control_sib1(module_id_t module_id,
SLIV2SL
(
startSymbolAndLength
,
&
startSymbolIndex
,
&
nrOfSymbols
);
SLIV2SL
(
startSymbolAndLength
,
&
startSymbolIndex
,
&
nrOfSymbols
);
// Calculate rbStart and rbSize
// Calculate rbStart and rbSize
int
rbSize
=
0
;
gNB_mac
->
sched_ctrlCommon
->
rbStart
=
NRRIV2PRBOFFSET
(
gNB_mac
->
sched_ctrlCommon
->
active_bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
uint32_t
TBS
=
0
;
gNB_mac
->
sched_ctrlCommon
->
rbSize
=
gNB_mac
->
type0_PDCCH_CSS_config
.
num_rbs
;
do
{
uint32_t
TBS
=
nr_compute_tbs
(
nr_get_Qm_dl
(
gNB_mac
->
sched_ctrlCommon
->
mcs
,
gNB_mac
->
sched_ctrlCommon
->
mcsTableIdx
),
rbSize
++
;
TBS
=
nr_compute_tbs
(
nr_get_Qm_dl
(
gNB_mac
->
sched_ctrlCommon
->
mcs
,
gNB_mac
->
sched_ctrlCommon
->
mcsTableIdx
),
nr_get_code_rate_dl
(
gNB_mac
->
sched_ctrlCommon
->
mcs
,
gNB_mac
->
sched_ctrlCommon
->
mcsTableIdx
),
nr_get_code_rate_dl
(
gNB_mac
->
sched_ctrlCommon
->
mcs
,
gNB_mac
->
sched_ctrlCommon
->
mcsTableIdx
),
rbSize
,
nrOfSymbols
,
N_PRB_DMRS
,
0
,
0
,
1
)
>>
3
;
gNB_mac
->
sched_ctrlCommon
->
rbSize
,
nrOfSymbols
,
N_PRB_DMRS
,
0
,
0
,
1
)
>>
3
;
}
while
(
rbStart
+
rbSize
<
bwpSize
&&
!
vrb_map
[
rbStart
+
rbSize
]
&&
TBS
<
0
);
gNB_mac
->
sched_ctrlCommon
->
rbSize
=
rbSize
;
gNB_mac
->
sched_ctrlCommon
->
rbStart
=
rbStart
;
// Mark the corresponding RBs as used
// Mark the corresponding RBs as used
uint8_t
*
vrb_map
=
RC
.
nrmac
[
module_id
]
->
common_channels
[
CC_id
].
vrb_map
;
for
(
int
rb
=
0
;
rb
<
gNB_mac
->
sched_ctrlCommon
->
rbSize
;
rb
++
)
{
for
(
int
rb
=
0
;
rb
<
gNB_mac
->
sched_ctrlCommon
->
rbSize
;
rb
++
)
{
vrb_map
[
rb
+
gNB_mac
->
sched_ctrlCommon
->
rbStart
]
=
1
;
vrb_map
[
rb
+
gNB_mac
->
sched_ctrlCommon
->
rbStart
]
=
1
;
}
}
...
@@ -239,13 +226,13 @@ void schedule_control_sib1(module_id_t module_id,
...
@@ -239,13 +226,13 @@ void schedule_control_sib1(module_id_t module_id,
printf
(
"nr_of_candidates = %i
\n
"
,
nr_of_candidates
);
printf
(
"nr_of_candidates = %i
\n
"
,
nr_of_candidates
);
printf
(
"startSymbolIndex = %i
\n
"
,
startSymbolIndex
);
printf
(
"startSymbolIndex = %i
\n
"
,
startSymbolIndex
);
printf
(
"nrOfSymbols = %i
\n
"
,
nrOfSymbols
);
printf
(
"nrOfSymbols = %i
\n
"
,
nrOfSymbols
);
printf
(
"rbSize = %i
\n
"
,
rbSize
);
printf
(
"rbSize = %i
\n
"
,
gNB_mac
->
sched_ctrlCommon
->
rbSize
);
printf
(
"rbStart = %i
\n
"
,
rbStart
);
printf
(
"rbStart = %i
\n
"
,
gNB_mac
->
sched_ctrlCommon
->
rbStart
);
printf
(
"TBS = %i
\n
"
,
TBS
);
printf
(
"TBS = %i
\n
"
,
TBS
);
printf
(
"N_PRB_DMRS = %i
\n
"
,
N_PRB_DMRS
);
printf
(
"N_PRB_DMRS = %i
\n
"
,
N_PRB_DMRS
);
}
}
void
nr_fill_nfapi_dci_sib1_pdu
(
int
Mod_idP
,
rnti_t
rnti
,
nfapi_nr_dl_tti_request_body_t
*
dl_req
)
{
void
nr_fill_nfapi_dci_sib1_pdu
(
int
Mod_idP
,
nfapi_nr_dl_tti_request_body_t
*
dl_req
)
{
gNB_MAC_INST
*
gNB_mac
=
RC
.
nrmac
[
Mod_idP
];
gNB_MAC_INST
*
gNB_mac
=
RC
.
nrmac
[
Mod_idP
];
NR_ServingCellConfigCommon_t
*
scc
=
gNB_mac
->
common_channels
->
ServingCellConfigCommon
;
NR_ServingCellConfigCommon_t
*
scc
=
gNB_mac
->
common_channels
->
ServingCellConfigCommon
;
...
@@ -283,7 +270,7 @@ void nr_fill_nfapi_dci_sib1_pdu(int Mod_idP, rnti_t rnti, nfapi_nr_dl_tti_reques
...
@@ -283,7 +270,7 @@ void nr_fill_nfapi_dci_sib1_pdu(int Mod_idP, rnti_t rnti, nfapi_nr_dl_tti_reques
nr_configure_pdcch
(
gNB_mac
,
nr_configure_pdcch
(
gNB_mac
,
pdcch_pdu_rel15
,
pdcch_pdu_rel15
,
rnti
,
0xFFFF
,
// SI-RNTI - 3GPP TS 38.321 Table 7.1-1: RNTI values
gNB_mac
->
sched_ctrlCommon
->
search_space
,
gNB_mac
->
sched_ctrlCommon
->
search_space
,
gNB_mac
->
sched_ctrlCommon
->
coreset
,
gNB_mac
->
sched_ctrlCommon
->
coreset
,
scc
,
scc
,
...
@@ -310,29 +297,43 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
...
@@ -310,29 +297,43 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
printf
(
"frameP = %i, slotP = %i
\n
"
,
frameP
,
slotP
);
printf
(
"frameP = %i, slotP = %i
\n
"
,
frameP
,
slotP
);
int
CC_id
=
0
;
int
CC_id
=
0
;
rnti_t
rnti
=
0x1234
;
int
bwp_id
=
1
;
int
bwp_id
=
1
;
int
time_domain_allocation
=
2
;
int
time_domain_allocation
=
0
;
uint8_t
mcsTableIdx
=
0
;
uint8_t
mcsTableIdx
=
0
;
uint8_t
mcs
=
9
;
uint8_t
mcs
=
9
;
uint8_t
numDmrsCdmGrpsNoData
=
1
;
uint8_t
numDmrsCdmGrpsNoData
=
1
;
gNB_MAC_INST
*
gNB_mac
=
RC
.
nrmac
[
module_idP
];
gNB_MAC_INST
*
gNB_mac
=
RC
.
nrmac
[
module_idP
];
// TODO: Check at gNB_mac->type0_PDCCH_CSS_config if it is to transmit (structure arrives here updated)
if
(
gNB_mac
->
type0_PDCCH_CSS_config
.
num_rbs
<=
0
)
{
bool
is_to_transmit_sib1
=
false
;
return
;
is_to_transmit_sib1
=
slotP
==
10
;
}
printf
(
"search_space_duration = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
search_space_duration
);
printf
(
"number_of_search_space_per_slot = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
number_of_search_space_per_slot
);
printf
(
"type0_pdcch_ss_mux_pattern = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
type0_pdcch_ss_mux_pattern
);
printf
(
"ssb_index = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
ssb_index
);
printf
(
"first_symbol_index = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
first_symbol_index
);
printf
(
"num_symbols = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
num_symbols
);
printf
(
"ssb_length = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
ssb_length
);
printf
(
"frame = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
frame
);
printf
(
"n_c = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
n_c
);
printf
(
"num_rbs = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
num_rbs
);
printf
(
"rb_offset = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
rb_offset
);
printf
(
"sfn_c = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
sfn_c
);
printf
(
"n_0 = %i
\n
"
,
gNB_mac
->
type0_PDCCH_CSS_config
.
n_0
);
if
(
is_to_transmit_sib1
)
{
if
(
(
frameP
%
2
==
gNB_mac
->
type0_PDCCH_CSS_config
.
sfn_c
)
&&
(
slotP
==
gNB_mac
->
type0_PDCCH_CSS_config
.
n_0
)
)
{
printf
(
"SIB1 will be transmitted here
\n
"
);
printf
(
"
\n
SIB1 will be transmitted here
\n
"
);
// Computation of the sched_ctrlCommon: bwp, coreset0, rbStart, rbSize, etc.
// Computation of the sched_ctrlCommon: bwp, coreset0, rbStart, rbSize, etc.
schedule_control_sib1
(
module_idP
,
CC_id
,
bwp_id
,
time_domain_allocation
,
mcsTableIdx
,
mcs
,
numDmrsCdmGrpsNoData
);
schedule_control_sib1
(
module_idP
,
CC_id
,
bwp_id
,
time_domain_allocation
,
mcsTableIdx
,
mcs
,
numDmrsCdmGrpsNoData
);
// Schedule broadcast DCI for the SIB1
// Schedule broadcast DCI for the SIB1
nfapi_nr_dl_tti_request_body_t
*
dl_req
=
&
gNB_mac
->
DL_req
[
CC_id
].
dl_tti_request_body
;
nfapi_nr_dl_tti_request_body_t
*
dl_req
=
&
gNB_mac
->
DL_req
[
CC_id
].
dl_tti_request_body
;
nr_fill_nfapi_dci_sib1_pdu
(
module_idP
,
rnti
,
dl_req
);
nr_fill_nfapi_dci_sib1_pdu
(
module_idP
,
dl_req
);
// Get SIB1
// Get SIB1
uint8_t
sib1_payload
[
100
];
uint8_t
sib1_payload
[
100
];
...
...
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