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
ZhouShuya
OpenXG-RAN
Commits
ac092841
Commit
ac092841
authored
Dec 13, 2019
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
some updates on SSB and a couple of fixes on warnings
parent
decf6ed0
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
11 deletions
+19
-11
openair1/PHY/NR_TRANSPORT/nr_dci.h
openair1/PHY/NR_TRANSPORT/nr_dci.h
+4
-0
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR/fapi_nr_l1.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+4
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+10
-9
No files found.
openair1/PHY/NR_TRANSPORT/nr_dci.h
View file @
ac092841
...
...
@@ -46,6 +46,10 @@ void nr_fill_dci(PHY_VARS_gNB *gNB,
int
frame
,
int
slot
);
void
nr_fill_ul_dci
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
);
void
nr_fill_cce_list
(
PHY_VARS_gNB
*
gNB
,
uint8_t
m
);
void
get_coreset_rballoc
(
uint8_t
*
FreqDomainResource
,
int
*
n_rb
,
int
*
rb_offset
);
...
...
openair1/SCHED_NR/fapi_nr_l1.c
View file @
ac092841
...
...
@@ -44,7 +44,7 @@ void handle_nr_nfapi_ssb_pdu(PHY_VARS_gNB *gNB,int frame,int slot,
AssertFatal
(
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayloadFlag
==
1
,
"bchPayloadFlat %d != 1
\n
"
,
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayloadFlag
);
LOG_I
(
PHY
,
"%d.%d : pbch_pdu: %x
\n
"
,
frame
,
slot
,
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayload
,
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
SsbBlockIndex
);
LOG_I
(
PHY
,
"%d.%d : pbch_pdu: %x
\n
"
,
frame
,
slot
,
dl_tti_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayload
);
gNB
->
ssb_pdu
=
&
dl_tti_pdu
->
ssb_pdu
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
ac092841
...
...
@@ -367,11 +367,14 @@ void config_common(int Mod_idP, NR_ServingCellConfigCommon_t *scc) {
// SSB Table Configuration
int
scs_scaling
=
1
<<
(
cfg
->
ssb_config
.
scs_common
.
value
);
if
(
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
<
600000
)
scs_scaling
=
scs_scaling
*
3
;
if
(
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
>
2016666
)
scs_scaling
=
scs_scaling
>>
2
;
uint32_t
absolute_diff
=
(
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
-
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
);
cfg
->
ssb_table
.
ssb_offset_point_a
.
value
=
absolute_diff
/
(
12
*
scs_scaling
);
cfg
->
ssb_table
.
ssb_offset_point_a
.
tl
.
tag
=
NFAPI_NR_CONFIG_SSB_OFFSET_POINT_A_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_table
.
ssb_period
.
value
=
*
scc
->
ssb_periodicityServingCell
;
cfg
->
ssb_table
.
ssb_period
.
tl
.
tag
=
NFAPI_NR_CONFIG_SSB_PERIOD_TAG
;
cfg
->
num_tlv
++
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
ac092841
...
...
@@ -69,7 +69,6 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
int
mib_sdu_length
;
int
CC_id
;
AssertFatal
(
slotP
==
0
,
"Subframe must be 0
\n
"
);
AssertFatal
((
frameP
&
7
)
==
0
,
"Frame must be a multiple of 8
\n
"
);
...
...
@@ -107,34 +106,36 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
AssertFatal
(
cc
->
ServingCellConfigCommon
->
ssbSubcarrierSpacing
,
"ssbSubcarrierSpacing is null
\n
"
);
AssertFatal
(
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
],
"band is null
\n
"
);
long
band
=
*
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
];
uint32_t
ssb_offset0
=
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
-
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
;
uint32_t
ssb_offset0
=
*
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
-
cc
->
ServingCellConfigCommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
;
int
ratio
;
switch
(
*
cc
->
ServingCellConfigCommon
->
ssbSubcarrierSpacing
)
{
case
NR_SubcarrierSpacing_kHz15
:
AssertFatal
(
band
<=
79
,
"Band %d is not possible for SSB with 15 kHz SCS
\n
"
,
band
);
AssertFatal
(
band
<=
79
,
"Band %
l
d is not possible for SSB with 15 kHz SCS
\n
"
,
band
);
if
(
band
<
77
)
// below 3GHz
ratio
=
3
;
// NRARFCN step is 5 kHz
else
ratio
=
1
;
// NRARFCN step is 15 kHz
break
;
case
NR_SubcarrierSpacing_kHz30
:
AssertFatal
(
band
<=
79
,
"Band %d is not possible for SSB with 15 kHz SCS
\n
"
,
band
);
AssertFatal
(
band
<=
79
,
"Band %
l
d is not possible for SSB with 15 kHz SCS
\n
"
,
band
);
if
(
band
<
77
)
// below 3GHz
ratio
=
6
;
// NRARFCN step is 5 kHz
else
ratio
=
2
;
// NRARFCN step is 15 kHz
break
;
case
NR_SubcarrierSpacing_kHz120
:
AssertFatal
(
band
>=
257
,
"Band %d is not possible for SSB with 120 kHz SCS
\n
"
,
band
);
ratio
=
8
;
// NRARFCN step is 15 kHz
AssertFatal
(
band
>=
257
,
"Band %
l
d is not possible for SSB with 120 kHz SCS
\n
"
,
band
);
ratio
=
2
;
// NRARFCN step is 15 kHz
break
;
case
NR_SubcarrierSpacing_kHz240
:
AssertFatal
(
band
>=
257
,
"Band %d is not possible for SSB with 240 kHz SCS
\n
"
,
band
);
ratio
=
16
;
// NRARFCN step is 15 kHz
AssertFatal
(
band
>=
257
,
"Band %
l
d is not possible for SSB with 240 kHz SCS
\n
"
,
band
);
ratio
=
4
;
// NRARFCN step is 15 kHz
break
;
default:
AssertFatal
(
1
==
0
,
"SCS %ld not allowed for SSB
\n
"
,
*
cc
->
ServingCellConfigCommon
->
ssbSubcarrierSpacing
);
}
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
SsbSubcarrierOffset
=
0
;
//kSSB
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
ssbOffsetPointA
=
ssb_offset0
/
ratio
;
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
ssbOffsetPointA
=
ssb_offset0
/
(
ratio
*
12
)
;
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayloadFlag
=
1
;
dl_config_pdu
->
ssb_pdu
.
ssb_pdu_rel15
.
bchPayload
=
((
uint32_t
)
cc
->
MIB_pdu
.
payload
[
0
])
&
((
1
<<
24
)
-
1
);
dl_req
->
nPDUs
++
;
...
...
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