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
e6033d24
Commit
e6033d24
authored
Jan 20, 2021
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nr_acknack_scheduling(): handle two SRs per frame
parent
9a03c5b0
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
0 deletions
+10
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+10
-0
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
e6033d24
...
@@ -412,6 +412,7 @@ bool nr_acknack_scheduling(int mod_id,
...
@@ -412,6 +412,7 @@ bool nr_acknack_scheduling(int mod_id,
/* for the moment, we consider:
/* for the moment, we consider:
* * only pucch_sched[0] holds HARQ (and SR)
* * only pucch_sched[0] holds HARQ (and SR)
* * pucch_sched[1] holds a second SR, if at all
* * we do not multiplex with CSI, which is always in pucch_sched[2]
* * we do not multiplex with CSI, which is always in pucch_sched[2]
* * SR uses format 0 and is allocated in the first UL (mixed) slot (and not
* * SR uses format 0 and is allocated in the first UL (mixed) slot (and not
* later)
* later)
...
@@ -523,6 +524,15 @@ bool nr_acknack_scheduling(int mod_id,
...
@@ -523,6 +524,15 @@ bool nr_acknack_scheduling(int mod_id,
pucch
->
ul_slot
=
first_ul_slot_tdd
;
pucch
->
ul_slot
=
first_ul_slot_tdd
;
}
}
/* check if the next occasion coincides with a pre-scheduled PUCCH occasion,
* i.e., scheduling request. If yes, rerun algorithm on this information */
NR_sched_pucch_t
*
pucch1
=
&
sched_ctrl
->
sched_pucch
[
1
];
if
(
pucch1
->
sr_flag
>
0
&&
pucch1
->
frame
==
pucch
->
frame
&&
pucch1
->
ul_slot
==
pucch
->
ul_slot
)
{
*
pucch
=
*
pucch1
;
memset
(
pucch1
,
0
,
sizeof
(
*
pucch1
));
return
nr_acknack_scheduling
(
mod_id
,
UE_id
,
frame
,
slot
);
}
// increase to first slot in which PUCCH resources are available
// increase to first slot in which PUCCH resources are available
while
(
pucch_index_used
[
pucch
->
ul_slot
]
>=
n_res
)
{
while
(
pucch_index_used
[
pucch
->
ul_slot
]
>=
n_res
)
{
pucch
->
ul_slot
++
;
pucch
->
ul_slot
++
;
...
...
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