Print this page
8725 Update TCP's RTO even if incoming segment's TSecr is 0
Reviewed by: Dan McDonald <danmcd@joyent.com>
Reviewed by: ken mays <maybird1776@yahoo.com>
Reviewed by: Toomas Soome <tsoome@me.com>

*** 4303,4318 **** if ((tcp->tcp_valid_bits & TCP_URG_VALID) && SEQ_GT(seg_ack, tcp->tcp_urg)) tcp->tcp_valid_bits &= ~TCP_URG_VALID; /* Can we update the RTT estimates? */ ! if (tcp->tcp_snd_ts_ok) { ! /* Ignore zero timestamp echo-reply. */ ! if (tcpopt.tcp_opt_ts_ecr != 0) { tcp_set_rto(tcp, (int32_t)LBOLT_FASTPATH - (int32_t)tcpopt.tcp_opt_ts_ecr); - } /* If needed, restart the timer. */ if (tcp->tcp_set_timer == 1) { TCP_TIMER_RESTART(tcp, tcp->tcp_rto); tcp->tcp_set_timer = 0; --- 4303,4315 ---- if ((tcp->tcp_valid_bits & TCP_URG_VALID) && SEQ_GT(seg_ack, tcp->tcp_urg)) tcp->tcp_valid_bits &= ~TCP_URG_VALID; /* Can we update the RTT estimates? */ ! if (tcp->tcp_snd_ts_ok && tcpopt.tcp_opt_ts_ecr != 0) { tcp_set_rto(tcp, (int32_t)LBOLT_FASTPATH - (int32_t)tcpopt.tcp_opt_ts_ecr); /* If needed, restart the timer. */ if (tcp->tcp_set_timer == 1) { TCP_TIMER_RESTART(tcp, tcp->tcp_rto); tcp->tcp_set_timer = 0;