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
4 years ago
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++)
...
...
This diff is collapsed.
Click to expand it.
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
);
}
...
...
This diff is collapsed.
Click to expand it.
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
++
;
...
...
This diff is collapsed.
Click to expand it.
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
...
...
This diff is collapsed.
Click to expand it.
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
);
...
...
This diff is collapsed.
Click to expand it.
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
(
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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
;
...
...
This diff is collapsed.
Click to expand it.
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