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
wangjie
OpenXG-RAN
Commits
78c5cd5a
Commit
78c5cd5a
authored
Dec 14, 2020
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
beam tdd association for ssb
parent
10a98de7
Changes
5
Show 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 @
78c5cd5a
...
@@ -320,7 +320,7 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
...
@@ -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
"
);
LOG_E
(
MAC
,
"TDD configuration can not be done
\n
"
);
else
{
else
{
LOG_I
(
MAC
,
"TDD has been properly configurated
\n
"
);
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 @
78c5cd5a
...
@@ -345,6 +345,12 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
...
@@ -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
);
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
;
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
);
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,
...
@@ -386,7 +392,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
// This schedules MIB
// 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
// This schedule PRACH if we are not in phy_test mode
if
(
get_softmodem_params
()
->
phy_test
==
0
)
{
if
(
get_softmodem_params
()
->
phy_test
==
0
)
{
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
78c5cd5a
...
@@ -56,7 +56,11 @@
...
@@ -56,7 +56,11 @@
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
extern
uint8_t
SSB_Table
[
38
];
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
];
gNB_MAC_INST
*
gNB
=
RC
.
nrmac
[
module_idP
];
NR_COMMON_channels_t
*
cc
;
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,
...
@@ -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
mib_sdu_length
;
int
CC_id
;
int
CC_id
;
uint8_t
beam_index
=
0
;
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
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
cc
=
&
gNB
->
common_channels
[
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,
...
@@ -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
// checking if there is any SSB in slot
const
int
abs_slot
=
(
slots_per_frame
*
frameP
)
+
slotP
;
const
int
abs_slot
=
(
slots_per_frame
*
frameP
)
+
slotP
;
const
int
slot_per_period
=
(
slots_per_frame
>>
1
)
<<
(
*
cc
->
ServingCellConfigCommon
->
ssb_periodicityServingCell
);
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
;
int
eff_120_slot
;
const
BIT_STRING_t
*
shortBitmap
=
&
cc
->
ServingCellConfigCommon
->
ssb_PositionsInBurst
->
choice
.
shortBitmap
;
const
BIT_STRING_t
*
shortBitmap
=
&
cc
->
ServingCellConfigCommon
->
ssb_PositionsInBurst
->
choice
.
shortBitmap
;
const
BIT_STRING_t
*
mediumBitmap
=
&
cc
->
ServingCellConfigCommon
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
;
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,
...
@@ -211,8 +219,12 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
else
else
buf
=
longBitmap
->
buf
[
7
];
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
);
fill_ssb_vrb_map
(
cc
,
ssb_offset0
/
(
ratio
*
12
)
-
10
,
CC_id
);
}
break
;
break
;
default:
default:
AssertFatal
(
0
,
"SSB bitmap size value %d undefined (allowed values 1,2,3)
\n
"
,
AssertFatal
(
0
,
"SSB bitmap size value %d undefined (allowed values 1,2,3)
\n
"
,
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
78c5cd5a
...
@@ -86,7 +86,11 @@ void nr_simple_dlsch_preprocessor(module_id_t module_id,
...
@@ -86,7 +86,11 @@ void nr_simple_dlsch_preprocessor(module_id_t module_id,
sub_frame_t
slot
,
sub_frame_t
slot
,
int
num_slots_per_tdd
);
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
/// uplink scheduler
void
nr_schedule_ulsch
(
module_id_t
module_id
,
void
nr_schedule_ulsch
(
module_id_t
module_id
,
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
78c5cd5a
...
@@ -548,7 +548,9 @@ typedef struct gNB_MAC_INST_s {
...
@@ -548,7 +548,9 @@ typedef struct gNB_MAC_INST_s {
/// CCE lists
/// CCE lists
int
cce_list
[
MAX_NUM_BWP
][
MAX_NUM_CORESET
][
MAX_NUM_CCE
];
int
cce_list
[
MAX_NUM_BWP
][
MAX_NUM_CORESET
][
MAX_NUM_CCE
];
/// list of allocated beams per period
/// 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
/// DL preprocessor for differentiated scheduling
nr_pp_impl_dl
pre_processor_dl
;
nr_pp_impl_dl
pre_processor_dl
;
/// UL preprocessor for differentiated scheduling
/// 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