* [PATCH net-next 0/6] bpf: Fix bugs in sock_ops samples In-Reply-To:
@ 2017-11-10 20:42 Lawrence Brakmo
2017-11-10 20:42 ` [PATCH net-next 1/6] bpf: Fix tcp_synrto_kern.c sample program Lawrence Brakmo
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-10 20:42 UTC (permalink / raw)
To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann
The programs were returning -1 in some cases when they should
only return 0 or 1. Changes in the verifier now catch this
issue and the programs fail to load. This is now fixed.
[PATCH net-next 1/6] bpf: Fix tcp_synrto_kern.c sample program
[PATCH net-next 2/6] bpf: Fix tcp_rwnd_kern.c sample program
[PATCH net-next 3/6] bpf: Fix tcp_bufs_kern.c sample program
[PATCH net-next 4/6] bpf: Fix tcp_cong_kern.c sample program
[PATCH net-next 5/6] bpf: Fix tcp_iw_kern.c sample program
[PATCH net-next 6/6] bpf: Fix tcp_clamp_kern.c sample program
samples/bpf/tcp_bufs_kern.c | 14 ++++++++------
samples/bpf/tcp_clamp_kern.c | 24 +++++++++++++-----------
samples/bpf/tcp_cong_kern.c | 6 ++++--
samples/bpf/tcp_iw_kern.c | 14 ++++++++------
samples/bpf/tcp_rwnd_kern.c | 6 ++++--
samples/bpf/tcp_synrto_kern.c | 6 ++++--
files changed, 41 insertions(+), 29 deletions(-)
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net-next 1/6] bpf: Fix tcp_synrto_kern.c sample program
2017-11-10 20:42 [PATCH net-next 0/6] bpf: Fix bugs in sock_ops samples In-Reply-To: Lawrence Brakmo
@ 2017-11-10 20:42 ` Lawrence Brakmo
2017-11-10 21:18 ` Daniel Borkmann
2017-11-10 20:42 ` [PATCH net-next 2/6] bpf: Fix tcp_rwnd_kern.c " Lawrence Brakmo
` (4 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-10 20:42 UTC (permalink / raw)
To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann
The program was returning -1 in some cases which is not allowed
by the verifier any longer.
Fixes: 8550f328f45d ("bpf: Support for per connection SYN/SYN-ACK RTOs")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
samples/bpf/tcp_synrto_kern.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/samples/bpf/tcp_synrto_kern.c b/samples/bpf/tcp_synrto_kern.c
index 3c3fc83..232bb24 100644
--- a/samples/bpf/tcp_synrto_kern.c
+++ b/samples/bpf/tcp_synrto_kern.c
@@ -38,8 +38,10 @@ int bpf_synrto(struct bpf_sock_ops *skops)
* if neither port numberis 55601
*/
if (bpf_ntohl(skops->remote_port) != 55601 &&
- skops->local_port != 55601)
- return -1;
+ skops->local_port != 55601) {
+ skops->reply = -1;
+ return 1;
+ }
op = (int) skops->op;
--
2.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net-next 2/6] bpf: Fix tcp_rwnd_kern.c sample program
2017-11-10 20:42 [PATCH net-next 0/6] bpf: Fix bugs in sock_ops samples In-Reply-To: Lawrence Brakmo
2017-11-10 20:42 ` [PATCH net-next 1/6] bpf: Fix tcp_synrto_kern.c sample program Lawrence Brakmo
@ 2017-11-10 20:42 ` Lawrence Brakmo
2017-11-10 20:43 ` [PATCH net-next 3/6] bpf: Fix tcp_bufs_kern.c " Lawrence Brakmo
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-10 20:42 UTC (permalink / raw)
To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann
The program was returning -1 in some cases which is not allowed
by the verifier any longer.
Fixes: c400296bf63d ("bpf: Sample bpf program to set initial window")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
samples/bpf/tcp_rwnd_kern.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/samples/bpf/tcp_rwnd_kern.c b/samples/bpf/tcp_rwnd_kern.c
index 3f2a228..09ff65b 100644
--- a/samples/bpf/tcp_rwnd_kern.c
+++ b/samples/bpf/tcp_rwnd_kern.c
@@ -38,8 +38,10 @@ int bpf_rwnd(struct bpf_sock_ops *skops)
* if neither port numberis 55601
*/
if (bpf_ntohl(skops->remote_port) !=
- 55601 && skops->local_port != 55601)
- return -1;
+ 55601 && skops->local_port != 55601) {
+ skops->reply = -1;
+ return 1;
+ }
op = (int) skops->op;
--
2.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net-next 3/6] bpf: Fix tcp_bufs_kern.c sample program
2017-11-10 20:42 [PATCH net-next 0/6] bpf: Fix bugs in sock_ops samples In-Reply-To: Lawrence Brakmo
2017-11-10 20:42 ` [PATCH net-next 1/6] bpf: Fix tcp_synrto_kern.c sample program Lawrence Brakmo
2017-11-10 20:42 ` [PATCH net-next 2/6] bpf: Fix tcp_rwnd_kern.c " Lawrence Brakmo
@ 2017-11-10 20:43 ` Lawrence Brakmo
2017-11-10 20:43 ` [PATCH net-next 4/6] bpf: Fix tcp_cong_kern.c " Lawrence Brakmo
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-10 20:43 UTC (permalink / raw)
To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann
The program was returning -1 in some cases which is not allowed
by the verifier any longer.
Fixes: d9925368a641 ("bpf: Sample BPF program to set buffer sizes")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
samples/bpf/tcp_bufs_kern.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/samples/bpf/tcp_bufs_kern.c b/samples/bpf/tcp_bufs_kern.c
index ee83bba..0566b7f 100644
--- a/samples/bpf/tcp_bufs_kern.c
+++ b/samples/bpf/tcp_bufs_kern.c
@@ -41,8 +41,10 @@ int bpf_bufs(struct bpf_sock_ops *skops)
* if neither port numberis 55601
*/
if (bpf_ntohl(skops->remote_port) != 55601 &&
- skops->local_port != 55601)
- return -1;
+ skops->local_port != 55601) {
+ skops->reply = -1;
+ return 1;
+ }
op = (int) skops->op;
@@ -61,8 +63,8 @@ int bpf_bufs(struct bpf_sock_ops *skops)
/* Set sndbuf and rcvbuf of active connections */
rv = bpf_setsockopt(skops, SOL_SOCKET, SO_SNDBUF, &bufsize,
sizeof(bufsize));
- rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
- &bufsize, sizeof(bufsize));
+ rv += bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
+ &bufsize, sizeof(bufsize));
break;
case BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB:
/* Nothing to do */
@@ -71,8 +73,8 @@ int bpf_bufs(struct bpf_sock_ops *skops)
/* Set sndbuf and rcvbuf of passive connections */
rv = bpf_setsockopt(skops, SOL_SOCKET, SO_SNDBUF, &bufsize,
sizeof(bufsize));
- rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
- &bufsize, sizeof(bufsize));
+ rv += bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
+ &bufsize, sizeof(bufsize));
break;
default:
rv = -1;
--
2.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net-next 4/6] bpf: Fix tcp_cong_kern.c sample program
2017-11-10 20:42 [PATCH net-next 0/6] bpf: Fix bugs in sock_ops samples In-Reply-To: Lawrence Brakmo
` (2 preceding siblings ...)
2017-11-10 20:43 ` [PATCH net-next 3/6] bpf: Fix tcp_bufs_kern.c " Lawrence Brakmo
@ 2017-11-10 20:43 ` Lawrence Brakmo
2017-11-10 20:43 ` [PATCH net-next 5/6] bpf: Fix tcp_iw_kern.c " Lawrence Brakmo
2017-11-10 20:43 ` [PATCH net-next 6/6] bpf: Fix tcp_clamp_kern.c " Lawrence Brakmo
5 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-10 20:43 UTC (permalink / raw)
To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann
The program was returning -1 in some cases which is not allowed
by the verifier any longer.
Fixes: bb56d4449d8b ("bpf: Sample BPF program to set congestion control")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
samples/bpf/tcp_cong_kern.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/samples/bpf/tcp_cong_kern.c b/samples/bpf/tcp_cong_kern.c
index dac15bc..ad0f1ba 100644
--- a/samples/bpf/tcp_cong_kern.c
+++ b/samples/bpf/tcp_cong_kern.c
@@ -39,8 +39,10 @@ int bpf_cong(struct bpf_sock_ops *skops)
* if neither port numberis 55601
*/
if (bpf_ntohl(skops->remote_port) != 55601 &&
- skops->local_port != 55601)
- return -1;
+ skops->local_port != 55601) {
+ skops->reply = -1;
+ return 1;
+ }
op = (int) skops->op;
--
2.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net-next 5/6] bpf: Fix tcp_iw_kern.c sample program
2017-11-10 20:42 [PATCH net-next 0/6] bpf: Fix bugs in sock_ops samples In-Reply-To: Lawrence Brakmo
` (3 preceding siblings ...)
2017-11-10 20:43 ` [PATCH net-next 4/6] bpf: Fix tcp_cong_kern.c " Lawrence Brakmo
@ 2017-11-10 20:43 ` Lawrence Brakmo
2017-11-10 20:43 ` [PATCH net-next 6/6] bpf: Fix tcp_clamp_kern.c " Lawrence Brakmo
5 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-10 20:43 UTC (permalink / raw)
To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann
The program was returning -1 in some cases which is not allowed
by the verifier any longer.
Fixes: 7bc62e285479 ("bpf: Sample BPF program to set initial cwnd")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
samples/bpf/tcp_iw_kern.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/samples/bpf/tcp_iw_kern.c b/samples/bpf/tcp_iw_kern.c
index 23c5122..4ca5ecc 100644
--- a/samples/bpf/tcp_iw_kern.c
+++ b/samples/bpf/tcp_iw_kern.c
@@ -42,8 +42,10 @@ int bpf_iw(struct bpf_sock_ops *skops)
* if neither port numberis 55601
*/
if (bpf_ntohl(skops->remote_port) != 55601 &&
- skops->local_port != 55601)
- return -1;
+ skops->local_port != 55601) {
+ skops->reply = -1;
+ return 1;
+ }
op = (int) skops->op;
@@ -62,8 +64,8 @@ int bpf_iw(struct bpf_sock_ops *skops)
/* Set sndbuf and rcvbuf of active connections */
rv = bpf_setsockopt(skops, SOL_SOCKET, SO_SNDBUF, &bufsize,
sizeof(bufsize));
- rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
- &bufsize, sizeof(bufsize));
+ rv += bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
+ &bufsize, sizeof(bufsize));
break;
case BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB:
rv = bpf_setsockopt(skops, SOL_TCP, TCP_BPF_IW, &iw,
@@ -73,8 +75,8 @@ int bpf_iw(struct bpf_sock_ops *skops)
/* Set sndbuf and rcvbuf of passive connections */
rv = bpf_setsockopt(skops, SOL_SOCKET, SO_SNDBUF, &bufsize,
sizeof(bufsize));
- rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
- &bufsize, sizeof(bufsize));
+ rv += bpf_setsockopt(skops, SOL_SOCKET, SO_RCVBUF,
+ &bufsize, sizeof(bufsize));
break;
default:
rv = -1;
--
2.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net-next 6/6] bpf: Fix tcp_clamp_kern.c sample program
2017-11-10 20:42 [PATCH net-next 0/6] bpf: Fix bugs in sock_ops samples In-Reply-To: Lawrence Brakmo
` (4 preceding siblings ...)
2017-11-10 20:43 ` [PATCH net-next 5/6] bpf: Fix tcp_iw_kern.c " Lawrence Brakmo
@ 2017-11-10 20:43 ` Lawrence Brakmo
5 siblings, 0 replies; 8+ messages in thread
From: Lawrence Brakmo @ 2017-11-10 20:43 UTC (permalink / raw)
To: netdev; +Cc: Alexei Starovoitov, Daniel Borkmann
The program was returning -1 in some cases which is not allowed
by the verifier any longer.
Fixes: 6c4a01b27852 ("bpf: Sample bpf program to set sndcwnd clamp")
Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
---
samples/bpf/tcp_clamp_kern.c | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/samples/bpf/tcp_clamp_kern.c b/samples/bpf/tcp_clamp_kern.c
index d68eadd9..f4225c9 100644
--- a/samples/bpf/tcp_clamp_kern.c
+++ b/samples/bpf/tcp_clamp_kern.c
@@ -41,8 +41,10 @@ int bpf_clamp(struct bpf_sock_ops *skops)
/* For testing purposes, only execute rest of BPF program
* if neither port numberis 55601
*/
- if (bpf_ntohl(skops->remote_port) != 55601 && skops->local_port != 55601)
- return -1;
+ if (bpf_ntohl(skops->remote_port) != 55601 && skops->local_port != 55601) {
+ skops->reply = -1;
+ return 0;
+ }
op = (int) skops->op;
@@ -66,9 +68,9 @@ int bpf_clamp(struct bpf_sock_ops *skops)
/* Set sndbuf and rcvbuf of active connections */
rv = bpf_setsockopt(skops, SOL_SOCKET, SO_SNDBUF,
&bufsize, sizeof(bufsize));
- rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET,
- SO_RCVBUF, &bufsize,
- sizeof(bufsize));
+ rv += bpf_setsockopt(skops, SOL_SOCKET,
+ SO_RCVBUF, &bufsize,
+ sizeof(bufsize));
break;
case BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB:
rv = bpf_setsockopt(skops, SOL_TCP,
@@ -80,12 +82,12 @@ int bpf_clamp(struct bpf_sock_ops *skops)
rv = bpf_setsockopt(skops, SOL_TCP,
TCP_BPF_SNDCWND_CLAMP,
&clamp, sizeof(clamp));
- rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET,
- SO_SNDBUF, &bufsize,
- sizeof(bufsize));
- rv = rv*100 + bpf_setsockopt(skops, SOL_SOCKET,
- SO_RCVBUF, &bufsize,
- sizeof(bufsize));
+ rv += bpf_setsockopt(skops, SOL_SOCKET,
+ SO_SNDBUF, &bufsize,
+ sizeof(bufsize));
+ rv += bpf_setsockopt(skops, SOL_SOCKET,
+ SO_RCVBUF, &bufsize,
+ sizeof(bufsize));
break;
default:
rv = -1;
--
2.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH net-next 1/6] bpf: Fix tcp_synrto_kern.c sample program
2017-11-10 20:42 ` [PATCH net-next 1/6] bpf: Fix tcp_synrto_kern.c sample program Lawrence Brakmo
@ 2017-11-10 21:18 ` Daniel Borkmann
0 siblings, 0 replies; 8+ messages in thread
From: Daniel Borkmann @ 2017-11-10 21:18 UTC (permalink / raw)
To: Lawrence Brakmo, netdev; +Cc: Alexei Starovoitov
On 11/10/2017 09:42 PM, Lawrence Brakmo wrote:
> The program was returning -1 in some cases which is not allowed
> by the verifier any longer.
>
> Fixes: 8550f328f45d ("bpf: Support for per connection SYN/SYN-ACK RTOs")
Hmm, for most of the series (if not all), I think Fixes tag is:
390ee7e29fc8 ("bpf: enforce return code for cgroup-bpf programs"),
which is the one that started enforcing via check_return_code()
in range [0, 1].
Btw, your subject from cover letter got somehow messed up a bit:
'[PATCH net-next 0/6] bpf: Fix bugs in sock_ops samples In-Reply-To:'
> Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
> ---
> samples/bpf/tcp_synrto_kern.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/samples/bpf/tcp_synrto_kern.c b/samples/bpf/tcp_synrto_kern.c
> index 3c3fc83..232bb24 100644
> --- a/samples/bpf/tcp_synrto_kern.c
> +++ b/samples/bpf/tcp_synrto_kern.c
> @@ -38,8 +38,10 @@ int bpf_synrto(struct bpf_sock_ops *skops)
> * if neither port numberis 55601
> */
> if (bpf_ntohl(skops->remote_port) != 55601 &&
> - skops->local_port != 55601)
> - return -1;
> + skops->local_port != 55601) {
> + skops->reply = -1;
> + return 1;
> + }
>
> op = (int) skops->op;
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-11-10 21:18 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-10 20:42 [PATCH net-next 0/6] bpf: Fix bugs in sock_ops samples In-Reply-To: Lawrence Brakmo
2017-11-10 20:42 ` [PATCH net-next 1/6] bpf: Fix tcp_synrto_kern.c sample program Lawrence Brakmo
2017-11-10 21:18 ` Daniel Borkmann
2017-11-10 20:42 ` [PATCH net-next 2/6] bpf: Fix tcp_rwnd_kern.c " Lawrence Brakmo
2017-11-10 20:43 ` [PATCH net-next 3/6] bpf: Fix tcp_bufs_kern.c " Lawrence Brakmo
2017-11-10 20:43 ` [PATCH net-next 4/6] bpf: Fix tcp_cong_kern.c " Lawrence Brakmo
2017-11-10 20:43 ` [PATCH net-next 5/6] bpf: Fix tcp_iw_kern.c " Lawrence Brakmo
2017-11-10 20:43 ` [PATCH net-next 6/6] bpf: Fix tcp_clamp_kern.c " Lawrence Brakmo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.