From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=OH5obBQK; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by passt.top (Postfix) with ESMTPS id D52CB5A08B5 for ; Mon, 10 Nov 2025 10:31:51 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1762767110; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jPmHhPc4YlzhRVc3BcS5pzbTuus4hasF6E6vXl09OEY=; b=OH5obBQKXG3ycnn64cEsrsbGwMFUX5uyuJYQ6WKHckWDfmBMnAZXboF4rSp1tOc2m7fhbv PfzMgWzOoeZXUqev5+RMZjHjLy2a9TFVnYbXZhLZPuY+nbvCNKwjNCEKzx8vTDKsca98WN LKDwmTOilt/h4HerLTz+K4bUnAgJ10c= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-274-TxQMBRshOBuNVvecD7YQFA-1; Mon, 10 Nov 2025 04:31:46 -0500 X-MC-Unique: TxQMBRshOBuNVvecD7YQFA-1 X-Mimecast-MFC-AGG-ID: TxQMBRshOBuNVvecD7YQFA_1762767106 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 16135180049F; Mon, 10 Nov 2025 09:31:45 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.72.116.165]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 8068730001B9; Mon, 10 Nov 2025 09:31:41 +0000 (UTC) From: Yumei Huang To: passt-dev@passt.top, sbrivio@redhat.com Subject: [PATCH v8 0/6] Retry SYNs for inbound connections Date: Mon, 10 Nov 2025 17:31:31 +0800 Message-ID: <20251110093137.87705-1-yuhuang@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: QxIjTMz52Pg5sfC6wx-9fipj6ruEao-A0AOCO-C6W9A_1762767106 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true Message-ID-Hash: GEG4KPWOM5NNGPQVQCL4NBNTUJ23ZH5D X-Message-ID-Hash: GEG4KPWOM5NNGPQVQCL4NBNTUJ23ZH5D X-MailFrom: yuhuang@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: david@gibson.dropbear.id.au, yuhuang@redhat.com X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: When a client connects, SYN would be sent to guest only once. If the guest is not connected or ready at that time, the connection will be reset in 10s. These patches introduce the SYN retry mechanism using the similar backoff timeout as linux kernel. Also update the data retransmission timeout using the backoff timeout. v8: - Remove the TCP_/tcp_ suffix from certain macro and struct member names - Add parameter struct ctx *c to tcp_timer_ctl() - Modify rto_max type from size_t to int - Clamp syn_retries and syn_linear_timeouts with MAX_SYNCNT(127) - Some other minor fixes related to wording and formatting v7: - Update read_file() and read_file_integer() - Rename tcp_syn_params_init() to tcp_get_rto_params() - Modify the implementation of the timeout assignment - Add a patch to clamp the retry timeout Yumei Huang (6): tcp: Rename "retrans" to "retries" util: Introduce read_file() and read_file_integer() function tcp: Add parameter struct ctx *c to tcp_timer_ctl() tcp: Resend SYN for inbound connections tcp: Update data retransmission timeout tcp: Clamp the retry timeout tcp.c | 107 +++++++++++++++++++++++++++++++++++++++-------------- tcp.h | 6 +++ tcp_conn.h | 13 ++++--- util.c | 86 ++++++++++++++++++++++++++++++++++++++++++ util.h | 2 + 5 files changed, 181 insertions(+), 33 deletions(-) -- 2.51.0