From: Akhmat Karakotov <hmukos@yandex-team.ru>
Date: Mon, 31 Jan 2022 16:31:24 +0300
Subject: bpf: Add SO_TXREHASH setsockopt
Patch-mainline: v5.18-rc1
Git-commit: e7b9bfd18476cd3de9a3819235f9221e59abc80a
References: jsc#PED-1377
Add bpf socket option to override rehash behaviour from userspace or from bpf.
Signed-off-by: Akhmat Karakotov <hmukos@yandex-team.ru>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
---
net/core/filter.c | 10 ++++++++++
1 file changed, 10 insertions(+)
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -5094,6 +5094,13 @@ static int _bpf_setsockopt(struct sock *
case SO_REUSEPORT:
sk->sk_reuseport = valbool;
break;
+ case SO_TXREHASH:
+ if (val < -1 || val > 1) {
+ ret = -EINVAL;
+ break;
+ }
+ sk->sk_txrehash = (u8)val;
+ break;
default:
ret = -EINVAL;
}
@@ -5272,6 +5279,9 @@ static int _bpf_getsockopt(struct sock *
case SO_REUSEPORT:
*((int *)optval) = sk->sk_reuseport;
break;
+ case SO_TXREHASH:
+ *((int *)optval) = sk->sk_txrehash;
+ break;
default:
goto err_clear;
}