-
Notifications
You must be signed in to change notification settings - Fork 866
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] Extended logs for negative or zero RTT estimate on the receiver side #1876
[core] Extended logs for negative or zero RTT estimate on the receiver side #1876
Conversation
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.
TODO
- Provide a way to identify clock type (@maxsharabayko - a separate PR to be created)
48f9685
to
d9f8415
Compare
5b9e62e
to
7e99954
Compare
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.
This PR adds reading m_iAckSeqNo
in CUDT::processCtrl(..)
function.
Another place this variable is accessed is in the CUDT::sendCtrl(..)
function.
Both m_iAckSeqNo
and m_ACKWindow
are not protected from simultaneous access from different threads.
However, both are accessed from the CRcvQueue
worker thread. ACK is sent from this thread from checkTimers(..)
function.
Therefore, adding m_iAckSeqNo
should be ok.
(1) - This PR provides extended logs for negative or zero RTT estimate on the receiver side, former "IPE: ACK node overwritten message". See issue #253 for details.
The logs are now splitted into two cases:
This check happens upon ACKACK reception by the receiver.
The logs format is the following:
(2) - Additionally, the current time of ACKACK packet reception
currtime
is now passed to theacknowledge
function (window.cpp
) as an argument to make the RTT estimate calculation more precise.The change has been tested in the following way.
TODO
oldest ACK record: not yet available
.the time of sending ACK: not yet available
. The redesign ofacknowledge
function (window.cpp
) is required to be able to extract this value from the buffer with ACK records.currtime
argument inacknowledge
function to something likeACKACKReceptionTime
?seq
andack
used instore
andacknowledge
functions are difficult to read. I would suggest proper renaming:seq
->ACKSeqNo
(as perSeq
structure, meaning ACK packet Seq. No.),ack
->AckPktSeqNo
(meaning acknowledged packet Seq. No.). In theSeq
structure the renaming is also required:iACK
->iAckPktSeqNo
.int32_t CPacket::getAckSeqNo() const
(packet.cpp
) probably needs renaming toint32_t CPacket::getAckPktSeqNo() const
.