mbox series

[bpf-next,0/2] Add support to set window_clamp from bpf setsockops

Message ID 20201201000339.3310760-1-prankgup@fb.com
Headers show
Series Add support to set window_clamp from bpf setsockops | expand

Message

Prankur gupta Dec. 1, 2020, 12:03 a.m. UTC
This patch contains support to set tcp window_field field from bpf setsockops.

Prankur gupta (2):
  bpf: Adds support for setting window clamp
  selftests/bpf: Add Userspace tests for TCP_WINDOW_CLAMP

 net/core/filter.c                             |  8 +++++
 tools/testing/selftests/bpf/bpf_tcp_helpers.h |  1 +
 .../selftests/bpf/prog_tests/tcpbpf_user.c    |  4 +++
 .../selftests/bpf/progs/test_tcpbpf_kern.c    | 33 +++++++++++++++++++
 tools/testing/selftests/bpf/test_tcpbpf.h     |  2 ++
 5 files changed, 48 insertions(+)

Comments

Alexei Starovoitov Dec. 1, 2020, 1:34 a.m. UTC | #1
On Mon, Nov 30, 2020 at 4:07 PM Prankur gupta <prankgup@fb.com> wrote:
>

> Adds a new bpf_setsockopt for TCP sockets, TCP_BPF_WINDOW_CLAMP,

> which sets the maximum receiver window size. It will be useful for

> limiting receiver window based on RTT.

>

> Signed-off-by: Prankur gupta <prankgup@fb.com>

> ---

>  net/core/filter.c | 8 ++++++++

>  1 file changed, 8 insertions(+)

>

> diff --git a/net/core/filter.c b/net/core/filter.c

> index 2ca5eecebacf..cb006962b677 100644

> --- a/net/core/filter.c

> +++ b/net/core/filter.c

> @@ -4910,6 +4910,14 @@ static int _bpf_setsockopt(struct sock *sk, int level, int optname,

>                                 tp->notsent_lowat = val;

>                                 sk->sk_write_space(sk);

>                                 break;

> +                       case TCP_WINDOW_CLAMP:

> +                               if (val <= 0)

> +                                       ret = -EINVAL;


Why zero is not allowed?
Normal setsockopt() allows it.

> +                               else

> +                                       tp->window_clamp =

> +                                               max_t(int, val,

> +                                                     SOCK_MIN_RCVBUF / 2);

> +                               break;

>                         default:

>                                 ret = -EINVAL;

>                         }

> --

> 2.24.1

>
Prankur gupta Dec. 1, 2020, 8:22 p.m. UTC | #2
From: Prankur Gupta <prankgup@fb.com>


No reason in particular.
Updated the code (patch v2) to have logic as tcp setsockopt for tCP_WINDOW_CLAMP.

PS: First time trying git send-em,ail, pleas elet me know if this is not the right way to reply.
Andrii Nakryiko Dec. 2, 2020, 1:30 a.m. UTC | #3
On Tue, Dec 1, 2020 at 12:24 PM Prankur gupta <prankgup@fb.com> wrote:
>

> From: Prankur Gupta <prankgup@fb.com>

>

> No reason in particular.

> Updated the code (patch v2) to have logic as tcp setsockopt for tCP_WINDOW_CLAMP.

>

> PS: First time trying git send-em,ail, pleas elet me know if this is not the right way to reply.


I use send-email for sending patches only, I reply from Gmail or
Thunderbird (from work account). The latter has a plain text mode,
while Outlook doesn't.

But also, you need to add v2 to each patch, not just cover letter. You
can do that when using `git format-patch --subject-prefix='PATCH v2
bpf-next' ...`.