From patchwork Wed Feb 19 08:13:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Xing X-Patchwork-Id: 13981669 X-Patchwork-Delegate: bpf@iogearbox.net Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B5C981C5D58; Wed, 19 Feb 2025 08:13:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739952833; cv=none; b=vDub+7AGl9t1xog9jbaOuPD8DSW4ZIwCOF4zg7hXL/DpieLn0xc9NAH0p1NQBDGzZYqokEPI09Zc/LBqWjX1CxAKJel9dgbZeNv/Lx0YRnw5qyBlUOa7kNU8ZFEr0PFEajR3hABfR6U+zGQumrBFXLuY7/omFtVfxIEXnsUVdr8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739952833; c=relaxed/simple; bh=fWlLmS3POy16CVU84u60Xhbczhhj7lwkqtmeP/FRElw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iIIsk+ZOvIbiV8d/MWAYJY/BHwzzZXfwo9cBmDgn9f9EFgTjuQKHbK2D2qqnOT8pDKG/OAFsAJctK5fXKMX6SttlZmiR+TSTXhVHNxEO9b1f2P6hYQK1hBARo5xYaiEh3gTDpV3wqLJDGz6okdZDEqrYs8P400XQMnE16tTC5Ws= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=c62oO+Q/; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="c62oO+Q/" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-221057b6ac4so67112195ad.2; Wed, 19 Feb 2025 00:13:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739952828; x=1740557628; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=z32zf1WbHd7c9g9e0xi0CDK3G/5o7TlQGTq3+JD+b9A=; b=c62oO+Q/otr6VOeQU3OVwA8/h+jTK2v+zzxUkDqb9SbaOcOWIDIMG0fxsaU2s+EJbq B027jPeKDxq+FUIdJrxTjI5+SAgCRQC3fqhJdKZmzBUtIqh1wBDDncnZO4AiPHhQsXlV PC5FB3LyDhHsH0El+edzSNkalCjmDScBKyHukF7E6indgZbxD9SWLUYaPGzaA3htzpIS DsEVqSHTMNVMLbhNNo6R4d50ejx+4aqQ+jzQnGTZjzRbZLC4foJAEYS57+RhrJWwl3DJ WbsVsef2kthrNCKaBApqYuobpOqdiLYIMVGjaFjbeuBv/3VG0ZoVY/1+tP8pHs5yIODP v66w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739952828; x=1740557628; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=z32zf1WbHd7c9g9e0xi0CDK3G/5o7TlQGTq3+JD+b9A=; b=iL7qoGHH84HBxNteAQDabTHHHEcfvOU4GdBgfU3bZbs3B4Da3gKsjyiwCuAeFUAw4o qoKQtVqKOAwuNrm/cyqkz9uGh7DIl6XPBvG7QOKcJSeg8mPdPf0zqSMtrnnM9v0F+tYz P9G/5zeNYeYJbSane9r4rXlYFP/txVe7AMjMpoYDSxE9EIdHoqEjEUl9pz07gdi7dJvi /Utt9ECc7cPIQ1DvxHjeKdXOMM9G2QyVT2+8I+Ame5qJnVuDCRq9q93Ka3esdIITKGoW Hd9LQPJTt6InqMOOmCNRLTGzSi3SGa/tn6VrbbqcErYzLy9D+wOhNChluKwH/MgTyvk9 Ui0w== X-Forwarded-Encrypted: i=1; AJvYcCXrvpeEFwPsHJTAWWgm/PPFT5onoI6dQulok3M5wfbLl1lWyJrQnCyg3RF9wvWmReZByGAS53M=@vger.kernel.org X-Gm-Message-State: AOJu0YwE4mqzGiqQataam2LY0WPkKBAarxYHPxKZWhucfkOcybKUwSyD ye17NKs5R1L7iXRIP3jaPSsI1gCOt3dSj0WN6GT1Vwa4tquqCDI2 X-Gm-Gg: ASbGnctOr965wYG7zEXwfIu+skq/zGY1+8KLOOa4/xje/xzxRvKPDIt+KQ412HkJiJq c+eq5YV30R2euXzsSr5GYvT4tPtjtJ42fCGHiaYLmLryDrn/ceOhWSQ2DKRXH4c37p0bgLH8yOz /+JVb5L9kXCSGfjeaQSwb9np7KC07QNemSQF9P8673FaV4TPYTIsfji+11a1WTcRle65jpJmFyQ 6N9mdhBRR2IvsWygFZ7YX+3+YMsrnHVKRRy3SvZu9vZLoK8wUtIuT1rDFDRvil65Ud0xFGGCrQX hRhYqhPsbggGmOroBQWECKGIPZVsPr7adeuNEwaY55N9nA4dduLGKu9VJ+nvHSE= X-Google-Smtp-Source: AGHT+IEY2GP2HtDxIDPMJSxFU8gnxqyUzvjLGAxVpq54gu5qQqTU7Y2HKb3u8CqyT02n+W7Xx65V8Q== X-Received: by 2002:a05:6a00:1796:b0:725:df1a:288 with SMTP id d2e1a72fcca58-73261922bbbmr29714610b3a.24.1739952827970; Wed, 19 Feb 2025 00:13:47 -0800 (PST) Received: from KERNELXING-MB0.tencent.com ([43.132.141.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-732642d908esm7774746b3a.159.2025.02.19.00.13.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Feb 2025 00:13:47 -0800 (PST) From: Jason Xing To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, dsahern@kernel.org, kuniyu@amazon.com, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@linux.dev, eddyz87@gmail.com, song@kernel.org, yonghong.song@linux.dev, john.fastabend@gmail.com, kpsingh@kernel.org, sdf@fomichev.me, haoluo@google.com, jolsa@kernel.org, shuah@kernel.org, ykolal@fb.com Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, Jason Xing Subject: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt Date: Wed, 19 Feb 2025 16:13:31 +0800 Message-Id: <20250219081333.56378-2-kerneljasonxing@gmail.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20250219081333.56378-1-kerneljasonxing@gmail.com> References: <20250219081333.56378-1-kerneljasonxing@gmail.com> Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: bpf@iogearbox.net Some applications don't want to wait for too long because the time of retransmission increases exponentially and can reach more than 10 seconds, for example. Eric implements the core logic on supporting rto max feature in the stack previously. Based on that, we can support it for BPF use. This patch reuses the same logic of TCP_RTO_MAX_MS in do_tcp_setsockopt() and do_tcp_getsockopt(). BPF program can call bpf_{set/get}sockopt() to set/get the maximum value of RTO. Reviewed-by: Kuniyuki Iwashima Signed-off-by: Jason Xing --- net/core/filter.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/core/filter.c b/net/core/filter.c index 2ec162dd83c4..ffec7b4357f9 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -5382,6 +5382,7 @@ static int sol_tcp_sockopt(struct sock *sk, int optname, case TCP_USER_TIMEOUT: case TCP_NOTSENT_LOWAT: case TCP_SAVE_SYN: + case TCP_RTO_MAX_MS: if (*optlen != sizeof(int)) return -EINVAL; break; From patchwork Wed Feb 19 08:13:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Xing X-Patchwork-Id: 13981670 X-Patchwork-Delegate: bpf@iogearbox.net Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 876A41C5F18; Wed, 19 Feb 2025 08:13:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739952836; cv=none; b=j1ep47QwzwWlOp04CIJBBzd2n29I9CfABp4VhbMAhCUWhNNu2fACJWhCQ3IHDUvLzIivoK0lxIvUCYDtAayWnAvGiU5BzfyZp8FgeN73/CZOQpwBhGF9Orb0tMJxFRUI/jf3C+XRGNhDGBbv3GjIZ2Qhf+G4OcY1QIvwTWrqsSA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739952836; c=relaxed/simple; bh=Au+KCBJqekdGpRwI3IkgNe0bPEkGjiifi20opoicVf0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gFzRjnuOurcXtRYovfVW1A/BrHEIMCBcztBJV9zf6stLEH7huPVj2SiGS47woiurUVGhwfHFrSaxIT6hF0OyHZOTFYL9d9MRq114wp/ZWjAcBRytoMK9k6svzox/dSyKhT4t8irGJ7W1e80zVwvmenKUAiDnc5FONzeZZCe4TtU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ieu8OCIT; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ieu8OCIT" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-221057b6ac4so67113195ad.2; Wed, 19 Feb 2025 00:13:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739952834; x=1740557634; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=b7pqIhHMN1qsGlznDso4mbJdvUWGlbkeEORjaiUIYic=; b=Ieu8OCITdvVwAMkufkuPagpdr+7MQlOitRjdT5oCajh3g2ReMSGWAkBsJOaGxZs0kn 1fPHrM3f1YdeaHeaRobuuBYGFjsfBSQv7CPEuktr8Pv5Dqe6bFJawU9/V2d8dcrEzq1x dhIv7MNvP+JlINARExnoh/Oh38J/HDMe2Z0o1/CSdApNMRJOu4PCkdJ5vc+4VMkt7uY3 AFXaXkYd+HsL7cJq4O7QkZJdS62VWZJQ9+zvtun0D/sfQ4RzjFJEFYw22TnbhBOlUC7V fKCWkA/JNVqWFvyQGWi57gFrFGtfKrglFmXbtw7ismvg80Tff416YwTTBdGuq45NpgNc 8r0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739952834; x=1740557634; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=b7pqIhHMN1qsGlznDso4mbJdvUWGlbkeEORjaiUIYic=; b=Jx56UKGi9qX+kTw7AzdRAUfJbXUwG/VUITIpJnbDrc5LdisweRTcO3juhk+BYG6F/p WFpRYwPGhBoz/5C4TftjgrRkTXt0MPdQdLYRdB0Ze2qh/nwW+0o543fp6xI43Qq7KSRc KDALzt1s9lVl6aqFsnhHNg8sJN3Qo+xsQHfdZmYbNZhRTLk3+N9wUeOem6jFg83lpNI+ Voy2lh0NqdEnCl9BzBMAWWkcUW+WBUMgH29JArtXAaDN/89PtmFqlrvVC2GSaWScpyYV 2UyP9EdAQ5rRdVv7cOhOpW2vNcm7KnZdEOHTlHRBLPken9xOUP1/D+xJL+yKEZca703K 0xlQ== X-Forwarded-Encrypted: i=1; AJvYcCUbtv5YCRs8DLZhYSukbp6NODATNP1ByW97ZwCICSw31JSZ1Jn99tZDOCQAMltRjf3BhhEW7T4=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6zAoOX/Y97+lDeGiZGqzyeqZj1l6Xhip3Eb03XC9iTxejtgNO gmSw1QPqlhvhTnu7HktRNfwMUvOKi0caCnbm+G9BNjyOua3xzGTo X-Gm-Gg: ASbGnctJAZ9iPTJ8XWMNjvRnsG4yhVwBQ7Mf4ugFklyBeRt1ASemgPNxAwg9oT3hp+9 SE5CfWDkWRcoWjL092fLuv3puUoz1O7LuYFXCSnXHRDKx86bTXlBz83gCtG+WFoZXK0D0yudYOY IsbfIzOBtKhReiZVGeo0guJc6wx5X6mMmGSBvRikr2ywezFCiIy042C9JuhSKeANEN6KfVGx5kJ SBQpmq9hztw5WMTW9MhXX0sqNtLXDIrpqHlW7HgNAoKVnL84h1KealnadYes+C09nM/Au5eVx3Z 2qIuuncEZAg2Ld/KPhq1EiEOeAh5OzdGZlhtQQZoZ1p2laoHCLHwyeDql2k09AU= X-Google-Smtp-Source: AGHT+IGizn76tgUJO+HJHVbkirIeh7sUjN1D+NKX8sToDxBEDiYrNbdh1bsPAxgG1oyPJ65Bp9IABQ== X-Received: by 2002:a05:6a00:1882:b0:730:957d:a80f with SMTP id d2e1a72fcca58-7326177625dmr28950736b3a.2.1739952833743; Wed, 19 Feb 2025 00:13:53 -0800 (PST) Received: from KERNELXING-MB0.tencent.com ([43.132.141.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-732642d908esm7774746b3a.159.2025.02.19.00.13.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Feb 2025 00:13:53 -0800 (PST) From: Jason Xing To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, dsahern@kernel.org, kuniyu@amazon.com, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@linux.dev, eddyz87@gmail.com, song@kernel.org, yonghong.song@linux.dev, john.fastabend@gmail.com, kpsingh@kernel.org, sdf@fomichev.me, haoluo@google.com, jolsa@kernel.org, shuah@kernel.org, ykolal@fb.com Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, Jason Xing Subject: [PATCH bpf-next v3 2/2] selftests/bpf: add rto max for bpf_setsockopt test Date: Wed, 19 Feb 2025 16:13:32 +0800 Message-Id: <20250219081333.56378-3-kerneljasonxing@gmail.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20250219081333.56378-1-kerneljasonxing@gmail.com> References: <20250219081333.56378-1-kerneljasonxing@gmail.com> Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: bpf@iogearbox.net Test the TCP_RTO_MAX_MS optname in the existing setget_sockopt test. Signed-off-by: Jason Xing --- tools/testing/selftests/bpf/progs/bpf_tracing_net.h | 1 + tools/testing/selftests/bpf/progs/setget_sockopt.c | 1 + 2 files changed, 2 insertions(+) diff --git a/tools/testing/selftests/bpf/progs/bpf_tracing_net.h b/tools/testing/selftests/bpf/progs/bpf_tracing_net.h index 59843b430f76..eb6ed1b7b2ef 100644 --- a/tools/testing/selftests/bpf/progs/bpf_tracing_net.h +++ b/tools/testing/selftests/bpf/progs/bpf_tracing_net.h @@ -49,6 +49,7 @@ #define TCP_SAVED_SYN 28 #define TCP_CA_NAME_MAX 16 #define TCP_NAGLE_OFF 1 +#define TCP_RTO_MAX_MS 44 #define TCP_ECN_OK 1 #define TCP_ECN_QUEUE_CWR 2 diff --git a/tools/testing/selftests/bpf/progs/setget_sockopt.c b/tools/testing/selftests/bpf/progs/setget_sockopt.c index 6dd4318debbf..106fe430f41b 100644 --- a/tools/testing/selftests/bpf/progs/setget_sockopt.c +++ b/tools/testing/selftests/bpf/progs/setget_sockopt.c @@ -61,6 +61,7 @@ static const struct sockopt_test sol_tcp_tests[] = { { .opt = TCP_NOTSENT_LOWAT, .new = 1314, .expected = 1314, }, { .opt = TCP_BPF_SOCK_OPS_CB_FLAGS, .new = BPF_SOCK_OPS_ALL_CB_FLAGS, .expected = BPF_SOCK_OPS_ALL_CB_FLAGS, }, + { .opt = TCP_RTO_MAX_MS, .new = 2000, .expected = 2000, }, { .opt = 0, }, };