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
7fc64913
Commit
7fc64913
authored
Dec 14, 2020
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
beam tdd association for ssb
parent
d5e207ff
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
30 additions
and
6 deletions
+30
-6
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+7
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+14
-2
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+5
-1
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+3
-1
No files found.
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
7fc64913
...
...
@@ -320,7 +320,7 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
LOG_E
(
MAC
,
"TDD configuration can not be done
\n
"
);
else
{
LOG_I
(
MAC
,
"TDD has been properly configurated
\n
"
);
RC
.
nrmac
[
Mod_idP
]
->
tdd_beam_association
=
(
uint8_t
*
)
malloc16
(
periods_per_frame
*
sizeof
(
uint8
_t
));
RC
.
nrmac
[
Mod_idP
]
->
tdd_beam_association
=
(
int16_t
*
)
malloc16
(
periods_per_frame
*
sizeof
(
int16
_t
));
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
7fc64913
...
...
@@ -345,6 +345,12 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
AssertFatal
(
1
==
0
,
"Undefined tdd period %ld
\n
"
,
scc
->
tdd_UL_DL_ConfigurationCommon
->
pattern1
.
dl_UL_TransmissionPeriodicity
);
}
if
(
slot
==
0
&&
(
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
]
>=
257
))
{
// re-initialization of tdd_beam_association at beginning of frame (only for FR2)
for
(
int
i
=
0
;
i
<
nb_periods_per_frame
;
i
++
)
gNB
->
tdd_beam_association
[
i
]
=
-
1
;
}
int
num_slots_per_tdd
=
(
nr_slots_per_frame
[
*
scc
->
ssbSubcarrierSpacing
])
/
nb_periods_per_frame
;
const
int
nr_ulmix_slots
=
tdd_pattern
->
nrofUplinkSlots
+
(
tdd_pattern
->
nrofUplinkSymbols
!=
0
);
...
...
@@ -386,7 +392,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
// This schedules MIB
schedule_nr_mib
(
module_idP
,
frame
,
slot
,
nr_slots_per_frame
[
*
scc
->
ssbSubcarrierSpacing
]);
schedule_nr_mib
(
module_idP
,
frame
,
slot
,
nr_slots_per_frame
[
*
scc
->
ssbSubcarrierSpacing
]
,
nb_periods_per_frame
);
// This schedule PRACH if we are not in phy_test mode
if
(
get_softmodem_params
()
->
phy_test
==
0
)
{
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
7fc64913
...
...
@@ -56,7 +56,11 @@
extern
RAN_CONTEXT_t
RC
;
extern
uint8_t
SSB_Table
[
38
];
void
schedule_nr_mib
(
module_id_t
module_idP
,
frame_t
frameP
,
sub_frame_t
slotP
,
uint8_t
slots_per_frame
){
void
schedule_nr_mib
(
module_id_t
module_idP
,
frame_t
frameP
,
sub_frame_t
slotP
,
uint8_t
slots_per_frame
,
int
nb_periods_per_frame
){
gNB_MAC_INST
*
gNB
=
RC
.
nrmac
[
module_idP
];
NR_COMMON_channels_t
*
cc
;
...
...
@@ -68,6 +72,9 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
int
mib_sdu_length
;
int
CC_id
;
uint8_t
beam_index
=
0
;
// re-initializing the cumulative number of ssb transmitted
if
(
slotP
==
0
)
gNB
->
cumul_ssb
=
0
;
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
cc
=
&
gNB
->
common_channels
[
CC_id
];
...
...
@@ -164,6 +171,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
// checking if there is any SSB in slot
const
int
abs_slot
=
(
slots_per_frame
*
frameP
)
+
slotP
;
const
int
slot_per_period
=
(
slots_per_frame
>>
1
)
<<
(
*
cc
->
ServingCellConfigCommon
->
ssb_periodicityServingCell
);
const
int
num_tdd_period
=
slotP
/
(
slots_per_frame
/
nb_periods_per_frame
);
int
eff_120_slot
;
const
BIT_STRING_t
*
shortBitmap
=
&
cc
->
ServingCellConfigCommon
->
ssb_PositionsInBurst
->
choice
.
shortBitmap
;
const
BIT_STRING_t
*
mediumBitmap
=
&
cc
->
ServingCellConfigCommon
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
;
...
...
@@ -211,8 +219,12 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
else
buf
=
longBitmap
->
buf
[
7
];
}
if
((
eff_120_slot
>=
0
)
&&
(((
buf
>>
(
6
-
(
eff_120_slot
<<
1
)))
&
3
)
!=
0
))
if
((
eff_120_slot
>=
0
)
&&
(((
buf
>>
(
6
-
(
eff_120_slot
<<
1
)))
&
3
)
!=
0
))
{
AssertFatal
(((
buf
>>
(
6
-
(
eff_120_slot
<<
1
)))
&
3
)
<
3
,
"We only support 1 ssb per slot max in FR2 for the moment
\n
"
);
gNB
->
tdd_beam_association
[
num_tdd_period
]
=
gNB
->
cumul_ssb
;
gNB
->
cumul_ssb
++
;
fill_ssb_vrb_map
(
cc
,
ssb_offset0
/
(
ratio
*
12
)
-
10
,
CC_id
);
}
break
;
default:
AssertFatal
(
0
,
"SSB bitmap size value %d undefined (allowed values 1,2,3)
\n
"
,
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
7fc64913
...
...
@@ -86,7 +86,11 @@ void nr_simple_dlsch_preprocessor(module_id_t module_id,
sub_frame_t
slot
,
int
num_slots_per_tdd
);
void
schedule_nr_mib
(
module_id_t
module_idP
,
frame_t
frameP
,
sub_frame_t
subframeP
,
uint8_t
slots_per_frame
);
void
schedule_nr_mib
(
module_id_t
module_idP
,
frame_t
frameP
,
sub_frame_t
subframeP
,
uint8_t
slots_per_frame
,
int
nb_periods_per_frame
);
/// uplink scheduler
void
nr_schedule_ulsch
(
module_id_t
module_id
,
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
7fc64913
...
...
@@ -548,7 +548,9 @@ typedef struct gNB_MAC_INST_s {
/// CCE lists
int
cce_list
[
MAX_NUM_BWP
][
MAX_NUM_CORESET
][
MAX_NUM_CCE
];
/// list of allocated beams per period
uint8_t
*
tdd_beam_association
;
int16_t
*
tdd_beam_association
;
/// cumulative number of ssb transmitted
uint8_t
cumul_ssb
;
/// DL preprocessor for differentiated scheduling
nr_pp_impl_dl
pre_processor_dl
;
/// UL preprocessor for differentiated scheduling
...
...
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