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
canghaiwuhen
OpenXG-RAN
Commits
709b1fd2
Commit
709b1fd2
authored
Mar 04, 2017
by
fnabet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
RLC AM: fix TReordering expiry
parent
e1293616
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
17 deletions
+16
-17
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c
+16
-17
No files found.
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c
View file @
709b1fd2
...
...
@@ -83,23 +83,22 @@ rlc_am_check_timer_reordering(
AssertFatal
(
cursor
!=
NULL
,
"RLC AM TReordering Expiry Rx PDU list empty LcId=%d
\n
"
,
rlc_pP
->
channel_id
);
while
((
cursor
!=
NULL
)
&&
(
vr_ms_new
!=
rlc_pP
->
vr_h
))
{
/* go to memblock up to vrX*/
pdu_info
=
&
((
rlc_am_rx_pdu_management_t
*
)(
cursor
->
data
))
->
pdu_info
;
while
((
cursor
!=
NULL
)
&&
(
RLC_AM_DIFF_SN
(
pdu_info
->
sn
,
rlc_pP
->
vr_r
)
<
RLC_AM_DIFF_SN
(
vr_ms_new
,
rlc_pP
->
vr_r
)))
{
cursor
=
cursor
->
next
;
if
(
cursor
!=
NULL
)
{
pdu_info
=
&
((
rlc_am_rx_pdu_management_t
*
)(
cursor
->
data
))
->
pdu_info
;
// First find an element with SN greater or equal than vrX
if
(
RLC_AM_DIFF_SN
(
pdu_info
->
sn
,
rlc_pP
->
vr_r
)
>=
RLC_AM_DIFF_SN
(
rlc_pP
->
vr_x
,
rlc_pP
->
vr_r
))
{
if
(((
rlc_am_rx_pdu_management_t
*
)(
cursor
->
data
))
->
all_segments_received
==
0
)
{
// Stop at first found discontinuity
// vr_ms_new holds SN following the latest in sequence fully received PDU >= old vrX
break
;
}
else
{
vr_ms_new
=
RLC_AM_NEXT_SN
(
vr_ms_new
);
}
}
/* Now find a SN for which either no PDU is received or partially received */
while
((
cursor
!=
NULL
)
&&
(
pdu_info
->
sn
==
vr_ms_new
)
&&
(((
rlc_am_rx_pdu_management_t
*
)(
cursor
->
data
))
->
all_segments_received
>
0
))
{
cursor
=
cursor
->
next
;
vr_ms_new
=
RLC_AM_NEXT_SN
(
vr_ms_new
);
if
(
cursor
!=
NULL
)
{
pdu_info
=
&
((
rlc_am_rx_pdu_management_t
*
)(
cursor
->
data
))
->
pdu_info
;
}
}
/* Update vr_ms */
...
...
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