Browse Source

core: Update condition for identifying TCP ACKs

The current condition only looks for packets which have only the ACK flag set.
This can cause SYN ACKs to get stuck behind other queued data.
This potentially manifests as delayed TCP connection setup.

Update the condition to allow all control packets through.

CRs-Fixed: 3001492
Change-Id: I0baab53bf4226eb891919040ee1c37c7b17d2910
Signed-off-by: Subash Abhinov Kasiviswanathan <[email protected]>
Subash Abhinov Kasiviswanathan 3 years ago
parent
commit
bc43c8213e
1 changed files with 2 additions and 2 deletions
  1. 2 2
      core/qmi_rmnet.c

+ 2 - 2
core/qmi_rmnet.c

@@ -1033,8 +1033,8 @@ static bool _qmi_rmnet_is_tcp_ack(struct sk_buff *skb)
 	}
 
 	th = (struct tcphdr *)(skb->data + ip_hdr_len);
-	if ((ip_payload_len == th->doff << 2) &&
-	    ((tcp_flag_word(th) & cpu_to_be32(0x00FF0000)) == TCP_FLAG_ACK))
+	/* no longer looking for ACK flag */
+	if (ip_payload_len == th->doff << 2)
 		return true;
 
 	return false;