Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
openairinterface5G
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
[GITLAB] - UPGRADE TO v12 on Wednesday the 18th of December at 11.30AM
Open sidebar
dyyu
openairinterface5G
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
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
17 deletions
+16
-17
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
))
{
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
);
}
}
cursor
=
cursor
->
next
;
/* 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
;
}
}
/* 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