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
常顺宇
OpenXG-RAN
Commits
6e0b0049
Commit
6e0b0049
authored
Nov 03, 2020
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Coreset0 frequency allocation update
parent
23f5277d
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
87 additions
and
118 deletions
+87
-118
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+3
-10
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
+4
-18
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+8
-3
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+5
-0
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+32
-5
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+1
-0
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+4
-2
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+13
-48
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+6
-12
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+8
-17
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+2
-2
No files found.
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
6e0b0049
...
...
@@ -240,7 +240,7 @@ uint8_t nr_generate_dci_top(PHY_VARS_gNB *gNB,
}
// m
}
// reg_idx
printf
(
">> DCI: payloadSize = %d | payload = %llx
\n
\n
"
,
LOG_I
(
PHY
,
">> DCI: payloadSize = %d | payload = %llx
\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++)
...
...
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
6e0b0049
...
...
@@ -879,12 +879,6 @@ uint8_t nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
n_rnti
=
rel15
->
rnti
;
printf
(
"nr_pdcch_unscrambling: encoded_length = %i, Nid = %i, scrambling_RNTI = %i
\n
"
,
L
*
108
,
rel15
->
coreset
.
pdcch_dmrs_scrambling_id
,
rel15
->
coreset
.
scrambling_rnti
);
printf
(
"polar_decoder_int16: pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d] = %i, pdcch_pdu_rel15->dci_pdu.AggregationLevel[d] = %i, n_RNTI = %i
\n
"
,
dci_length
,
L
,
rel15
->
rnti
);
if
(
crc
==
n_rnti
)
{
LOG_D
(
PHY
,
"Decoded crc %x matches rnti %x for DCI format %d
\n
"
,
crc
,
n_rnti
,
rel15
->
dci_format_options
[
k
]);
dci_ind
->
SFN
=
frame
;
...
...
@@ -896,19 +890,18 @@ uint8_t nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
memcpy
((
void
*
)
dci_ind
->
dci_list
[
dci_ind
->
number_of_dcis
].
payloadBits
,(
void
*
)
dci_estimation
,
8
);
dci_ind
->
number_of_dcis
++
;
printf
(
"
\n
>> Received dci indication (rnti %x,dci format %d,n_CCE %d,payloadSize %d,payload %llx)
\n\n
"
,
LOG_I
(
PHY
,
"
\n
>> Received dci indication (rnti %x,dci format %d,n_CCE %d,payloadSize %d,payload %llx)
\n\n
"
,
n_rnti
,
rel15
->
dci_format_options
[
k
],
CCEind
,
dci_length
,
*
(
unsigned
long
long
*
)
dci_estimation
);
break
;
// If DCI is found, no need to check for remaining DCI lengths
}
else
{
LOG_
D
(
PHY
,
"Decoded crc %x does not match rnti %x for DCI format %d
\n
"
,
crc
,
n_rnti
,
rel15
->
dci_format_options
[
k
]);
LOG_
I
(
PHY
,
"Decoded crc %x does not match rnti %x for DCI format %d
\n
"
,
crc
,
n_rnti
,
rel15
->
dci_format_options
[
k
]);
}
}
}
}
printf
(
"nr_dci_decoding_procedure: frame = %i, slot = %i
\n
"
,
frame
,
slot
);
getchar
();
LOG_I
(
PHY
,
"nr_dci_decoding_procedure: frame = %i, slot = %i
\n
"
,
frame
,
slot
);
return
(
dci_ind
->
number_of_dcis
);
}
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
View file @
6e0b0049
...
...
@@ -589,17 +589,11 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
// Fixme: correct type is unsigned, but nrLDPC_decoder and all called behind use signed int
if
(
check_crc
((
uint8_t
*
)
llrProcBuf
,
length_dec
,
harq_process
->
F
,
crc_type
))
{
LOG_D
(
PHY
,
"Segment %u CRC OK
\n\033
[0m"
,
r
);
if
(
r
==
0
)
{
for
(
int
i
=
0
;
i
<
10
;
i
++
)
LOG_D
(
PHY
,
"byte %d : %x
\n
"
,
i
,((
uint8_t
*
)
llrProcBuf
)[
i
]);
printf
(
"
\n
"
);
printf
(
"==== CRC OK ====
\n
"
);
for
(
int
i
=
0
;
i
<
10
;
i
++
)
printf
(
"byte %d : %x
\n
"
,
i
,((
uint8_t
*
)
llrProcBuf
)[
i
]);
printf
(
"
\n
"
);
LOG_I
(
PHY
,
"Segment %u CRC OK
\n\033
[0m"
,
r
);
getchar
();
if
(
r
==
0
)
{
for
(
int
i
=
0
;
i
<
10
;
i
++
)
LOG_I
(
PHY
,
"byte %d : %x
\n
"
,
i
,((
uint8_t
*
)
llrProcBuf
)[
i
]);
}
//Temporary hack
...
...
@@ -607,18 +601,10 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
ret
=
no_iteration_ldpc
;
}
else
{
LOG_
D
(
PHY
,
"CRC N
OK
\n\033
[0m"
);
LOG_
I
(
PHY
,
"CRC NOT
OK
\n\033
[0m"
);
ret
=
1
+
dlsch
->
max_ldpc_iterations
;
printf
(
"
\n
"
);
printf
(
"==== CRC NOT OK ====
\n
"
);
for
(
int
i
=
0
;
i
<
10
;
i
++
)
printf
(
"byte %d : %x
\n
"
,
i
,((
uint8_t
*
)
llrProcBuf
)[
i
]);
printf
(
"
\n
"
);
getchar
();
}
nb_total_decod
++
;
if
(
no_iteration_ldpc
>
dlsch
->
max_ldpc_iterations
){
nb_error_decod
++
;
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
6e0b0049
...
...
@@ -1957,10 +1957,15 @@ start_meas(&ue->generic_stat);
// FIXME: It was assumed that SIB1 has only one segment
int
harq_pid
=
PHY_vars_UE_g
[
0
][
0
]
->
dlsch_SI
[
0
]
->
current_harq_pid
;
nr_rrc_ue_decode_NR_SIB1_Message
(
&
ue
->
dlsch_SI
[
gNB_id
]
->
harq_processes
[
harq_pid
]
->
c
[
0
][
0
],
ue
->
dlsch_SI
[
gNB_id
]
->
harq_processes
[
harq_pid
]
->
TBS
);
getchar
();
if
(
ue
->
dlsch_SI
[
gNB_id
]
->
harq_processes
[
harq_pid
]
->
harq_ack
.
ack
==
1
)
{
nr_rrc_ue_decode_NR_SIB1_Message
(
&
ue
->
dlsch_SI
[
gNB_id
]
->
harq_processes
[
harq_pid
]
->
c
[
0
][
0
],
ue
->
dlsch_SI
[
gNB_id
]
->
harq_processes
[
harq_pid
]
->
TBS
);
}
else
{
LOG_D
(
PHY
,
"SIB1 CRC NOT OK"
);
}
}
// do procedures for P-RNTI
...
...
openair2/GNB_APP/gnb_config.c
View file @
6e0b0049
...
...
@@ -583,6 +583,11 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
config_get
(
pdcch_ConfigSIB1
,
sizeof
(
pdcch_ConfigSIB1
)
/
sizeof
(
paramdef_t
),
aprefix
);
}
AssertFatal
(
rrc
->
carrier
.
pdcch_ConfigSIB1
->
controlResourceSetZero
==
10
||
rrc
->
carrier
.
pdcch_ConfigSIB1
->
controlResourceSetZero
==
11
||
rrc
->
carrier
.
pdcch_ConfigSIB1
->
controlResourceSetZero
==
12
,
"controlResourceSetZero %li not suported yet
\n
"
,
rrc
->
carrier
.
pdcch_ConfigSIB1
->
controlResourceSetZero
);
sprintf
(
aprefix
,
"%s.[%i]"
,
GNB_CONFIG_STRING_GNB_LIST
,
0
);
config_getlist
(
&
SCCsParamList
,
NULL
,
0
,
aprefix
);
...
...
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
6e0b0049
...
...
@@ -412,26 +412,53 @@ void config_control_ue(NR_UE_MAC_INST_t *mac){
if
(
mac
->
search_space_zero
->
searchSpaceType
==
NULL
)
mac
->
search_space_zero
->
searchSpaceType
=
calloc
(
1
,
sizeof
(
*
mac
->
search_space_zero
->
searchSpaceType
));
if
(
mac
->
search_space_zero
->
searchSpaceType
->
choice
.
common
==
NULL
)
mac
->
search_space_zero
->
searchSpaceType
->
choice
.
common
=
calloc
(
1
,
sizeof
(
*
mac
->
search_space_zero
->
searchSpaceType
->
choice
.
common
));
if
(
mac
->
search_space_zero
->
searchSpaceType
->
choice
.
common
->
dci_Format0_0_AndFormat1_0
==
NULL
)
mac
->
search_space_zero
->
searchSpaceType
->
choice
.
common
->
dci_Format0_0_AndFormat1_0
=
calloc
(
1
,
sizeof
(
*
mac
->
search_space_zero
->
searchSpaceType
->
choice
.
common
->
dci_Format0_0_AndFormat1_0
));
mac
->
search_space_zero
->
searchSpaceId
=
0
;
*
mac
->
search_space_zero
->
controlResourceSetId
=
0
;
mac
->
search_space_zero
->
monitoringSlotPeriodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
mac
->
search_space_zero
->
monitoringSlotPeriodicityAndOffset
));
mac
->
search_space_zero
->
monitoringSlotPeriodicityAndOffset
->
present
=
NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1
;
mac
->
search_space_zero
->
duration
=
NULL
;
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
// should be '1100 0000 0000 00'B (LSB first!), first two symbols in slot, adjust if needed
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
buf
[
1
]
=
0
;
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
buf
[
0
]
=
(
1
<<
7
)
|
(
1
<<
6
);
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
size
=
2
;
mac
->
search_space_zero
->
monitoringSymbolsWithinSlot
->
bits_unused
=
2
;
mac
->
search_space_zero
->
nrofCandidates
->
aggregationLevel1
=
NR_SearchSpace__nrofCandidates__aggregationLevel1_n0
;
mac
->
search_space_zero
->
nrofCandidates
->
aggregationLevel2
=
NR_SearchSpace__nrofCandidates__aggregationLevel2_n0
;
mac
->
search_space_zero
->
nrofCandidates
->
aggregationLevel4
=
NR_SearchSpace__nrofCandidates__aggregationLevel4_n1
;
mac
->
search_space_zero
->
nrofCandidates
->
aggregationLevel8
=
NR_SearchSpace__nrofCandidates__aggregationLevel8_n0
;
mac
->
search_space_zero
->
nrofCandidates
->
aggregationLevel16
=
NR_SearchSpace__nrofCandidates__aggregationLevel16_n0
;
mac
->
search_space_zero
->
searchSpaceType
->
present
=
NR_SearchSpace__searchSpaceType_PR_common
;
// Coreset0
if
(
mac
->
coreset0
==
NULL
)
mac
->
coreset0
=
calloc
(
1
,
sizeof
(
*
mac
->
coreset0
));
mac
->
coreset0
->
controlResourceSetId
=
0
;
// frequencyDomainResources '11111111 00000000 00000000 00000000 00000000 00000'B,
if
(
mac
->
coreset0
->
frequencyDomainResources
.
buf
==
NULL
)
mac
->
coreset0
->
frequencyDomainResources
.
buf
=
calloc
(
1
,
6
);
mac
->
coreset0
->
frequencyDomainResources
.
buf
[
0
]
=
0xff
;
mac
->
coreset0
->
frequencyDomainResources
.
buf
[
1
]
=
0
;
mac
->
coreset0
->
frequencyDomainResources
.
buf
[
2
]
=
0
;
mac
->
coreset0
->
frequencyDomainResources
.
buf
[
3
]
=
0
;
mac
->
coreset0
->
frequencyDomainResources
.
buf
[
4
]
=
0
;
mac
->
coreset0
->
frequencyDomainResources
.
buf
[
5
]
=
0
;
mac
->
coreset0
->
frequencyDomainResources
.
size
=
6
;
mac
->
coreset0
->
frequencyDomainResources
.
bits_unused
=
3
;
mac
->
coreset0
->
duration
=
1
;
mac
->
coreset0
->
cce_REG_MappingType
.
present
=
NR_ControlResourceSet__cce_REG_MappingType_PR_nonInterleaved
;
// FIXME: Interleaved
//coreset0->cce_REG_MappingType.choice.interleaved=calloc(1,sizeof(*coreset->cce_REG_MappingType.choice.interleaved));
//coreset0->cce_REG_MappingType.choice.interleaved->interleaverSize = NR_ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n2;
//coreset0->cce_REG_MappingType.choice.interleaved->shiftIndex = scc->physCellId;
mac
->
coreset0
->
precoderGranularity
=
NR_ControlResourceSet__precoderGranularity_sameAsREG_bundle
;
if
(
mac
->
coreset0
->
tci_StatesPDCCH_ToAddList
==
NULL
)
mac
->
coreset0
->
tci_StatesPDCCH_ToAddList
=
calloc
(
1
,
sizeof
(
*
mac
->
coreset0
->
tci_StatesPDCCH_ToAddList
));
NR_TCI_StateId_t
*
tci
[
8
];
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
tci
[
i
]
=
calloc
(
1
,
sizeof
(
*
tci
[
i
]));
*
tci
[
i
]
=
i
;
ASN_SEQUENCE_ADD
(
&
mac
->
coreset0
->
tci_StatesPDCCH_ToAddList
->
list
,
tci
[
i
]);
}
mac
->
coreset0
->
tci_StatesPDCCH_ToReleaseList
=
NULL
;
mac
->
coreset0
->
tci_PresentInDCI
=
NULL
;
mac
->
coreset0
->
pdcch_DMRS_ScramblingID
=
NULL
;
}
int
nr_rrc_mac_config_req_ue
(
...
...
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
6e0b0049
...
...
@@ -256,6 +256,7 @@ typedef struct {
NR_Type0_PDCCH_CSS_config_t
type0_PDCCH_CSS_config
;
NR_SearchSpace_t
*
search_space_zero
;
NR_ControlResourceSet_t
*
coreset0
;
}
NR_UE_MAC_INST_t
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
View file @
6e0b0049
...
...
@@ -76,15 +76,17 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
NR_BWP_DownlinkCommon_t
*
initialDownlinkBWP
=
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
;
NR_SearchSpace_t
*
ss
;
NR_ControlResourceSet_t
*
coreset
;
if
(
ss_id
>=
0
)
{
ss
=
mac
->
SSpace
[
bwp_id
-
1
][
coreset_id
-
1
][
ss_id
];
coreset
=
mac
->
coreset
[
bwp_id
-
1
][
coreset_id
-
1
];
}
else
{
ss
=
mac
->
search_space_zero
;
coreset
=
mac
->
coreset0
;
}
// CORESET configuration
NR_ControlResourceSet_t
*
coreset
=
mac
->
coreset
[
bwp_id
-
1
][
coreset_id
-
1
];
rel15
->
coreset
.
duration
=
coreset
->
duration
;
for
(
int
i
=
0
;
i
<
6
;
i
++
)
rel15
->
coreset
.
frequency_domain_resource
[
i
]
=
coreset
->
frequencyDomainResources
.
buf
[
i
];
rel15
->
coreset
.
CceRegMappingType
=
coreset
->
cce_REG_MappingType
.
present
==
NR_ControlResourceSet__cce_REG_MappingType_PR_interleaved
?
FAPI_NR_CCE_REG_MAPPING_TYPE_INTERLEAVED
:
FAPI_NR_CCE_REG_MAPPING_TYPE_NON_INTERLEAVED
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
6e0b0049
...
...
@@ -289,19 +289,15 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
AssertFatal
(
mac
->
mib
!=
NULL
,
"nr_ue_decode_mib() mac->mib == NULL
\n
"
);
//
#ifdef DEBUG_MIB
#ifdef DEBUG_MIB
LOG_I
(
MAC
,
"system frame number(6 MSB bits): %d
\n
"
,
mac
->
mib
->
systemFrameNumber
.
buf
[
0
]);
//LOG_I(MAC,"system frame number(with LSB): %d\n", (int)frame);
LOG_I
(
MAC
,
"subcarrier spacing (0=15or60, 1=30or120): %d
\n
"
,
(
int
)
mac
->
mib
->
subCarrierSpacingCommon
);
//LOG_I(MAC,"ssb carrier offset(with MSB): %d\n", (int)ssb_subcarrier_offset);
LOG_I
(
MAC
,
"dmrs type A position (0=pos2,1=pos3): %d
\n
"
,
(
int
)
mac
->
mib
->
dmrs_TypeA_Position
);
LOG_I
(
MAC
,
"pdcch config sib1.controlResourceSetZero:
%d
\n
"
,
(
int
)
mac
->
mib
->
pdcch_ConfigSIB1
.
controlResourceSetZero
);
LOG_I
(
MAC
,
"pdcch config sib1.searchSpaceZero:
%d
\n
"
,
(
int
)
mac
->
mib
->
pdcch_ConfigSIB1
.
searchSpaceZero
);
LOG_I
(
MAC
,
"pdcch config sib1.controlResourceSetZero: %d
\n
"
,
(
int
)
mac
->
mib
->
pdcch_ConfigSIB1
.
controlResourceSetZero
);
LOG_I
(
MAC
,
"pdcch config sib1.searchSpaceZero: %d
\n
"
,
(
int
)
mac
->
mib
->
pdcch_ConfigSIB1
.
searchSpaceZero
);
LOG_I
(
MAC
,
"cell barred (0=barred,1=notBarred): %d
\n
"
,
(
int
)
mac
->
mib
->
cellBarred
);
LOG_I
(
MAC
,
"intra frequency reselection (0=allowed,1=notAllowed): %d
\n
"
,
(
int
)
mac
->
mib
->
intraFreqReselection
);
//LOG_I(MAC,"half frame bit(extra bits): %d\n", (int)half_frame_bit);
//LOG_I(MAC,"ssb index(extra bits): %d\n", (int)ssb_index);
//#endif
#endif
get_type0_PDCCH_CSS_config_parameters
(
&
mac
->
type0_PDCCH_CSS_config
,
mac
->
mib
,
extra_bits
,
ssb_length
,
ssb_index
);
...
...
@@ -312,29 +308,7 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
mac
->
dl_config_request
.
sfn
=
mac
->
type0_PDCCH_CSS_config
.
frame
;
mac
->
dl_config_request
.
slot
=
(
ssb_index
>>
1
)
+
((
ssb_index
>>
4
)
<<
1
);
// not valid for 240kHz SCS
printf
(
"
\n
extra_bits = %i
\n
"
,
extra_bits
);
printf
(
"mac->type0_PDCCH_CSS_config.num_rbs = %i
\n
"
,
mac
->
type0_PDCCH_CSS_config
.
num_rbs
);
printf
(
"mac->type0_PDCCH_CSS_config.num_symbols = %i
\n
"
,
mac
->
type0_PDCCH_CSS_config
.
num_symbols
);
printf
(
"mac->type0_PDCCH_CSS_config.rb_offset = %i
\n
"
,
mac
->
type0_PDCCH_CSS_config
.
rb_offset
);
printf
(
"mac->type0_pdcch_ss_mux_pattern = %i
\n
"
,
mac
->
type0_pdcch_ss_mux_pattern
);
printf
(
"mac->type0_PDCCH_CSS_config.frame = %i
\n
"
,
mac
->
type0_PDCCH_CSS_config
.
frame
);
printf
(
"mac->type0_pdcch_ss_sfn_c = %i
\n
"
,
mac
->
type0_pdcch_ss_sfn_c
);
printf
(
"mac->type0_pdcch_ss_n_c = %i
\n
"
,
mac
->
type0_pdcch_ss_n_c
);
printf
(
"mac->type0_PDCCH_CSS_config.number_of_search_space_per_slot = %i
\n
"
,
mac
->
type0_PDCCH_CSS_config
.
number_of_search_space_per_slot
);
printf
(
"mac->type0_PDCCH_CSS_config.first_symbol_index = %i
\n
"
,
mac
->
type0_PDCCH_CSS_config
.
first_symbol_index
);
printf
(
"mac->type0_PDCCH_CSS_config.search_space_duration = %i
\n
"
,
mac
->
type0_PDCCH_CSS_config
.
search_space_duration
);
printf
(
"mac->type0_PDCCH_CSS_config.ssb_length = %i
\n
"
,
mac
->
type0_PDCCH_CSS_config
.
ssb_length
);
printf
(
"ssb_index = %i
\n
"
,
ssb_index
);
printf
(
"mac->dl_config_request.sfn = %i
\n
"
,
mac
->
dl_config_request
.
sfn
);
printf
(
"mac->dl_config_request.slot = %i
\n
"
,
mac
->
dl_config_request
.
slot
);
printf
(
"
\n\n\n
"
);
return
0
;
}
...
...
@@ -3204,8 +3178,6 @@ int nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
case
NR_RNTI_SI
:
printf
(
"
\n
nr_extract_dci_info
\n\n
"
);
// Freq domain assignment 0-16 bit
fsize
=
(
int
)
ceil
(
log2
(
(
N_RB
*
(
N_RB
+
1
))
>>
1
)
);
pos
+=
fsize
;
...
...
@@ -3231,22 +3203,15 @@ int nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
pos
++
;
dci_pdu_rel15
->
system_info_indicator
=
(
*
dci_pdu
>>
(
dci_size
-
pos
))
&
0x1
;
printf
(
"
\n\n
"
);
for
(
int
i
=
64
-
dci_size
;
i
<
64
;
i
++
)
{
printf
(
"%i "
,
(
*
dci_pdu
>>
63
-
i
)
&
(
uint64_t
)
0x01
);
}
printf
(
"
\n
N_RB = %i
\n
"
,
N_RB
);
printf
(
"
\n
dci_size = %i
\n
"
,
dci_size
);
printf
(
"fsize = %i
\n
"
,
fsize
);
printf
(
"dci_pdu_rel15->frequency_domain_assignment.val = %i
\n
"
,
dci_pdu_rel15
->
frequency_domain_assignment
.
val
);
printf
(
"dci_pdu_rel15->time_domain_assignment.val = %i
\n
"
,
dci_pdu_rel15
->
time_domain_assignment
.
val
);
printf
(
"dci_pdu_rel15->vrb_to_prb_mapping.val = %i
\n
"
,
dci_pdu_rel15
->
vrb_to_prb_mapping
.
val
);
printf
(
"dci_pdu_rel15->mcs = %i
\n
"
,
dci_pdu_rel15
->
mcs
);
printf
(
"dci_pdu_rel15->rv = %i
\n
"
,
dci_pdu_rel15
->
rv
);
printf
(
"dci_pdu_rel15->system_info_indicator = %i
\n
"
,
dci_pdu_rel15
->
system_info_indicator
);
printf
(
"
\n
"
);
LOG_D
(
MAC
,
"N_RB = %i
\n
"
,
N_RB
);
LOG_D
(
MAC
,
"dci_size = %i
\n
"
,
dci_size
);
LOG_D
(
MAC
,
"fsize = %i
\n
"
,
fsize
);
LOG_D
(
MAC
,
"dci_pdu_rel15->frequency_domain_assignment.val = %i
\n
"
,
dci_pdu_rel15
->
frequency_domain_assignment
.
val
);
LOG_D
(
MAC
,
"dci_pdu_rel15->time_domain_assignment.val = %i
\n
"
,
dci_pdu_rel15
->
time_domain_assignment
.
val
);
LOG_D
(
MAC
,
"dci_pdu_rel15->vrb_to_prb_mapping.val = %i
\n
"
,
dci_pdu_rel15
->
vrb_to_prb_mapping
.
val
);
LOG_D
(
MAC
,
"dci_pdu_rel15->mcs = %i
\n
"
,
dci_pdu_rel15
->
mcs
);
LOG_D
(
MAC
,
"dci_pdu_rel15->rv = %i
\n
"
,
dci_pdu_rel15
->
rv
);
LOG_D
(
MAC
,
"dci_pdu_rel15->system_info_indicator = %i
\n
"
,
dci_pdu_rel15
->
system_info_indicator
);
break
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
6e0b0049
...
...
@@ -350,13 +350,13 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
void
schedule_nr_sib1
(
module_id_t
module_idP
,
frame_t
frameP
,
sub_frame_t
slotP
)
{
printf
(
"
\n\n
Schedule_nr_sib1: frameP = %i, slotP = %i
\n
"
,
frameP
,
slotP
);
LOG_D
(
MAC
,
"
Schedule_nr_sib1: frameP = %i, slotP = %i
\n
"
,
frameP
,
slotP
);
// static values
const
int
CC_id
=
0
;
int
time_domain_allocation
=
2
;
uint8_t
mcsTableIdx
=
0
;
uint8_t
mcs
=
9
;
uint8_t
mcs
=
0
;
uint8_t
numDmrsCdmGrpsNoData
=
1
;
int
bwp_id
=
1
;
...
...
@@ -364,18 +364,14 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
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
"
);
LOG_D
(
MAC
,
"> SIB1 transmission
\n
"
);
// Get SIB1
uint8_t
sib1_payload
[
100
];
uint8_t
sib1_sdu_length
=
mac_rrc_nr_data_req
(
module_idP
,
CC_id
,
frameP
,
BCCH
,
1
,
sib1_payload
);
printf
(
"sib1_sdu_length = %i
\n
"
,
sib1_sdu_length
);
printf
(
"SIB1: "
);
for
(
int
i
=
0
;
i
<
sib1_sdu_length
;
i
++
)
{
printf
(
"%x "
,
sib1_payload
[
i
]);
}
printf
(
"
\n\n
"
);
LOG_D
(
MAC
,
"sib1_sdu_length = %i
\n
"
,
sib1_sdu_length
);
LOG_I
(
MAC
,
"SIB1:
\n
"
);
for
(
int
i
=
0
;
i
<
sib1_sdu_length
;
i
++
)
LOG_I
(
MAC
,
"byte %d : %x
\n
"
,
i
,((
uint8_t
*
)
sib1_payload
)[
i
]);
// Configure sched_ctrlCommon for SIB1
schedule_control_sib1
(
module_idP
,
CC_id
,
bwp_id
,
time_domain_allocation
,
mcsTableIdx
,
mcs
,
numDmrsCdmGrpsNoData
,
sib1_sdu_length
);
...
...
@@ -406,8 +402,6 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
// Data to be transmitted
bzero
(
tx_req
->
TLVs
[
0
].
value
.
direct
,
MAX_NR_DLSCH_PAYLOAD_BYTES
);
//mac_sdus[2] = 0xFF;
//mac_sdus[5] = 0xFF;
memcpy
(
tx_req
->
TLVs
[
0
].
value
.
direct
,
sib1_payload
,
sib1_sdu_length
);
tx_req
->
PDU_length
=
TBS
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
6e0b0049
...
...
@@ -1195,23 +1195,14 @@ void fill_dci_pdu_rel15(NR_ServingCellConfigCommon_t *scc,
// reserved 15 bits
printf
(
"
\n\n
"
);
for
(
int
i
=
64
-
dci_size
;
i
<
64
;
i
++
)
{
printf
(
"%i "
,
(
*
dci_pdu
>>
63
-
i
)
&
(
uint64_t
)
0x01
);
}
printf
(
"
\n
dci_size = %i
\n
"
,
dci_size
);
printf
(
"fsize = %i
\n
"
,
fsize
);
printf
(
"dci_pdu_rel15->frequency_domain_assignment.val = %i
\n
"
,
dci_pdu_rel15
->
frequency_domain_assignment
.
val
);
printf
(
"dci_pdu_rel15->time_domain_assignment.val = %i
\n
"
,
dci_pdu_rel15
->
time_domain_assignment
.
val
);
printf
(
"dci_pdu_rel15->vrb_to_prb_mapping.val = %i
\n
"
,
dci_pdu_rel15
->
vrb_to_prb_mapping
.
val
);
printf
(
"dci_pdu_rel15->mcs = %i
\n
"
,
dci_pdu_rel15
->
mcs
);
printf
(
"dci_pdu_rel15->rv = %i
\n
"
,
dci_pdu_rel15
->
rv
);
printf
(
"dci_pdu_rel15->system_info_indicator = %i
\n
"
,
dci_pdu_rel15
->
system_info_indicator
);
printf
(
"
\n
"
);
LOG_D
(
PHY
,
"dci_size = %i
\n
"
,
dci_size
);
LOG_D
(
PHY
,
"fsize = %i
\n
"
,
fsize
);
LOG_D
(
PHY
,
"dci_pdu_rel15->frequency_domain_assignment.val = %i
\n
"
,
dci_pdu_rel15
->
frequency_domain_assignment
.
val
);
LOG_D
(
PHY
,
"dci_pdu_rel15->time_domain_assignment.val = %i
\n
"
,
dci_pdu_rel15
->
time_domain_assignment
.
val
);
LOG_D
(
PHY
,
"dci_pdu_rel15->vrb_to_prb_mapping.val = %i
\n
"
,
dci_pdu_rel15
->
vrb_to_prb_mapping
.
val
);
LOG_D
(
PHY
,
"dci_pdu_rel15->mcs = %i
\n
"
,
dci_pdu_rel15
->
mcs
);
LOG_D
(
PHY
,
"dci_pdu_rel15->rv = %i
\n
"
,
dci_pdu_rel15
->
rv
);
LOG_D
(
PHY
,
"dci_pdu_rel15->system_info_indicator = %i
\n
"
,
dci_pdu_rel15
->
system_info_indicator
);
break
;
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
6e0b0049
...
...
@@ -51,10 +51,10 @@ void fill_default_coresetZero(NR_ControlResourceSet_t *coreset0) {
coreset0
->
controlResourceSetId
=
0
;
// frequencyDomainResources '11111111
11111111
00000000 00000000 00000000 00000'B,
// frequencyDomainResources '11111111
00000000
00000000 00000000 00000000 00000'B,
if
(
coreset0
->
frequencyDomainResources
.
buf
==
NULL
)
coreset0
->
frequencyDomainResources
.
buf
=
calloc
(
1
,
6
);
coreset0
->
frequencyDomainResources
.
buf
[
0
]
=
0xff
;
coreset0
->
frequencyDomainResources
.
buf
[
1
]
=
0
xff
;
coreset0
->
frequencyDomainResources
.
buf
[
1
]
=
0
;
coreset0
->
frequencyDomainResources
.
buf
[
2
]
=
0
;
coreset0
->
frequencyDomainResources
.
buf
[
3
]
=
0
;
coreset0
->
frequencyDomainResources
.
buf
[
4
]
=
0
;
...
...
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