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);
 }
 

Reply via email to