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
lizhongxiao
OpenXG-RAN
Commits
c5073d52
Commit
c5073d52
authored
May 31, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Scheduler: sort second bearer before first one
parent
0f1c3172
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
5 deletions
+17
-5
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+16
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+1
-1
No files found.
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
c5073d52
...
@@ -370,10 +370,12 @@ static void process_rlcBearerConfig(struct NR_CellGroupConfig__rlc_BearerToAddMo
...
@@ -370,10 +370,12 @@ static void process_rlcBearerConfig(struct NR_CellGroupConfig__rlc_BearerToAddMo
if
(
rlc_bearer2release_list
)
{
if
(
rlc_bearer2release_list
)
{
for
(
int
i
=
0
;
i
<
rlc_bearer2release_list
->
list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
rlc_bearer2release_list
->
list
.
count
;
i
++
)
{
for
(
int
idx
=
0
;
idx
<
sched_ctrl
->
dl_lc_num
;
idx
++
)
{
for
(
int
idx
=
0
;
idx
<
sched_ctrl
->
dl_lc_num
;
idx
++
)
{
if
(
sched_ctrl
->
dl_lc_ids
[
idx
]
==
*
rlc_bearer2release_list
->
list
.
array
[
i
])
{
const
int
lcid
=
*
rlc_bearer2release_list
->
list
.
array
[
i
];
if
(
sched_ctrl
->
dl_lc_ids
[
idx
]
==
lcid
)
{
const
int
remaining_lcs
=
sched_ctrl
->
dl_lc_num
-
idx
-
1
;
const
int
remaining_lcs
=
sched_ctrl
->
dl_lc_num
-
idx
-
1
;
memmove
(
&
sched_ctrl
->
dl_lc_ids
[
idx
],
&
sched_ctrl
->
dl_lc_ids
[
idx
+
1
],
sizeof
(
sched_ctrl
->
dl_lc_ids
[
idx
])
*
remaining_lcs
);
memmove
(
&
sched_ctrl
->
dl_lc_ids
[
idx
],
&
sched_ctrl
->
dl_lc_ids
[
idx
+
1
],
sizeof
(
sched_ctrl
->
dl_lc_ids
[
idx
])
*
remaining_lcs
);
sched_ctrl
->
dl_lc_num
--
;
sched_ctrl
->
dl_lc_num
--
;
LOG_I
(
NR_MAC
,
"remove LCID %d (%s %d)
\n
"
,
lcid
,
lcid
<
4
?
"SRB"
:
"DRB"
,
lcid
);
break
;
break
;
}
}
}
}
...
@@ -383,7 +385,7 @@ static void process_rlcBearerConfig(struct NR_CellGroupConfig__rlc_BearerToAddMo
...
@@ -383,7 +385,7 @@ static void process_rlcBearerConfig(struct NR_CellGroupConfig__rlc_BearerToAddMo
if
(
rlc_bearer2add_list
)
{
if
(
rlc_bearer2add_list
)
{
// keep lcids
// keep lcids
for
(
int
i
=
0
;
i
<
rlc_bearer2add_list
->
list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
rlc_bearer2add_list
->
list
.
count
;
i
++
)
{
const
in
t
lcid
=
rlc_bearer2add_list
->
list
.
array
[
i
]
->
logicalChannelIdentity
;
const
uint8_
t
lcid
=
rlc_bearer2add_list
->
list
.
array
[
i
]
->
logicalChannelIdentity
;
bool
found
=
false
;
bool
found
=
false
;
for
(
int
idx
=
0
;
idx
<
sched_ctrl
->
dl_lc_num
;
idx
++
)
{
for
(
int
idx
=
0
;
idx
<
sched_ctrl
->
dl_lc_num
;
idx
++
)
{
if
(
sched_ctrl
->
dl_lc_ids
[
idx
]
==
lcid
)
{
if
(
sched_ctrl
->
dl_lc_ids
[
idx
]
==
lcid
)
{
...
@@ -393,9 +395,19 @@ static void process_rlcBearerConfig(struct NR_CellGroupConfig__rlc_BearerToAddMo
...
@@ -393,9 +395,19 @@ static void process_rlcBearerConfig(struct NR_CellGroupConfig__rlc_BearerToAddMo
}
}
if
(
!
found
)
{
if
(
!
found
)
{
/* we assume that the first two are SRB bearers, and we add before
* other DRB */
uint8_t
i
=
0
;
/* go beyond all SRBs */
while
(
i
<
sched_ctrl
->
dl_lc_num
&&
sched_ctrl
->
dl_lc_ids
[
i
]
<
4
)
i
++
;
uint8_t
remaining_lcs
=
sched_ctrl
->
dl_lc_num
-
i
;
memmove
(
&
sched_ctrl
->
dl_lc_ids
[
i
+
1
],
&
sched_ctrl
->
dl_lc_ids
[
i
],
sizeof
(
sched_ctrl
->
dl_lc_ids
[
i
])
*
remaining_lcs
);
sched_ctrl
->
dl_lc_ids
[
i
]
=
lcid
;
sched_ctrl
->
dl_lc_num
++
;
sched_ctrl
->
dl_lc_num
++
;
sched_ctrl
->
dl_lc_ids
[
sched_ctrl
->
dl_lc_num
-
1
]
=
lcid
;
LOG_
D
(
NR_MAC
,
"Adding LCID %d (%s %d)
\n
"
,
lcid
,
lcid
<
4
?
"SRB"
:
"DRB"
,
lcid
);
LOG_
I
(
NR_MAC
,
"Adding LCID %d (%s %d)
\n
"
,
lcid
,
lcid
<
4
?
"SRB"
:
"DRB"
,
lcid
);
}
}
}
}
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
c5073d52
...
@@ -330,7 +330,7 @@ static void nr_store_dlsch_buffer(module_id_t module_id, frame_t frame, sub_fram
...
@@ -330,7 +330,7 @@ static void nr_store_dlsch_buffer(module_id_t module_id, frame_t frame, sub_fram
const
int
lcid
=
sched_ctrl
->
dl_lc_ids
[
i
];
const
int
lcid
=
sched_ctrl
->
dl_lc_ids
[
i
];
const
uint16_t
rnti
=
UE
->
rnti
;
const
uint16_t
rnti
=
UE
->
rnti
;
LOG_D
(
NR_MAC
,
"In %s: UE %x: LCID %d
\n
"
,
__FUNCTION__
,
rnti
,
lcid
);
LOG_D
(
NR_MAC
,
"In %s: UE %x: LCID %d
\n
"
,
__FUNCTION__
,
rnti
,
lcid
);
if
(
lcid
=
=
DL_SCH_LCID_DTCH
&&
sched_ctrl
->
rrc_processing_timer
>
0
)
{
if
(
lcid
>
=
DL_SCH_LCID_DTCH
&&
sched_ctrl
->
rrc_processing_timer
>
0
)
{
continue
;
continue
;
}
}
start_meas
(
&
RC
.
nrmac
[
module_id
]
->
rlc_status_ind
);
start_meas
(
&
RC
.
nrmac
[
module_id
]
->
rlc_status_ind
);
...
...
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