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
Michael Black
OpenXG-RAN
Commits
3c753aec
Commit
3c753aec
authored
May 23, 2022
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix in calling get_ul_tda
parent
3a0bccde
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
14 deletions
+23
-14
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+13
-6
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+10
-8
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
3c753aec
...
@@ -436,18 +436,25 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
...
@@ -436,18 +436,25 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
const
int
tda
=
get_ul_tda
(
nr_mac
,
scc
,
slot
);
if
(
tda
<
0
)
return
false
;
const
struct
NR_PUSCH_TimeDomainResourceAllocationList
*
tdaList
=
const
struct
NR_PUSCH_TimeDomainResourceAllocationList
*
tdaList
=
sched_ctrl
->
active_ubwp
->
bwp_Common
->
pusch_ConfigCommon
->
choice
.
setup
->
pusch_TimeDomainAllocationList
;
sched_ctrl
->
active_ubwp
->
bwp_Common
->
pusch_ConfigCommon
->
choice
.
setup
->
pusch_TimeDomainAllocationList
;
AssertFatal
(
tda
<
tdaList
->
list
.
count
,
const
int
temp_tda
=
get_ul_tda
(
nr_mac
,
scc
,
slot
);
if
(
temp_tda
<
0
)
return
false
;
AssertFatal
(
temp_tda
<
tdaList
->
list
.
count
,
"time domain assignment %d >= %d
\n
"
,
"time domain assignment %d >= %d
\n
"
,
tda
,
t
emp_t
da
,
tdaList
->
list
.
count
);
tdaList
->
list
.
count
);
int
K2
=
get_K2
(
scc
,
NULL
,
sched_ctrl
->
active_ubwp
,
tda
,
mu
);
int
K2
=
get_K2
(
scc
,
NULL
,
sched_ctrl
->
active_ubwp
,
t
emp_t
da
,
mu
);
const
int
sched_frame
=
frame
+
(
slot
+
K2
>=
nr_slots_per_frame
[
mu
]);
const
int
sched_frame
=
frame
+
(
slot
+
K2
>=
nr_slots_per_frame
[
mu
]);
const
int
sched_slot
=
(
slot
+
K2
)
%
nr_slots_per_frame
[
mu
];
const
int
sched_slot
=
(
slot
+
K2
)
%
nr_slots_per_frame
[
mu
];
const
int
tda
=
get_ul_tda
(
nr_mac
,
scc
,
sched_slot
);
if
(
tda
<
0
)
return
false
;
AssertFatal
(
tda
<
tdaList
->
list
.
count
,
"time domain assignment %d >= %d
\n
"
,
tda
,
tdaList
->
list
.
count
);
/* check if slot is UL, and that slot is 8 (assuming K2=6 because of UE
/* check if slot is UL, and that slot is 8 (assuming K2=6 because of UE
* limitations). Note that if K2 or the TDD configuration is changed, below
* limitations). Note that if K2 or the TDD configuration is changed, below
* conditions might exclude each other and never be true */
* conditions might exclude each other and never be true */
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
3c753aec
...
@@ -54,7 +54,7 @@ const int get_ul_tda(const gNB_MAC_INST *nrmac, const NR_ServingCellConfigCommon
...
@@ -54,7 +54,7 @@ const int get_ul_tda(const gNB_MAC_INST *nrmac, const NR_ServingCellConfigCommon
if
(
tdd
&&
tdd
->
nrofUplinkSymbols
>
1
)
{
// if there is uplink symbols in mixed slot
if
(
tdd
&&
tdd
->
nrofUplinkSymbols
>
1
)
{
// if there is uplink symbols in mixed slot
const
int
nr_slots_period
=
tdd
->
nrofDownlinkSlots
+
tdd
->
nrofUplinkSlots
+
1
;
const
int
nr_slots_period
=
tdd
->
nrofDownlinkSlots
+
tdd
->
nrofUplinkSlots
+
1
;
if
((
slot
%
nr_slots_period
)
==
tdd
->
nrof
Up
linkSlots
)
if
((
slot
%
nr_slots_period
)
==
tdd
->
nrof
Down
linkSlots
)
return
1
;
return
1
;
}
}
return
0
;
// if FDD or not mixed slot in TDD, for now use default TDA (TODO handle CSI-RS slots)
return
0
;
// if FDD or not mixed slot in TDD, for now use default TDA (TODO handle CSI-RS slots)
...
@@ -860,7 +860,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
...
@@ -860,7 +860,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
const
uint16_t
bwpSize
=
NRRIV2BW
(
genericParameters
->
locationAndBandwidth
,
MAX_BWP_SIZE
);
const
uint16_t
bwpSize
=
NRRIV2BW
(
genericParameters
->
locationAndBandwidth
,
MAX_BWP_SIZE
);
const
uint8_t
nrOfLayers
=
1
;
const
uint8_t
nrOfLayers
=
1
;
const
uint8_t
num_dmrs_cdm_grps_no_data
=
(
sched_ctrl
->
active_bwp
||
ubwpd
)
?
1
:
2
;
const
uint8_t
num_dmrs_cdm_grps_no_data
=
(
sched_ctrl
->
active_bwp
||
ubwpd
)
?
1
:
2
;
const
int
tda
=
get_ul_tda
(
nr_mac
,
scc
,
slot
);
const
int
tda
=
get_ul_tda
(
nr_mac
,
scc
,
retInfo
->
slot
);
LOG_D
(
NR_MAC
,
"retInfo->time_domain_allocation = %d, tda = %d
\n
"
,
retInfo
->
time_domain_allocation
,
tda
);
LOG_D
(
NR_MAC
,
"retInfo->time_domain_allocation = %d, tda = %d
\n
"
,
retInfo
->
time_domain_allocation
,
tda
);
LOG_D
(
NR_MAC
,
"num_dmrs_cdm_grps_no_data %d, tbs %d
\n
"
,
num_dmrs_cdm_grps_no_data
,
retInfo
->
tb_size
);
LOG_D
(
NR_MAC
,
"num_dmrs_cdm_grps_no_data %d, tbs %d
\n
"
,
num_dmrs_cdm_grps_no_data
,
retInfo
->
tb_size
);
if
(
tda
==
retInfo
->
time_domain_allocation
)
{
if
(
tda
==
retInfo
->
time_domain_allocation
)
{
...
@@ -1129,7 +1129,7 @@ void pf_ul(module_id_t module_id,
...
@@ -1129,7 +1129,7 @@ void pf_ul(module_id_t module_id,
const
uint8_t
nrOfLayers
=
1
;
const
uint8_t
nrOfLayers
=
1
;
const
uint8_t
num_dmrs_cdm_grps_no_data
=
(
sched_ctrl
->
active_ubwp
||
ubwpd
)
?
1
:
2
;
const
uint8_t
num_dmrs_cdm_grps_no_data
=
(
sched_ctrl
->
active_ubwp
||
ubwpd
)
?
1
:
2
;
int
dci_format
=
get_dci_format
(
sched_ctrl
);
int
dci_format
=
get_dci_format
(
sched_ctrl
);
const
int
tda
=
get_ul_tda
(
nrmac
,
scc
,
slot
);
const
int
tda
=
get_ul_tda
(
nrmac
,
scc
,
s
ched_pusch
->
s
lot
);
if
(
ps
->
time_domain_allocation
!=
tda
if
(
ps
->
time_domain_allocation
!=
tda
||
ps
->
dci_format
!=
dci_format
||
ps
->
dci_format
!=
dci_format
||
ps
->
nrOfLayers
!=
nrOfLayers
||
ps
->
nrOfLayers
!=
nrOfLayers
...
@@ -1269,7 +1269,7 @@ void pf_ul(module_id_t module_id,
...
@@ -1269,7 +1269,7 @@ void pf_ul(module_id_t module_id,
const
uint8_t
nrOfLayers
=
1
;
const
uint8_t
nrOfLayers
=
1
;
const
uint8_t
num_dmrs_cdm_grps_no_data
=
(
sched_ctrl
->
active_ubwp
||
ubwpd
)
?
1
:
2
;
const
uint8_t
num_dmrs_cdm_grps_no_data
=
(
sched_ctrl
->
active_ubwp
||
ubwpd
)
?
1
:
2
;
int
dci_format
=
get_dci_format
(
sched_ctrl
);
int
dci_format
=
get_dci_format
(
sched_ctrl
);
const
int
tda
=
get_ul_tda
(
nrmac
,
scc
,
slot
);
const
int
tda
=
get_ul_tda
(
nrmac
,
scc
,
s
ched_pusch
->
s
lot
);
if
(
ps
->
time_domain_allocation
!=
tda
if
(
ps
->
time_domain_allocation
!=
tda
||
ps
->
dci_format
!=
dci_format
||
ps
->
dci_format
!=
dci_format
||
ps
->
nrOfLayers
!=
nrOfLayers
||
ps
->
nrOfLayers
!=
nrOfLayers
...
@@ -1362,12 +1362,14 @@ bool nr_fr1_ulsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
...
@@ -1362,12 +1362,14 @@ bool nr_fr1_ulsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
* schedule now (slot + k2 is not UL slot) */
* schedule now (slot + k2 is not UL slot) */
int
UE_id
=
UE_info
->
list
.
head
;
int
UE_id
=
UE_info
->
list
.
head
;
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
const
int
tda
=
get_ul_tda
(
nr_mac
,
scc
,
slot
);
const
int
temp_tda
=
get_ul_tda
(
nr_mac
,
scc
,
slot
);
if
(
tda
<
0
)
int
K2
=
get_K2
(
scc
,
scc_sib1
,
sched_ctrl
->
active_ubwp
,
temp_tda
,
mu
);
return
false
;
int
K2
=
get_K2
(
scc
,
scc_sib1
,
sched_ctrl
->
active_ubwp
,
tda
,
mu
);
const
int
sched_frame
=
(
frame
+
(
slot
+
K2
>=
nr_slots_per_frame
[
mu
]))
&
1023
;
const
int
sched_frame
=
(
frame
+
(
slot
+
K2
>=
nr_slots_per_frame
[
mu
]))
&
1023
;
const
int
sched_slot
=
(
slot
+
K2
)
%
nr_slots_per_frame
[
mu
];
const
int
sched_slot
=
(
slot
+
K2
)
%
nr_slots_per_frame
[
mu
];
const
int
tda
=
get_ul_tda
(
nr_mac
,
scc
,
sched_slot
);
if
(
tda
<
0
)
return
false
;
DevAssert
(
K2
==
get_K2
(
scc
,
scc_sib1
,
sched_ctrl
->
active_ubwp
,
tda
,
mu
));
if
(
!
is_xlsch_in_slot
(
nr_mac
->
ulsch_slot_bitmap
[
sched_slot
/
64
],
sched_slot
))
if
(
!
is_xlsch_in_slot
(
nr_mac
->
ulsch_slot_bitmap
[
sched_slot
/
64
],
sched_slot
))
return
false
;
return
false
;
...
...
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