-
Notifications
You must be signed in to change notification settings - Fork 862
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[core] Fix : Sequence number in the ACK packet isn’t correct (#2873) #2877
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #2877 +/- ##
==========================================
- Coverage 66.99% 66.59% -0.40%
==========================================
Files 103 103
Lines 20460 20464 +4
==========================================
- Hits 13707 13628 -79
- Misses 6753 6836 +83 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Yoda notation is not used in the project. To be consistent, the typical order should be used.
Co-authored-by: Maxim Sharabayko <[email protected]>
Co-authored-by: Maxim Sharabayko <[email protected]>
I think this PR will re-introduce this bug: #2192 (comment) |
We should find another way to fix your issue "the next packet loss seqno has a distance more than m_iSeqNoTH" |
In #2527 I have provided various improvements for the receiver buffer. In this solution there's also changed the way of taking the sequence number for ACK, which is no longer taken from the loss list, and it's taken exclusively from the receiver buffer (the ACK actually acknowledges the initial contiguous region in the receiver buffer, which is defined directly in this version). Would you be able to take a look at that? |
Just thinking out loud, what if the Besides, PR #2527 does not fix the RCV loss list, that does not add the loss seqno in itself. |
Yes, #2527 doesn't fix the loss list, it simply takes out one of its roles in deciding about ACK. Loss list in here is exclusively used for recording the loss for the need of NAKREPORT and in case of the file CC, also checking the loss level for speed control. |
@gou4shi1 The bug was that a data packet 899264404 with a gap is inserted into the receiver buffer (899264403 is missing). But before the loss is recorded in the RCV loss list, the TSBPD thread drops the missing packet seqno 899264403. The original issue description (#2192 (comment)):
|
Please continue the discussion in #2881. |
Reset the
m_iLargestSeq
back toSRT_SEQNO_NONE
once the loss list is empty. This way if the next packet loss seqno has a distance more thanm_iSeqNoTH
from them_iLargestSeq
, it is not ignored and added to the loss list.Fixes #2873.