From patchwork Tue Mar 11 08:54: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: 14011287 X-Patchwork-Delegate: bpf@iogearbox.net Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) (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 2E8E41EBFEB; Tue, 11 Mar 2025 08:56:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683394; cv=none; b=uOM1RBQUGzMbw1mYLYh+547Ej/7kBEw5bSvuzfLZdyVCbBAJI/vw/WMbsKtygfvvR2ZxIqlSphMQFuuUrJz9rpLWKGZOZdTkCnYh0JNuMKZxM6+qwV055lAb6waLL0gcbYIe5COsrEUWmJdr2Y9KE3Tm8OAdEFsf/Htv3DjX3ls= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683394; c=relaxed/simple; bh=+Aad5XPyf1doXoWRlaNoTTUsGkq/7xdCXRgULYAvTog=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=f3lwMJtddaHxGvL8b+kwjw0wJQDAJg2kJCagoxkYB7EuGnlnIwFFEyfkaSiAEX+bq0qjTQ1CieVywKu9YbOhAQBma5Q3n+jNWq6sBCG9P4xJHzkpq1O+j0WjRqs44YHBZH8YPpPK8LAGZbUJyxodS2c7hwL3Nh95Hr+5Svrgnxg= 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=CGC9k/Rp; arc=none smtp.client-ip=209.85.208.44 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="CGC9k/Rp" Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-5e66407963fso4345965a12.2; Tue, 11 Mar 2025 01:56:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741683391; x=1742288191; 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=8T8Uqmta0Kh5TnKQbbsbMXCRaE8kpvtZWd24zT74u40=; b=CGC9k/RpufUmfBZgbjv/uDjk12CFPGE80eVp0JLmgAEqh4hXDafo1DZeCka0sIuOHi WfEbzg5YLaL6M44XA5CRByrjGjajlEZJAnR8xOA8xymN0//qqLzSxPBRzKtgS3wlEwE5 n3nbq+eIsUVlTpywmOQV9bXyw2N6qAG+xFYDqmHi4j2FgKkYOhW2HJ6zZjH59kigUVLE NrEy34b5rrmM9wsxNcE2IaJKQaXW7pdzfF0ghFjVrpK51NmvkWrbj7Er+S03b8tj2V2Y uQvrzTSmS4P43PjL6+f7ZogdLOVpDUkiIOqJz7XOCoYynQ/DaZ9y9s2rYjKk7OBch0TP 0Kgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741683391; x=1742288191; 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=8T8Uqmta0Kh5TnKQbbsbMXCRaE8kpvtZWd24zT74u40=; b=hMlD2BlhwtNn1ZeCAy9wklyeYzcNCIys35X4zWFMVVMPGX5KBHJ4TWeyOmBPdGe2l2 PabSALSsGCGDKOPbXZPQb+83hn3yr0jGo+8Q8SI9IWoCRt/cnZDJqvWhGFIxtTBDmIa7 4cAjzlNVuvYwHtC49lkx2+qUG/fEHmD9nJFFoVzNEvNoeimy0MwHyLBpnqcgEFZCkpwy o09DR/yol1K4uJ4SbpAdjY+PLVmEg2ryuu2nuwIino47DJhJ4zuHb3oVLm/4DCkaogom nDNHFc57w1Rh2XCQH1ckVnVYSpK54HZ1ZEKZYA6rgaBkV+tYhR/uAdgdMWgZmsBwNbl5 Hn5Q== X-Forwarded-Encrypted: i=1; AJvYcCUQ76LGOpfz4QpiXXQwN6vRUw0nw03oJld0Szirx1kGN1W+hKifhKyqzTCpzDg4xSCBdY/D1us=@vger.kernel.org X-Gm-Message-State: AOJu0YyaXIQv0GNRmcVJn0mTmQfQN6uKF6H5JEJQDec/PE6C8k9rxBes S6gZuE7ssZfFCDDsQh6Jc51mb8Bs88vKb0K/ztmLlJtHnhFVm70/ X-Gm-Gg: ASbGncu32NfRv15yhL/OHrwe4244nke1XZ3usfHuaSgbJZp2+OaEEjuek2xGXjsBh40 3y+EY34n8Zf35UvzsE/gQ2e70i2lcStzcrG5+HSOXwjJSMS74s6SvMHyr85dXHxAVkL1RUVC0Iv ULBSFWTAZo7/d0ytWCtwxMQz/KIddyCe7Fs0opQDEwZQj+Vh5FqzidBsnesDGpfBM52ir9FR+kp EFPm044GplzXd0Z2aOppzGsXOKJeRGh05DWHZamH304yztIEX74jrxMxb35wo0FKaiE1KFSR8dM z5u8TIvGUO34nTwssSX51tPgNwzLZZyuZxfYRWuVNwWvWnvHhtKkGFWJ7PcxBY9BkbUaOxN69lv 6KhA+Gw== X-Google-Smtp-Source: AGHT+IF6ACQ6AxNXkHMPkgGq8F9yjaVt8BsRr6twsndH8SEX88V3Hszmk+4U51DNSXra82p9mAYixQ== X-Received: by 2002:a05:6402:4581:b0:5e4:cf2e:891c with SMTP id 4fb4d7f45d1cf-5e5e22dc3a3mr20277798a12.12.1741683391168; Tue, 11 Mar 2025 01:56:31 -0700 (PDT) Received: from KERNELXING-MC1.tencent.com ([213.147.98.98]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e5c766a16esm7965571a12.60.2025.03.11.01.56.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Mar 2025 01:56:30 -0700 (PDT) From: Jason Xing To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, dsahern@kernel.org, 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, horms@kernel.org, kuniyu@amazon.com, ncardwell@google.com Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, Jason Xing Subject: [PATCH bpf-next v2 1/6] bpf: introduce bpf_sol_tcp_getsockopt to support TCP_BPF flags Date: Tue, 11 Mar 2025 09:54:32 +0100 Message-Id: <20250311085437.14703-2-kerneljasonxing@gmail.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20250311085437.14703-1-kerneljasonxing@gmail.com> References: <20250311085437.14703-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 The patch refactors a bit on supporting getsockopt for TCP BPF flags. For now, only TCP_BPF_SOCK_OPS_CB_FLAGS. Later, more flags will be added into this function. No functional changes here. Signed-off-by: Jason Xing --- net/core/filter.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/net/core/filter.c b/net/core/filter.c index a0867c5b32b3..2932de5cc57c 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -5282,6 +5282,26 @@ static int sol_socket_sockopt(struct sock *sk, int optname, KERNEL_SOCKPTR(optval), *optlen); } +static int bpf_sol_tcp_getsockopt(struct sock *sk, int optname, + char *optval, int optlen) +{ + if (optlen != sizeof(int)) + return -EINVAL; + + switch (optname) { + case TCP_BPF_SOCK_OPS_CB_FLAGS: { + int cb_flags = tcp_sk(sk)->bpf_sock_ops_cb_flags; + + memcpy(optval, &cb_flags, optlen); + break; + } + default: + return -EINVAL; + } + + return 0; +} + static int bpf_sol_tcp_setsockopt(struct sock *sk, int optname, char *optval, int optlen) { @@ -5415,20 +5435,9 @@ static int sol_tcp_sockopt(struct sock *sk, int optname, if (*optlen < 1) return -EINVAL; break; - case TCP_BPF_SOCK_OPS_CB_FLAGS: - if (*optlen != sizeof(int)) - return -EINVAL; - if (getopt) { - struct tcp_sock *tp = tcp_sk(sk); - int cb_flags = tp->bpf_sock_ops_cb_flags; - - memcpy(optval, &cb_flags, *optlen); - return 0; - } - return bpf_sol_tcp_setsockopt(sk, optname, optval, *optlen); default: if (getopt) - return -EINVAL; + return bpf_sol_tcp_getsockopt(sk, optname, optval, *optlen); return bpf_sol_tcp_setsockopt(sk, optname, optval, *optlen); } From patchwork Tue Mar 11 08:54:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Xing X-Patchwork-Id: 14011288 X-Patchwork-Delegate: bpf@iogearbox.net Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) (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 CE6791DED63; Tue, 11 Mar 2025 08:56:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683396; cv=none; b=NI68wuKeePg2bVHPJ5Ck8oqm0G1s3yukngHlI1ofQ2H6+zORyeGWa1E00oSKnPRlbLwROHKNPEhprd1VzcQ4qk3VoKUURyrfkktq9pVwmmkBYh2ZfnaAAfRCmg5OcP4xr1QJDczlzw4qRAj2blzB3+Iy8ybIBf3l2UhoqCdwFBU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683396; c=relaxed/simple; bh=ykb2g5yizED+vebhylmrflSTLVLfkil8AAMNomOGoYo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sZ/p2v126gyFL9z8HdbyCP+4j16B3/KRBy/2a3VgAtY+B1x5U9D3njcYA0JNXGXHvXmm2F8c4q5lz9unxndpcW7sUahPNe6d/b3rwIjLBtQyxOY737s8Y/CQ6jgIeXs/foswc4iXDqZ/FX0oTbq23YmoGf/gFEjKUKyH6QTM4qE= 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=cQGUzUGm; arc=none smtp.client-ip=209.85.208.50 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="cQGUzUGm" Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-5e5b572e45cso9344276a12.0; Tue, 11 Mar 2025 01:56:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741683393; x=1742288193; 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=4Yd0B7kz/F6zvlGEGELE4rgUtQ3PdQMGH8uZAdiGdh0=; b=cQGUzUGmMeFPH7FXKZXAAgEzj3u+UuyNEKry3OOPjAMl3bZol1uSjQa3yNi5y4uCnU b60wucoPjLCw6gfMWRLrJ/RlA/9VAPPKRydmMKAL7a4eQg64qOr+FE7sJDAF9wCfU+uT aBWFUHI77NzBQzSX/Y28TusTXOXCkWnNJVwYC3Thkku8/jKxQvek3E4ZB4zmG2GAm4OG Gs8MU///9JCIdJeGkXWl360YTkV357/Zhsg+mt1vgYFE1kTPYfi0EP53hKeuGM0LDOHW xG1aiij4tCxYDJ7yUly5i3quh8CibJBw3m5G43k1FG8FBWvX/VXWJRtvybGSbhnBtJrX hU3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741683393; x=1742288193; 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=4Yd0B7kz/F6zvlGEGELE4rgUtQ3PdQMGH8uZAdiGdh0=; b=JEONrws8lvjzMBGZ86qiDSXkJhRxueRgU4FVAZyB0OP3i/SJiIyvm39K4fTdzj5cx3 0aBkh1sGxRS6lXGBbTWzrSVA4P456aaZ9A3HMea2dJibA+I6qR9m53TshrS3k3IKABJv 8/Cw5xgazT/3oBUOIcmUt6oA286kLqJPENlGNnDw2HrcoRyYwilhKAXBwt9u6oKxT6SF 7hlhhZH6mSwCS9Q1XTrbTDm0jNhUCw2KM6zWGD4LgT6QR7QOtRfzPrnttruujylXoUhO r91psanb1tysmz0VmjpiStFh0kzuOBzTRBlxYBnl5JdUnRcuE+MqoMcPFQSsKX9o8Rf5 cdqg== X-Forwarded-Encrypted: i=1; AJvYcCWCpejZStnjO5xtqTIV41FvHz9NGZ7kKhxvgw9ixuxPAFQLIOrKOCxBykU044y0u9ZkL7uNuTk=@vger.kernel.org X-Gm-Message-State: AOJu0YxvZ2vBQmI1M/zD+ugIbrf/L7L7OtxqQ3tfC5sicz69+eZKAEuF 20DX1qiAjeA2Ae/sw8SW2IQn/RDuudtwWGjurAptJnoxMVOb3Qig X-Gm-Gg: ASbGncsQ3xh5qU0ql2R8bPk+A996NO4Wavr2whIIdgIDI6J6g7XHhoWH66q8ncyQVDd v8WGjLR9sTF0WEd/nBsaEgYC4nmH/3ll2AhdrefeiZziBq6UAJg32tE4T3M2fbG3Mb8aH4c+gI4 YcOiwPyOj5DhQuPdswvbgPHobKOjvALJwtrlIffy6u3Taj9T4VEg0tFuS9yHqyOCfQeYwICFC8c OXimjDc97Nce8v3KmLqj+kDu6JvBLNQIj0Tr/H0KDjNds+OM9Xbic/iTBxkcKYL4+Lj1OobjmhN ZVPNaYBFLmGSlhMxwdylGfn+S83GAlHLtu37CBT/xmIBbYTPLtu6gOtPCVyHjLGajwGucOKy6QP Q8as5Xw== X-Google-Smtp-Source: AGHT+IHdpcSHffRPGcgC4nv4LQP5i6mMalzp8jCXBJjTSVI7t9Zs1LxWEm8rb6hyRcBrF1En0ussLQ== X-Received: by 2002:a05:6402:43cd:b0:5e0:4276:c39e with SMTP id 4fb4d7f45d1cf-5e5e251190cmr21290422a12.30.1741683392689; Tue, 11 Mar 2025 01:56:32 -0700 (PDT) Received: from KERNELXING-MC1.tencent.com ([213.147.98.98]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e5c766a16esm7965571a12.60.2025.03.11.01.56.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Mar 2025 01:56:32 -0700 (PDT) From: Jason Xing To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, dsahern@kernel.org, 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, horms@kernel.org, kuniyu@amazon.com, ncardwell@google.com Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, Jason Xing Subject: [PATCH bpf-next v2 2/6] tcp: bpf: support bpf_getsockopt for TCP_BPF_RTO_MIN Date: Tue, 11 Mar 2025 09:54:33 +0100 Message-Id: <20250311085437.14703-3-kerneljasonxing@gmail.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20250311085437.14703-1-kerneljasonxing@gmail.com> References: <20250311085437.14703-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 Support bpf_getsockopt if application tries to know what the RTO MIN of this socket is. Signed-off-by: Jason Xing --- net/core/filter.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/core/filter.c b/net/core/filter.c index 2932de5cc57c..4d34d35af5c7 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -5295,6 +5295,12 @@ static int bpf_sol_tcp_getsockopt(struct sock *sk, int optname, memcpy(optval, &cb_flags, optlen); break; } + case TCP_BPF_RTO_MIN: { + int rto_min_us = jiffies_to_usecs(inet_csk(sk)->icsk_rto_min); + + memcpy(optval, &rto_min_us, optlen); + break; + } default: return -EINVAL; } From patchwork Tue Mar 11 08:54:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Xing X-Patchwork-Id: 14011289 X-Patchwork-Delegate: bpf@iogearbox.net Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (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 5A7BF22D4CE; Tue, 11 Mar 2025 08:56:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683399; cv=none; b=FsYra9av3wP1nV0Epu4vj71nJ6TTrtgOKrHqjzlAKpKcKPquJ1J6JbTEjXFVakHMlrFkdHIqjXLFUmEqcKBuJOFhvQxxyt6krkuS/TIZYnVw4oSw+LYKUGZDE4mCed1URJcWZ7Gp6r5bM90ZyiKuW/NRAOS/GeO1HC2Ipgpl0Cc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683399; c=relaxed/simple; bh=Tch7y1CukP5jx++pF34KjErW5dxeSlzBY2Tru7LU6lU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=P/KhJDmVXVrZPYHwb0ccPZjt7ZbKvEr8WqFeQG9g69L6u+gIoL2IaYvJTpXazkuzVOjYpeOMQ84RQK+DwakW4pfV+MquOMEOrx/ZG5L05un9dveFx8/dmMBbiR/6rmIqSDvDgISOeQe65Kmmg721SWupR/q4OQjBnYs0owICoWI= 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=RL9OS5I5; arc=none smtp.client-ip=209.85.218.54 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="RL9OS5I5" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-ac25d2b2354so629298166b.1; Tue, 11 Mar 2025 01:56:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741683395; x=1742288195; 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=RloDxb8gbXe9v36aikwRPJswC5qN9OsoL3FMniv5dsM=; b=RL9OS5I5uMuBth3BoAJcuZ1g9MUt41YU1f2yWwIgeiP772PV1U53DY+WbtRi0FMrJU a5cPWnEAkq7UuOogB01LPNNpahGzcXgL5tHJI9UIS4dpq06M7+rkBGh6j8+FSVcpnkW3 l0dhIQkBk3CrQ8apjGKSOHx2fk8IWRVXqRO8NSfUhxK7tO8m6dOFFGIMkxuXOkTui88d JWK7l8+XpY67s7+3hBtEb0fgDSb3rNtpxJEp6MWKiFLbdtSHK+m//KSukAumBYnIf9Ef OQA5jwBFSmTLVsKM2FUvrR8K4d/a0ROoFdHE0IXHPumBGcOV2Pzb/zlumFOPeEEF3xrO k7jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741683395; x=1742288195; 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=RloDxb8gbXe9v36aikwRPJswC5qN9OsoL3FMniv5dsM=; b=TlYIbiGgeXAVGelhkMMTWlY4dDnHLmfCbBgkdMd5evX8UqZTjxgGyMILumoBYehF2t WYvDDFkyPpxcy3O70TpNJwM+PPZuAnw98B3nXVCXxbFBT/qZovB4Uwn8YyYIJZF1AARd rJiE4CxzHJvvv139IBnnGWp2ZoDMn9+ZX22RXU1EBigzYxrKySr5UFnGpgQaB7mOWktG d8oNb++/0Ze/quKBUwDWEpWuLCGEjOe5sTlSeZP6Di/ovWJ8p2jtgTDomPpM72bZehdm gnZaGk2nlDrwyT53s3E48P87rMVsYeHYX8YxnOUlD9i//yYCkPH9BcgIDXGcPEXumpYD td/g== X-Forwarded-Encrypted: i=1; AJvYcCWRHsG6Rx8IG3y0F/4O0bgdHMwpWR/uGTMOy0LR9tE/JOjgaOEyKVmqdTfAIpaBVEjGrzv2Ixc=@vger.kernel.org X-Gm-Message-State: AOJu0YxzPtk9+h500jNjJYOmH3nf3NGENf3tStnLxUlQx42oMr0OlSm6 3KF1xSOk67liYFfi2gs7ohnDQPKTJOo2w1o/461IbuBVYX3JbHBu X-Gm-Gg: ASbGncscLnXXXwrv9h/dd9zri8QJ8JPoZOfGczO/+/IhktPfjZ0x6hN59CFdt2sj5jG JOFuHJIxKZCyoNOZ7P870w64DggrXhMdEu6Nr72opxC3iEfBVua/sghJCizC9ZCPqp2igjRZ4+5 tGLrmB1Wz7pG6w+uBx5uadnmfErtO2uS64xpUD4TmQnPoRtAsQfJtjX5y2gGxu3j3aopZEFONG7 G/xVAuLJbqqTjePG5QArGQqIWfMvUJel7rndi0LDh0Td+pojYC7Ii5p5P3GNxZ44LbuU9b1A6lO t1TKxUaF88+izUGIdJoGajzCLRptYOtuzK7heci8OzyOhCwyrBpS181opuSkP6n3FIh1mMmzQ1Q /7WA0QA== X-Google-Smtp-Source: AGHT+IHnWDdhKwXUNMeFMntmtTYRFW5XvWVwLIl/J4TmUwplfzOR7LjtlTTNcy/Ct6S/hLUe+8CfHg== X-Received: by 2002:a17:907:7d8b:b0:abc:4b7:e3d3 with SMTP id a640c23a62f3a-ac252aae2c7mr2075444166b.27.1741683395166; Tue, 11 Mar 2025 01:56:35 -0700 (PDT) Received: from KERNELXING-MC1.tencent.com ([213.147.98.98]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e5c766a16esm7965571a12.60.2025.03.11.01.56.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Mar 2025 01:56:34 -0700 (PDT) From: Jason Xing To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, dsahern@kernel.org, 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, horms@kernel.org, kuniyu@amazon.com, ncardwell@google.com Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, Jason Xing Subject: [PATCH bpf-next v2 3/6] tcp: bpf: support bpf_getsockopt for TCP_BPF_DELACK_MAX Date: Tue, 11 Mar 2025 09:54:34 +0100 Message-Id: <20250311085437.14703-4-kerneljasonxing@gmail.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20250311085437.14703-1-kerneljasonxing@gmail.com> References: <20250311085437.14703-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 Support bpf_getsockopt if application tries to know what the delayed ack max time is. Signed-off-by: Jason Xing --- net/core/filter.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/core/filter.c b/net/core/filter.c index 4d34d35af5c7..46ae8eb7a03c 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -5301,6 +5301,12 @@ static int bpf_sol_tcp_getsockopt(struct sock *sk, int optname, memcpy(optval, &rto_min_us, optlen); break; } + case TCP_BPF_DELACK_MAX: { + int delack_max_us = jiffies_to_usecs(inet_csk(sk)->icsk_delack_max); + + memcpy(optval, &delack_max_us, optlen); + break; + } default: return -EINVAL; } From patchwork Tue Mar 11 08:54:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Xing X-Patchwork-Id: 14011290 X-Patchwork-Delegate: bpf@iogearbox.net Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (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 99C6A22DFA9; Tue, 11 Mar 2025 08:56:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683400; cv=none; b=CxGn92lH3r22rgo6byLs5uf/BK0clgfsV9dGdR2zkMbrXLvhGFf42QPhnOTa4OubHoJgeCwQlZJgobx32FxfW3q2UU94/MIw45jJiMKV04hFiHgD7zLAGCNbq31XVBg5FNltgVK8Q+dB6VtkNX9zfZOfu+dIIDNZjK1KQhrkVQ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683400; c=relaxed/simple; bh=1Nev+uW7q8B+cnoxYN5r30c5l2xZWT/obb5YhbPolSo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HqR6q2ECgBQw+yQj17CpOii0QLdxiKPeoBfjpNshswyXRf8zWRH+3yTuASz2f/VSI8khAHb92e+SJ2MCzHQtMmnoAyAqsXQgQC6bL84+hosdg0DDhtYIfrrpGzV5FFfVhsnx8WS/lwCK36IVnuoaGUuoaGpp0OWLNGzompQYhVM= 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=E/uf9Wz5; arc=none smtp.client-ip=209.85.208.41 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="E/uf9Wz5" Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-5e5e0caa151so7465984a12.0; Tue, 11 Mar 2025 01:56:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741683397; x=1742288197; 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=SxHvSCBBLJ3SzhSpW3tXxMHjDj/bK42aG+z0QqhjsL8=; b=E/uf9Wz5T8ShyUF2uQvX2mYS37b2jTgty2yDNGaCAc11Wsh2cpeTi4QhIl6SI9uHvS D9VYlc6qiec3Ox+xn/t2pIFMxcJUIqYM/9D1XQcTpQeSfIIwcrGxLcncpAwngFbyfg5Q W0AkWwANfj9GhxcZTLzAcmPBqe1TxJfchY6BK8klXkXYjWRbLNOTn7cnIUbjHIeAr5Po aWXxu/7qXKRgA89ImzXt5dKqwmj9eWW6Y53cZ1fdG3aurTw5+082Or1oJS/AVAjZEzFN iI+xmw6tphNVcchHCTsN7Fhdf8+buyrjTNt9XG3UarVceyTvBSUpHxZq0Kc5YHDKyWGq iZlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741683397; x=1742288197; 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=SxHvSCBBLJ3SzhSpW3tXxMHjDj/bK42aG+z0QqhjsL8=; b=Q9w/3DBygzv9My6Cp+BQZ4bkWBQaILb68/0OJ1YtviDNorcX4nsnGbgFDAEE/CIxV7 A8VL+CAQSnKaEn4hwwIhs6nvtwK41RF5xPozcKb8QY6OPUz/mD+DcQ5nunz/jdWUbsE9 J4vXKVNJV7dUmMDRW4P4dn8K/E5um903E6+skhBgsWZ3GBz17SBSrifcyUk9Z0of2FcN VmR8PMn2dZFFjJS1sJ86Q0pA8JP4dGDqS31/rS57a0oXSSVeBi92XZ5FsoNt21AEyDUb 5q5Z4/Ygg4y+yY5ecnsTVhbiAzjEc8g4BIFRJJodxm4CgqhipfLC4Mfn+dZlFT9kcVH+ lwOg== X-Forwarded-Encrypted: i=1; AJvYcCUguuNbpnchpdjRqOwBHbnL4efST+IoqL0hs1cIDMl3Lnp55dzUnbAmVN7hQ9RcQcyJRWSFGhA=@vger.kernel.org X-Gm-Message-State: AOJu0YzHUdjx/XM3KdMM8XiPkOGopjnsZ8vdov2pJmxWdkAl9QF6NAex dLS49wpNeJvqDZsH/XAEzVnnp7t9UVrQRI1wwZt5C+gPFcfwyEy5 X-Gm-Gg: ASbGnct3g3bpYl01A/Yk/KZ/LvbPHehhkKKrbJDA761PG5cD5pMTG0LlLwlU/YrY28u hlUp2OdCbnIsZRYPWwF19UN28rzTt3Jg/cf3FFt2K2Ouhe8ilbjs3DQv8lsFsIwS+rYVEqdTo/R QFkas12jPSrClsTxbPNnpCv1etKuDj/680H00qCnAA2AjmnAd2RVFGETGDsKyBbNgwHHvDK3YQK ke2hRjpN7eWpvtijZ6RnM8nk9YLoYLf5zROC3eLGtmr60QfGUenk+SmNPSUFAblw+/Bo2wXY0ac SrzHXYiEAWqM1dSSAHu9bEo4lHBnntgGqbrt7+A58D1vGhgGhUKhDSLDp8avXs/z8H9iy9qVdGJ rcES0PCth35gMqCSu X-Google-Smtp-Source: AGHT+IGBI7uywvZnq32p5y/Lsc/62pd/2vz/L3GzsElETNfb7sMw4QxQTTkOw82Xpbe5z2ipeERczg== X-Received: by 2002:a05:6402:40cc:b0:5e6:4ac8:c37a with SMTP id 4fb4d7f45d1cf-5e64ac8c64bmr12289907a12.30.1741683396771; Tue, 11 Mar 2025 01:56:36 -0700 (PDT) Received: from KERNELXING-MC1.tencent.com ([213.147.98.98]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e5c766a16esm7965571a12.60.2025.03.11.01.56.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Mar 2025 01:56:36 -0700 (PDT) From: Jason Xing To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, dsahern@kernel.org, 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, horms@kernel.org, kuniyu@amazon.com, ncardwell@google.com Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, Jason Xing Subject: [PATCH bpf-next v2 4/6] tcp: support TCP_RTO_MIN_US for set/getsockopt use Date: Tue, 11 Mar 2025 09:54:35 +0100 Message-Id: <20250311085437.14703-5-kerneljasonxing@gmail.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20250311085437.14703-1-kerneljasonxing@gmail.com> References: <20250311085437.14703-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 Support adjusting RTO MIN for socket level in non BPF case. Signed-off-by: Jason Xing --- Documentation/networking/ip-sysctl.rst | 4 ++-- include/net/tcp.h | 2 +- include/uapi/linux/tcp.h | 1 + net/ipv4/tcp.c | 16 +++++++++++++++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Documentation/networking/ip-sysctl.rst b/Documentation/networking/ip-sysctl.rst index 054561f8dcae..56eabcff0ed0 100644 --- a/Documentation/networking/ip-sysctl.rst +++ b/Documentation/networking/ip-sysctl.rst @@ -1229,8 +1229,8 @@ tcp_pingpong_thresh - INTEGER tcp_rto_min_us - INTEGER Minimal TCP retransmission timeout (in microseconds). Note that the rto_min route option has the highest precedence for configuring this - setting, followed by the TCP_BPF_RTO_MIN socket option, followed by - this tcp_rto_min_us sysctl. + setting, followed by the TCP_BPF_RTO_MIN and TCP_RTO_MIN_US socket + options, followed by this tcp_rto_min_us sysctl. The recommended practice is to use a value less or equal to 200000 microseconds. diff --git a/include/net/tcp.h b/include/net/tcp.h index 9745c7f18170..e850550deb6f 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -803,7 +803,7 @@ u32 tcp_delack_max(const struct sock *sk); static inline u32 tcp_rto_min(const struct sock *sk) { const struct dst_entry *dst = __sk_dst_get(sk); - u32 rto_min = inet_csk(sk)->icsk_rto_min; + u32 rto_min = READ_ONCE(inet_csk(sk)->icsk_rto_min); if (dst && dst_metric_locked(dst, RTAX_RTO_MIN)) rto_min = dst_metric_rtt(dst, RTAX_RTO_MIN); diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h index 32a27b4a5020..b2476cf7058e 100644 --- a/include/uapi/linux/tcp.h +++ b/include/uapi/linux/tcp.h @@ -137,6 +137,7 @@ enum { #define TCP_IS_MPTCP 43 /* Is MPTCP being used? */ #define TCP_RTO_MAX_MS 44 /* max rto time in ms */ +#define TCP_RTO_MIN_US 45 /* min rto time in us */ #define TCP_REPAIR_ON 1 #define TCP_REPAIR_OFF 0 diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 08d73f17e816..2a0fd56358c3 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -3339,7 +3339,7 @@ int tcp_disconnect(struct sock *sk, int flags) icsk->icsk_probes_out = 0; icsk->icsk_probes_tstamp = 0; icsk->icsk_rto = TCP_TIMEOUT_INIT; - icsk->icsk_rto_min = TCP_RTO_MIN; + WRITE_ONCE(icsk->icsk_rto_min, TCP_RTO_MIN); icsk->icsk_delack_max = TCP_DELACK_MAX; tp->snd_ssthresh = TCP_INFINITE_SSTHRESH; tcp_snd_cwnd_set(tp, TCP_INIT_CWND); @@ -3820,6 +3820,14 @@ int do_tcp_setsockopt(struct sock *sk, int level, int optname, return -EINVAL; WRITE_ONCE(inet_csk(sk)->icsk_rto_max, msecs_to_jiffies(val)); return 0; + case TCP_RTO_MIN_US: { + int rto_min = usecs_to_jiffies(val); + + if (rto_min > TCP_RTO_MIN || rto_min < TCP_TIMEOUT_MIN) + return -EINVAL; + WRITE_ONCE(inet_csk(sk)->icsk_rto_min, rto_min); + return 0; + } } sockopt_lock_sock(sk); @@ -4659,6 +4667,12 @@ int do_tcp_getsockopt(struct sock *sk, int level, case TCP_RTO_MAX_MS: val = jiffies_to_msecs(tcp_rto_max(sk)); break; + case TCP_RTO_MIN_US: { + int rto_min = READ_ONCE(inet_csk(sk)->icsk_rto_min); + + val = jiffies_to_usecs(rto_min); + break; + } default: return -ENOPROTOOPT; } From patchwork Tue Mar 11 08:54:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Xing X-Patchwork-Id: 14011291 X-Patchwork-Delegate: bpf@iogearbox.net Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (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 7109F22F39F; Tue, 11 Mar 2025 08:56:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683402; cv=none; b=N85Ubc+ARtPha/O7LybJYETWvTSAOPh2SUV8nZFSsRdwcntBy6UmKxiUkfHFZpafOOjUdRyprNJPDOE0EkE5Rw8CYHG7YIuvnteHKhXtDY72F57uopbyG94lLUaz5k/LXedbOnSBaTtbNSO7hgZok66GhCQu+3bVIAZQzKJR0nM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683402; c=relaxed/simple; bh=UVq854qgEpvP1dadjyuCmR0djax6WDkNt1BAcWtfAMc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=GL/h//jUG4aJrcjb1uBn/I3lzNNFiKE8pJsmTYOsfDDLjD8bis1fNc6R1ELJJ2WtxeH1VFPQxA2Ad8vDQwx48rNevq9AExqAFgrwz7xa+BaMJ6szW+BCnxrxR2zIZWqIKH+oz7mzkDdlmsTu+Z3hJsHV2+plT9tLJXNL1DUfKM4= 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=eT9DB0K8; arc=none smtp.client-ip=209.85.208.42 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="eT9DB0K8" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-5e5b56fc863so7504606a12.3; Tue, 11 Mar 2025 01:56:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741683399; x=1742288199; 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=ONap8g/E/8Kd+50+E5mpWbiiyyQkbjrVWKMdb9y5KnA=; b=eT9DB0K8z12E2a0DnXaI0wj4x7Gq0Ct6WVpV/g6eNS12NRnDaYpT0HgfMqUrySoEpP rK16bOsJbOYfEatkP3zMIwpH1seF60Funn1OU/hktbef8dOjwuOq+T71NveyzuOQyXfU jqiANvouhaMKjtrKcFw4ibjqeNA1y1U+NblIZAsu7fiBnY1j+3q9r6W0sHYp7Ruycspj tOoObi/82WKZh/m+TPG5tuTlfMNpbOsFy6RUnY7/SDV7wP4PHNu5ADZMexMrPCT4APbJ PxAmAcbIb7/X8SKjlUoDTTRzZJW4nHEFE1gPzToeAokmhr+c0tC2luU55l6Rm7EV+LMm fwrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741683399; x=1742288199; 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=ONap8g/E/8Kd+50+E5mpWbiiyyQkbjrVWKMdb9y5KnA=; b=pxZvSDEto/xQVACMdBonI5uE2Tu1sfLM44ePce8bP30ACIsQG6uuS9ocUjsPrBpO9z On3HH6nu0woOYlMPeOHHIkWuaHOhD1uVbXoTLfn07n4ksWHI2Un2s6VRGpTBdrtV9VJJ 07k0+Rxd76HqbDHtlpvpTOXWuQLO1qxNdKWgo9J7DMK4b2vxmcb9nllDJANNLrnjn93S EnTxx6HH4GrNIf3WMYZtprJLHwK4+iciDSRlBPjSjcQubJ8SrPD5f1czCx0hJ/O5iPu1 V77NAW/Kry90xUlhkH58Cd+1BL4DENN8E4I+hLlsEaS9T1IXXyO3mjjWhhjokC9Uk/vH Nu/g== X-Forwarded-Encrypted: i=1; AJvYcCUJ+YyJuf4yvM0+MpI5HbbiWRfz+qFtNe/0P/lS4rZZ/cCIp/OlY2RLkKITHQvuo0v0L2WI/vE=@vger.kernel.org X-Gm-Message-State: AOJu0YxaxnFThSs9UV0z5onKBG06nGSDnDaUYMQldAqc2gLj4kX15vjv VKeSipYGFhcqMtx3M82k5Xa3BXtPbG5bOUwp+DOSegHqsq6F3qw0 X-Gm-Gg: ASbGncvtTjTTByaKxx54XV/FnThd1R9me4TmMcnN9TBBQLf4RB5t2mlR88ciw/fvrat KMu7np2ZGj8bc+5uwjgNnXkhiBgx2/4YEWvjyhkjVCGJ/c1ue1+7BfgoyWhvTq6NojQ+3rNUx3j YONpBHlm0VT+OZ391zp9iHSeCi9RXL3ABQyLjmGMGWeMFYHOCl23iUa10iUWWi1iAZvD0EOSa0i QtuYSIdoyjShwlg8r6I+4M4gPmkiifORgJs8Hph8D6CcjDkiSM0m0EFgCK0Am1+ofyfyspjNrQP Ek1hSEqNyk6pq8WGY7Jq2Ivdoe5DJWh2QY6gv9/4K/yjTaHihiSLe6QHS2MJo7x4FsZ+VGhlz3l CIKaekA== X-Google-Smtp-Source: AGHT+IEZxbV2l8HM6Gn8Mgj6TjvQ5jVTp5hvU2YH/wQ5YOdU+CW6oY5QuMpFwvKMTvo6WhuSwIIdlQ== X-Received: by 2002:a05:6402:d08:b0:5e5:4807:5441 with SMTP id 4fb4d7f45d1cf-5e75f985a89mr3500590a12.30.1741683398382; Tue, 11 Mar 2025 01:56:38 -0700 (PDT) Received: from KERNELXING-MC1.tencent.com ([213.147.98.98]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e5c766a16esm7965571a12.60.2025.03.11.01.56.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Mar 2025 01:56:38 -0700 (PDT) From: Jason Xing To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, dsahern@kernel.org, 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, horms@kernel.org, kuniyu@amazon.com, ncardwell@google.com Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, Jason Xing Subject: [PATCH bpf-next v2 5/6] tcp: support TCP_DELACK_MAX_US for set/getsockopt use Date: Tue, 11 Mar 2025 09:54:36 +0100 Message-Id: <20250311085437.14703-6-kerneljasonxing@gmail.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20250311085437.14703-1-kerneljasonxing@gmail.com> References: <20250311085437.14703-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 Support adjusting delayed ack max for socket level in non BPF case. Signed-off-by: Jason Xing --- include/uapi/linux/tcp.h | 1 + net/ipv4/tcp.c | 16 +++++++++++++++- net/ipv4/tcp_output.c | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h index b2476cf7058e..2377e22f2c4b 100644 --- a/include/uapi/linux/tcp.h +++ b/include/uapi/linux/tcp.h @@ -138,6 +138,7 @@ enum { #define TCP_IS_MPTCP 43 /* Is MPTCP being used? */ #define TCP_RTO_MAX_MS 44 /* max rto time in ms */ #define TCP_RTO_MIN_US 45 /* min rto time in us */ +#define TCP_DELACK_MAX_US 46 /* max delayed ack time in us */ #define TCP_REPAIR_ON 1 #define TCP_REPAIR_OFF 0 diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 2a0fd56358c3..ed652c5e9e96 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -3340,7 +3340,7 @@ int tcp_disconnect(struct sock *sk, int flags) icsk->icsk_probes_tstamp = 0; icsk->icsk_rto = TCP_TIMEOUT_INIT; WRITE_ONCE(icsk->icsk_rto_min, TCP_RTO_MIN); - icsk->icsk_delack_max = TCP_DELACK_MAX; + WRITE_ONCE(icsk->icsk_delack_max, TCP_DELACK_MAX); tp->snd_ssthresh = TCP_INFINITE_SSTHRESH; tcp_snd_cwnd_set(tp, TCP_INIT_CWND); tp->snd_cwnd_cnt = 0; @@ -3828,6 +3828,14 @@ int do_tcp_setsockopt(struct sock *sk, int level, int optname, WRITE_ONCE(inet_csk(sk)->icsk_rto_min, rto_min); return 0; } + case TCP_DELACK_MAX_US: { + int delack_max = usecs_to_jiffies(val); + + if (delack_max > TCP_DELACK_MAX || delack_max < TCP_TIMEOUT_MIN) + return -EINVAL; + WRITE_ONCE(inet_csk(sk)->icsk_delack_max, delack_max); + return 0; + } } sockopt_lock_sock(sk); @@ -4673,6 +4681,12 @@ int do_tcp_getsockopt(struct sock *sk, int level, val = jiffies_to_usecs(rto_min); break; } + case TCP_DELACK_MAX_US: { + int delack_max = READ_ONCE(inet_csk(sk)->icsk_delack_max); + + val = jiffies_to_usecs(delack_max); + break; + } default: return -ENOPROTOOPT; } diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 9a3cf51eab78..00267b17f5e4 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -4173,7 +4173,7 @@ u32 tcp_delack_max(const struct sock *sk) { u32 delack_from_rto_min = max(tcp_rto_min(sk), 2) - 1; - return min(inet_csk(sk)->icsk_delack_max, delack_from_rto_min); + return min(READ_ONCE(inet_csk(sk)->icsk_delack_max), delack_from_rto_min); } /* Send out a delayed ack, the caller does the policy checking From patchwork Tue Mar 11 08:54:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Xing X-Patchwork-Id: 14011292 X-Patchwork-Delegate: bpf@iogearbox.net Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (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 B745E22FE15; Tue, 11 Mar 2025 08:56:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683403; cv=none; b=IrH+WOM76x/jI7tVotrVvVArUCI6C82cwhajJ/gQrmmmqbKPim41xooHGhUD6r92BZLf0ML9dc/p52+dCJQlwxvGBtf94yvjIvnTwfDkxHUFwfNYjFTvcwfYP1/wcXRhaWUN1tnJ2oQAz9GG9psOdWKReUhUyUeupuJL9N8Asb4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741683403; c=relaxed/simple; bh=oe9IFBRxTC4K7Yl2I4dZTUYiD8zJwqLA9l5IMudw9R0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=IGihR5e7/B7urqc9q52upN7k0GwajX0Xn15ZgSu1UEKIoquc3VClUW3P1l6JoHvmJ3xw5Vh5Bukfo9g5ko5vmGVYSub2CmSlPRSLE+JZ+573RAS9dSeBB4dv/B47OCSxDewdHnV+aRwP/b7EPjIur5v+GDL8U9zX8fP8wNMnvrQ= 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=QIKA9Wvn; arc=none smtp.client-ip=209.85.208.41 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="QIKA9Wvn" Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-5dccaaca646so1439824a12.0; Tue, 11 Mar 2025 01:56:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741683400; x=1742288200; 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=DbB+H6DnjKDKEGPGTN5Kwbnu/2fQ4gt3M/BOm0GQpoY=; b=QIKA9Wvn6RnMP/lS4AjhzMAU6fCZMqBqBX4rHlFIhVG3QqmPLpqz7E/VxVHc4nT+pQ qv+TIMMUX41TpwM91BAUNIF5ugqeUqLh31mtWwrTG/dwejFglnoLrGoTnh1vLpP+Ldsm ib2hUvd2zBFMpRPCF9zB3EDxjfWjglv/iHZRawRU4pQ/Nw9C1Iq/0aZRTgZUmCc+q1Gc pYpIn241AZFjD7DhC+VQwbKjCukY00Td46+rfWd8TPbH50XdMi5tJeqI3n/DEaPY0pbt QuOBtQhG0zMA7jlKLP20XYMX2OBqTW5FN8hNPGk0r3wtno+LVKCe/8pAxoRBmfxabeE3 Rnbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741683400; x=1742288200; 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=DbB+H6DnjKDKEGPGTN5Kwbnu/2fQ4gt3M/BOm0GQpoY=; b=TeGC64KvKVAA9vEHROplT5hptJYOlrUPyQw0udIMpPYmazezg6u5D9AXxukFraKaN8 4snF+oB1Eu+3G/zmIbHsu97GWYzVS1S2rZngiEMUVeQcODMjWqWleQIhvbcsz/TRSfqX ZTyDoStnZEqt7Ony8dI3CoLBDkVR+uiL25uaGvopVZpLfeavDI4mxG/f722Q5od3Ox+/ kc+5ECPY9qjNxlhM+YRbwfHrIOcS5keQjRuescritpctKHFJ0Ne2Rjr/2ERorTGaF3r1 cCFlTpmst8JA9uOjtdBxiaLTAQTMpBcWgO+0RmxWc8FieB09TKQ75iQF623/aWKUX9vX pB3g== X-Forwarded-Encrypted: i=1; AJvYcCVkLRLpxUYgqO1dLl6iCfVp+IizzM0Hwb8h18/4Acm9Fsr4wcC4ERSuXJwWWEbmE7WHkwwFK6s=@vger.kernel.org X-Gm-Message-State: AOJu0Yxi9Iod0bYux/uhtnSGBF3DUUu+osPkdgO6gbznZoYSGLF2yehO 0RivZveOTSRIM5Vlz3PXYDA682s0MvEnUpzVqeN4Rjeg24dskuJu X-Gm-Gg: ASbGncv2H12wl+aBnkS2f8xZBR5uVH0icucIQSVR+WEkQYDwaUtGTdxeO6uD3ki875Y CyOJdyAPhD2b4YnbzO4SBro7kahZ+LSuVMdc0R23MgsDojWqXkwRZHozTz6sUgR8K6N8SPkS/cu 6d4L8zIyAwOJ0xUDsJ5byUKYViiNEDuvhzuhhiMdwC238DOaLdd03Gwe5CrwUqPLh1trH6QcS4J qBrZ8qTpnuV0fKoGxZDXnBdhG5CwuBUNXxnnOKV51G9Q0YvCg80Ec+ZqThZ60W/xxH6hm9kHRpL jm+7lgQu9UJm2SbRL0Q4h0x5FszUslFi16rYhI+urPEube1rZzVqVT7TOqml05urimI4YnJ+B3I JlRGE8p1KjZsHuoWk X-Google-Smtp-Source: AGHT+IHqi95HHXK4SnypYgh0Eq1F37MXtX+T9Txf0/OZIvoA/td+0E+MwNoqRrpV70efO6Y4cwctRw== X-Received: by 2002:a05:6402:5204:b0:5db:7353:2b5c with SMTP id 4fb4d7f45d1cf-5e762fdd064mr2514128a12.11.1741683400124; Tue, 11 Mar 2025 01:56:40 -0700 (PDT) Received: from KERNELXING-MC1.tencent.com ([213.147.98.98]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e5c766a16esm7965571a12.60.2025.03.11.01.56.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Mar 2025 01:56:39 -0700 (PDT) From: Jason Xing To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, dsahern@kernel.org, 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, horms@kernel.org, kuniyu@amazon.com, ncardwell@google.com Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, Jason Xing Subject: [PATCH bpf-next v2 6/6] selftests: add bpf_set/getsockopt() for TCP_BPF_DELACK_MAX and TCP_BPF_RTO_MIN Date: Tue, 11 Mar 2025 09:54:37 +0100 Message-Id: <20250311085437.14703-7-kerneljasonxing@gmail.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20250311085437.14703-1-kerneljasonxing@gmail.com> References: <20250311085437.14703-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 Add selftests for TCP_BPF_DELACK_MAX and TCP_BPF_RTO_MIN BPF socket cases. Signed-off-by: Jason Xing --- tools/testing/selftests/bpf/progs/setget_sockopt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/testing/selftests/bpf/progs/setget_sockopt.c b/tools/testing/selftests/bpf/progs/setget_sockopt.c index 106fe430f41b..7a18a2d089bb 100644 --- a/tools/testing/selftests/bpf/progs/setget_sockopt.c +++ b/tools/testing/selftests/bpf/progs/setget_sockopt.c @@ -61,6 +61,8 @@ 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_BPF_DELACK_MAX, .new = 10000, .expected = 10000, }, + { .opt = TCP_BPF_RTO_MIN, .new = 2000, .expected = 2000, }, { .opt = TCP_RTO_MAX_MS, .new = 2000, .expected = 2000, }, { .opt = 0, }, };