This is an automated email from the ASF dual-hosted git repository.
masaori pushed a commit to branch quic-latest
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/quic-latest by this push:
new ac81d91 Walk through loss detectors to get correct RTO
ac81d91 is described below
commit ac81d910e6d6aaf2bf00db81de44abf0c6a15d43
Author: Masaori Koshiba <[email protected]>
AuthorDate: Tue Mar 5 16:07:42 2019 +0900
Walk through loss detectors to get correct RTO
---
iocore/net/QUICNetVConnection.cc | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/iocore/net/QUICNetVConnection.cc b/iocore/net/QUICNetVConnection.cc
index 241952f..c94f19d 100644
--- a/iocore/net/QUICNetVConnection.cc
+++ b/iocore/net/QUICNetVConnection.cc
@@ -1918,8 +1918,15 @@ QUICNetVConnection::_validate_new_path()
this->_path_validator->validate();
// Not sure how long we should wait. The spec says just "enough time".
// Use the same time amount as the closing timeout.
- int index =
QUICTypeUtil::pn_space_index(this->_hs_protocol->current_encryption_level());
- ink_hrtime rto = this->_loss_detector[index]->current_rto_period();
+ ink_hrtime rto = 0;
+ int current_level_index =
QUICTypeUtil::pn_space_index(this->_hs_protocol->current_encryption_level());
+
+ // Workaround fix for #5111 - walk through PN Spaces to get correct RTO
+ // This could be removed when _loss_detectors are combined.
+ for (int i = 0; i <= current_level_index; ++i) {
+ rto = std::max(rto, this->_loss_detector[i]->current_rto_period());
+ }
+
this->_schedule_path_validation_timeout(3 * rto);
}