* [PATCH bpf-next v3 0/2] bpf: support setting max RTO for bpf_setsockopt
@ 2025-02-19 8:13 Jason Xing
2025-02-19 8:13 ` [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS " Jason Xing
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Jason Xing @ 2025-02-19 8:13 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, dsahern, kuniyu, ast, daniel,
andrii, martin.lau, eddyz87, song, yonghong.song, john.fastabend,
kpsingh, sdf, haoluo, jolsa, shuah, ykolal
Cc: bpf, netdev, Jason Xing
Support max RTO set by BPF program calling bpf_setsockopt().
Add corresponding selftests.
Jason Xing (2):
bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
selftests/bpf: add rto max for bpf_setsockopt test
net/core/filter.c | 1 +
tools/testing/selftests/bpf/progs/bpf_tracing_net.h | 1 +
tools/testing/selftests/bpf/progs/setget_sockopt.c | 1 +
3 files changed, 3 insertions(+)
--
2.43.5
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
2025-02-19 8:13 [PATCH bpf-next v3 0/2] bpf: support setting max RTO for bpf_setsockopt Jason Xing
@ 2025-02-19 8:13 ` Jason Xing
2025-02-20 8:51 ` kernel test robot
2025-02-22 22:51 ` kernel test robot
2025-02-19 8:13 ` [PATCH bpf-next v3 2/2] selftests/bpf: add rto max for bpf_setsockopt test Jason Xing
2025-02-19 21:11 ` [PATCH bpf-next v3 0/2] bpf: support setting max RTO for bpf_setsockopt patchwork-bot+netdevbpf
2 siblings, 2 replies; 8+ messages in thread
From: Jason Xing @ 2025-02-19 8:13 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, dsahern, kuniyu, ast, daniel,
andrii, martin.lau, eddyz87, song, yonghong.song, john.fastabend,
kpsingh, sdf, haoluo, jolsa, shuah, ykolal
Cc: bpf, netdev, Jason Xing
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 <kuniyu@amazon.com>
Signed-off-by: Jason Xing <kerneljasonxing@gmail.com>
---
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;
--
2.43.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH bpf-next v3 2/2] selftests/bpf: add rto max for bpf_setsockopt test
2025-02-19 8:13 [PATCH bpf-next v3 0/2] bpf: support setting max RTO for bpf_setsockopt Jason Xing
2025-02-19 8:13 ` [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS " Jason Xing
@ 2025-02-19 8:13 ` Jason Xing
2025-02-19 21:11 ` [PATCH bpf-next v3 0/2] bpf: support setting max RTO for bpf_setsockopt patchwork-bot+netdevbpf
2 siblings, 0 replies; 8+ messages in thread
From: Jason Xing @ 2025-02-19 8:13 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, dsahern, kuniyu, ast, daniel,
andrii, martin.lau, eddyz87, song, yonghong.song, john.fastabend,
kpsingh, sdf, haoluo, jolsa, shuah, ykolal
Cc: bpf, netdev, Jason Xing
Test the TCP_RTO_MAX_MS optname in the existing setget_sockopt test.
Signed-off-by: Jason Xing <kerneljasonxing@gmail.com>
---
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, },
};
--
2.43.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH bpf-next v3 0/2] bpf: support setting max RTO for bpf_setsockopt
2025-02-19 8:13 [PATCH bpf-next v3 0/2] bpf: support setting max RTO for bpf_setsockopt Jason Xing
2025-02-19 8:13 ` [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS " Jason Xing
2025-02-19 8:13 ` [PATCH bpf-next v3 2/2] selftests/bpf: add rto max for bpf_setsockopt test Jason Xing
@ 2025-02-19 21:11 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 8+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-02-19 21:11 UTC (permalink / raw)
To: Jason Xing
Cc: davem, edumazet, kuba, pabeni, dsahern, kuniyu, ast, daniel,
andrii, martin.lau, eddyz87, song, yonghong.song, john.fastabend,
kpsingh, sdf, haoluo, jolsa, shuah, ykolal, bpf, netdev
Hello:
This series was applied to bpf/bpf-next.git (net)
by Martin KaFai Lau <martin.lau@kernel.org>:
On Wed, 19 Feb 2025 16:13:30 +0800 you wrote:
> Support max RTO set by BPF program calling bpf_setsockopt().
> Add corresponding selftests.
>
> Jason Xing (2):
> bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
> selftests/bpf: add rto max for bpf_setsockopt test
>
> [...]
Here is the summary with links:
- [bpf-next,v3,1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
https://git.kernel.org/bpf/bpf-next/c/6810c771d316
- [bpf-next,v3,2/2] selftests/bpf: add rto max for bpf_setsockopt test
https://git.kernel.org/bpf/bpf-next/c/7a93ba804847
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
2025-02-19 8:13 ` [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS " Jason Xing
@ 2025-02-20 8:51 ` kernel test robot
2025-02-20 8:57 ` Jason Xing
2025-02-22 22:51 ` kernel test robot
1 sibling, 1 reply; 8+ messages in thread
From: kernel test robot @ 2025-02-20 8:51 UTC (permalink / raw)
To: Jason Xing, davem, edumazet, kuba, pabeni, dsahern, kuniyu, ast,
daniel, andrii, martin.lau, eddyz87, song, yonghong.song,
john.fastabend, kpsingh, sdf, haoluo, jolsa, shuah, ykolal
Cc: oe-kbuild-all, bpf, netdev, Jason Xing
Hi Jason,
kernel test robot noticed the following build errors:
[auto build test ERROR on bpf-next/master]
url: https://github.com/intel-lab-lkp/linux/commits/Jason-Xing/bpf-support-TCP_RTO_MAX_MS-for-bpf_setsockopt/20250219-161637
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20250219081333.56378-2-kerneljasonxing%40gmail.com
patch subject: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
config: x86_64-buildonly-randconfig-002-20250220 (https://download.01.org/0day-ci/archive/20250220/202502201843.xA1qZbKX-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250220/202502201843.xA1qZbKX-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502201843.xA1qZbKX-lkp@intel.com/
All errors (new ones prefixed by >>):
net/core/filter.c: In function 'sol_tcp_sockopt':
>> net/core/filter.c:5385:14: error: 'TCP_RTO_MAX_MS' undeclared (first use in this function); did you mean 'TCP_RTO_MAX'?
5385 | case TCP_RTO_MAX_MS:
| ^~~~~~~~~~~~~~
| TCP_RTO_MAX
net/core/filter.c:5385:14: note: each undeclared identifier is reported only once for each function it appears in
vim +5385 net/core/filter.c
5365
5366 static int sol_tcp_sockopt(struct sock *sk, int optname,
5367 char *optval, int *optlen,
5368 bool getopt)
5369 {
5370 if (sk->sk_protocol != IPPROTO_TCP)
5371 return -EINVAL;
5372
5373 switch (optname) {
5374 case TCP_NODELAY:
5375 case TCP_MAXSEG:
5376 case TCP_KEEPIDLE:
5377 case TCP_KEEPINTVL:
5378 case TCP_KEEPCNT:
5379 case TCP_SYNCNT:
5380 case TCP_WINDOW_CLAMP:
5381 case TCP_THIN_LINEAR_TIMEOUTS:
5382 case TCP_USER_TIMEOUT:
5383 case TCP_NOTSENT_LOWAT:
5384 case TCP_SAVE_SYN:
> 5385 case TCP_RTO_MAX_MS:
5386 if (*optlen != sizeof(int))
5387 return -EINVAL;
5388 break;
5389 case TCP_CONGESTION:
5390 return sol_tcp_sockopt_congestion(sk, optval, optlen, getopt);
5391 case TCP_SAVED_SYN:
5392 if (*optlen < 1)
5393 return -EINVAL;
5394 break;
5395 case TCP_BPF_SOCK_OPS_CB_FLAGS:
5396 if (*optlen != sizeof(int))
5397 return -EINVAL;
5398 if (getopt) {
5399 struct tcp_sock *tp = tcp_sk(sk);
5400 int cb_flags = tp->bpf_sock_ops_cb_flags;
5401
5402 memcpy(optval, &cb_flags, *optlen);
5403 return 0;
5404 }
5405 return bpf_sol_tcp_setsockopt(sk, optname, optval, *optlen);
5406 default:
5407 if (getopt)
5408 return -EINVAL;
5409 return bpf_sol_tcp_setsockopt(sk, optname, optval, *optlen);
5410 }
5411
5412 if (getopt) {
5413 if (optname == TCP_SAVED_SYN) {
5414 struct tcp_sock *tp = tcp_sk(sk);
5415
5416 if (!tp->saved_syn ||
5417 *optlen > tcp_saved_syn_len(tp->saved_syn))
5418 return -EINVAL;
5419 memcpy(optval, tp->saved_syn->data, *optlen);
5420 /* It cannot free tp->saved_syn here because it
5421 * does not know if the user space still needs it.
5422 */
5423 return 0;
5424 }
5425
5426 return do_tcp_getsockopt(sk, SOL_TCP, optname,
5427 KERNEL_SOCKPTR(optval),
5428 KERNEL_SOCKPTR(optlen));
5429 }
5430
5431 return do_tcp_setsockopt(sk, SOL_TCP, optname,
5432 KERNEL_SOCKPTR(optval), *optlen);
5433 }
5434
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
2025-02-20 8:51 ` kernel test robot
@ 2025-02-20 8:57 ` Jason Xing
2025-02-22 1:40 ` Philip Li
0 siblings, 1 reply; 8+ messages in thread
From: Jason Xing @ 2025-02-20 8:57 UTC (permalink / raw)
To: kernel test robot
Cc: davem, edumazet, kuba, pabeni, dsahern, kuniyu, ast, daniel,
andrii, martin.lau, eddyz87, song, yonghong.song, john.fastabend,
kpsingh, sdf, haoluo, jolsa, shuah, ykolal, oe-kbuild-all, bpf,
netdev
On Thu, Feb 20, 2025 at 4:52 PM kernel test robot <lkp@intel.com> wrote:
>
> Hi Jason,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on bpf-next/master]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Jason-Xing/bpf-support-TCP_RTO_MAX_MS-for-bpf_setsockopt/20250219-161637
> base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
> patch link: https://lore.kernel.org/r/20250219081333.56378-2-kerneljasonxing%40gmail.com
> patch subject: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
> config: x86_64-buildonly-randconfig-002-20250220 (https://download.01.org/0day-ci/archive/20250220/202502201843.xA1qZbKX-lkp@intel.com/config)
> compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250220/202502201843.xA1qZbKX-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202502201843.xA1qZbKX-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> net/core/filter.c: In function 'sol_tcp_sockopt':
> >> net/core/filter.c:5385:14: error: 'TCP_RTO_MAX_MS' undeclared (first use in this function); did you mean 'TCP_RTO_MAX'?
> 5385 | case TCP_RTO_MAX_MS:
> | ^~~~~~~~~~~~~~
> | TCP_RTO_MAX
> net/core/filter.c:5385:14: note: each undeclared identifier is reported only once for each function it appears in
We've discussed this a few hours ago. It turned out to be the wrong
branch which this series applied to. Please try bpf-next net branch
instead :)
Thanks,
Jason
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
2025-02-20 8:57 ` Jason Xing
@ 2025-02-22 1:40 ` Philip Li
0 siblings, 0 replies; 8+ messages in thread
From: Philip Li @ 2025-02-22 1:40 UTC (permalink / raw)
To: Jason Xing
Cc: kernel test robot, davem, edumazet, kuba, pabeni, dsahern, kuniyu,
ast, daniel, andrii, martin.lau, eddyz87, song, yonghong.song,
john.fastabend, kpsingh, sdf, haoluo, jolsa, shuah, ykolal,
oe-kbuild-all, bpf, netdev
On Thu, Feb 20, 2025 at 04:57:08PM +0800, Jason Xing wrote:
> On Thu, Feb 20, 2025 at 4:52 PM kernel test robot <lkp@intel.com> wrote:
> >
> > Hi Jason,
> >
> > kernel test robot noticed the following build errors:
> >
> > [auto build test ERROR on bpf-next/master]
> >
> > url: https://github.com/intel-lab-lkp/linux/commits/Jason-Xing/bpf-support-TCP_RTO_MAX_MS-for-bpf_setsockopt/20250219-161637
> > base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
> > patch link: https://lore.kernel.org/r/20250219081333.56378-2-kerneljasonxing%40gmail.com
> > patch subject: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
> > config: x86_64-buildonly-randconfig-002-20250220 (https://download.01.org/0day-ci/archive/20250220/202502201843.xA1qZbKX-lkp@intel.com/config)
> > compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250220/202502201843.xA1qZbKX-lkp@intel.com/reproduce)
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/202502201843.xA1qZbKX-lkp@intel.com/
> >
> > All errors (new ones prefixed by >>):
> >
> > net/core/filter.c: In function 'sol_tcp_sockopt':
> > >> net/core/filter.c:5385:14: error: 'TCP_RTO_MAX_MS' undeclared (first use in this function); did you mean 'TCP_RTO_MAX'?
> > 5385 | case TCP_RTO_MAX_MS:
> > | ^~~~~~~~~~~~~~
> > | TCP_RTO_MAX
> > net/core/filter.c:5385:14: note: each undeclared identifier is reported only once for each function it appears in
>
> We've discussed this a few hours ago. It turned out to be the wrong
> branch which this series applied to. Please try bpf-next net branch
> instead :)
Thanks for the info, we will configure this branch in the bot side. Sorry
for the false positive.
>
> Thanks,
> Jason
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
2025-02-19 8:13 ` [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS " Jason Xing
2025-02-20 8:51 ` kernel test robot
@ 2025-02-22 22:51 ` kernel test robot
1 sibling, 0 replies; 8+ messages in thread
From: kernel test robot @ 2025-02-22 22:51 UTC (permalink / raw)
To: Jason Xing, davem, edumazet, kuba, pabeni, dsahern, kuniyu, ast,
daniel, andrii, martin.lau, eddyz87, song, yonghong.song,
john.fastabend, kpsingh, sdf, haoluo, jolsa, shuah, ykolal
Cc: llvm, oe-kbuild-all, bpf, netdev, Jason Xing
Hi Jason,
kernel test robot noticed the following build errors:
[auto build test ERROR on bpf-next/master]
url: https://github.com/intel-lab-lkp/linux/commits/Jason-Xing/bpf-support-TCP_RTO_MAX_MS-for-bpf_setsockopt/20250219-161637
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20250219081333.56378-2-kerneljasonxing%40gmail.com
patch subject: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
config: i386-buildonly-randconfig-004-20250220 (https://download.01.org/0day-ci/archive/20250223/202502230656.sZc7duhR-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250223/202502230656.sZc7duhR-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502230656.sZc7duhR-lkp@intel.com/
All errors (new ones prefixed by >>):
net/core/filter.c:1726:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
1726 | .arg3_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:2041:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
2041 | .arg1_type = ARG_PTR_TO_MEM | PTR_MAYBE_NULL | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
net/core/filter.c:2043:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
2043 | .arg3_type = ARG_PTR_TO_MEM | PTR_MAYBE_NULL | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
net/core/filter.c:2580:35: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
2580 | .arg2_type = ARG_PTR_TO_MEM | PTR_MAYBE_NULL | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
net/core/filter.c:4649:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
4649 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:4663:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
4663 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:4863:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
4863 | .arg2_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:4891:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
4891 | .arg2_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5063:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5063 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5077:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5077 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5126:45: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5126 | .arg1_type = ARG_PTR_TO_BTF_ID_SOCK_COMMON | PTR_MAYBE_NULL,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
>> net/core/filter.c:5385:7: error: use of undeclared identifier 'TCP_RTO_MAX_MS'; did you mean 'TCA_RED_MAX_P'?
5385 | case TCP_RTO_MAX_MS:
| ^~~~~~~~~~~~~~
| TCA_RED_MAX_P
include/uapi/linux/pkt_sched.h:258:2: note: 'TCA_RED_MAX_P' declared here
258 | TCA_RED_MAX_P,
| ^
net/core/filter.c:5562:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5562 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5596:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5596 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5630:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5630 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5664:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5664 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5839:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5839 | .arg2_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:6376:46: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6376 | .arg3_type = ARG_PTR_TO_FIXED_SIZE_MEM | MEM_WRITE | MEM_ALIGNED,
| ~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~
net/core/filter.c:6388:46: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6388 | .arg3_type = ARG_PTR_TO_FIXED_SIZE_MEM | MEM_WRITE | MEM_ALIGNED,
| ~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~
net/core/filter.c:6474:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6474 | .arg3_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:6484:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6484 | .arg3_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
20 warnings and 1 error generated.
vim +5385 net/core/filter.c
5365
5366 static int sol_tcp_sockopt(struct sock *sk, int optname,
5367 char *optval, int *optlen,
5368 bool getopt)
5369 {
5370 if (sk->sk_protocol != IPPROTO_TCP)
5371 return -EINVAL;
5372
5373 switch (optname) {
5374 case TCP_NODELAY:
5375 case TCP_MAXSEG:
5376 case TCP_KEEPIDLE:
5377 case TCP_KEEPINTVL:
5378 case TCP_KEEPCNT:
5379 case TCP_SYNCNT:
5380 case TCP_WINDOW_CLAMP:
5381 case TCP_THIN_LINEAR_TIMEOUTS:
5382 case TCP_USER_TIMEOUT:
5383 case TCP_NOTSENT_LOWAT:
5384 case TCP_SAVE_SYN:
> 5385 case TCP_RTO_MAX_MS:
5386 if (*optlen != sizeof(int))
5387 return -EINVAL;
5388 break;
5389 case TCP_CONGESTION:
5390 return sol_tcp_sockopt_congestion(sk, optval, optlen, getopt);
5391 case TCP_SAVED_SYN:
5392 if (*optlen < 1)
5393 return -EINVAL;
5394 break;
5395 case TCP_BPF_SOCK_OPS_CB_FLAGS:
5396 if (*optlen != sizeof(int))
5397 return -EINVAL;
5398 if (getopt) {
5399 struct tcp_sock *tp = tcp_sk(sk);
5400 int cb_flags = tp->bpf_sock_ops_cb_flags;
5401
5402 memcpy(optval, &cb_flags, *optlen);
5403 return 0;
5404 }
5405 return bpf_sol_tcp_setsockopt(sk, optname, optval, *optlen);
5406 default:
5407 if (getopt)
5408 return -EINVAL;
5409 return bpf_sol_tcp_setsockopt(sk, optname, optval, *optlen);
5410 }
5411
5412 if (getopt) {
5413 if (optname == TCP_SAVED_SYN) {
5414 struct tcp_sock *tp = tcp_sk(sk);
5415
5416 if (!tp->saved_syn ||
5417 *optlen > tcp_saved_syn_len(tp->saved_syn))
5418 return -EINVAL;
5419 memcpy(optval, tp->saved_syn->data, *optlen);
5420 /* It cannot free tp->saved_syn here because it
5421 * does not know if the user space still needs it.
5422 */
5423 return 0;
5424 }
5425
5426 return do_tcp_getsockopt(sk, SOL_TCP, optname,
5427 KERNEL_SOCKPTR(optval),
5428 KERNEL_SOCKPTR(optlen));
5429 }
5430
5431 return do_tcp_setsockopt(sk, SOL_TCP, optname,
5432 KERNEL_SOCKPTR(optval), *optlen);
5433 }
5434
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-02-22 22:52 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-19 8:13 [PATCH bpf-next v3 0/2] bpf: support setting max RTO for bpf_setsockopt Jason Xing
2025-02-19 8:13 ` [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS " Jason Xing
2025-02-20 8:51 ` kernel test robot
2025-02-20 8:57 ` Jason Xing
2025-02-22 1:40 ` Philip Li
2025-02-22 22:51 ` kernel test robot
2025-02-19 8:13 ` [PATCH bpf-next v3 2/2] selftests/bpf: add rto max for bpf_setsockopt test Jason Xing
2025-02-19 21:11 ` [PATCH bpf-next v3 0/2] bpf: support setting max RTO for bpf_setsockopt patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).