|
@@ -5911,6 +5911,15 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb)
|
|
if (req) {
|
|
if (req) {
|
|
inet_csk(sk)->icsk_retransmits = 0;
|
|
inet_csk(sk)->icsk_retransmits = 0;
|
|
reqsk_fastopen_remove(sk, req, false);
|
|
reqsk_fastopen_remove(sk, req, false);
|
|
|
|
+ /* Re-arm the timer because data may have been sent out.
|
|
|
|
+ * This is similar to the regular data transmission case
|
|
|
|
+ * when new data has just been ack'ed.
|
|
|
|
+ *
|
|
|
|
+ * (TFO) - we could try to be more aggressive and
|
|
|
|
+ * retransmitting any data sooner based on when they
|
|
|
|
+ * are sent out.
|
|
|
|
+ */
|
|
|
|
+ tcp_rearm_rto(sk);
|
|
} else {
|
|
} else {
|
|
tcp_init_transfer(sk, BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB);
|
|
tcp_init_transfer(sk, BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB);
|
|
tp->copied_seq = tp->rcv_nxt;
|
|
tp->copied_seq = tp->rcv_nxt;
|
|
@@ -5933,18 +5942,6 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb)
|
|
if (tp->rx_opt.tstamp_ok)
|
|
if (tp->rx_opt.tstamp_ok)
|
|
tp->advmss -= TCPOLEN_TSTAMP_ALIGNED;
|
|
tp->advmss -= TCPOLEN_TSTAMP_ALIGNED;
|
|
|
|
|
|
- if (req) {
|
|
|
|
- /* Re-arm the timer because data may have been sent out.
|
|
|
|
- * This is similar to the regular data transmission case
|
|
|
|
- * when new data has just been ack'ed.
|
|
|
|
- *
|
|
|
|
- * (TFO) - we could try to be more aggressive and
|
|
|
|
- * retransmitting any data sooner based on when they
|
|
|
|
- * are sent out.
|
|
|
|
- */
|
|
|
|
- tcp_rearm_rto(sk);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if (!inet_csk(sk)->icsk_ca_ops->cong_control)
|
|
if (!inet_csk(sk)->icsk_ca_ops->cong_control)
|
|
tcp_update_pacing_rate(sk);
|
|
tcp_update_pacing_rate(sk);
|
|
|
|
|