This set allows the bpf-tcp-cc to call bpf_setsockopt. One use case is to allow a bpf-tcp-cc switching to another cc during init(). For example, when the tcp flow is not ecn ready, the bpf_dctcp can switch to another cc by calling setsockopt(TCP_CONGESTION). bpf_getsockopt() is also added to have a symmetrical API, so less usage surprise. Martin KaFai Lau (4): bpf: tcp: Allow bpf-tcp-cc to call bpf_(get|set)sockopt bpf: selftests: Add sk_state to bpf_tcp_helpers.h bpf: selftests: Add connect_to_fd_opts to network_helpers bpf: selftests: Add dctcp fallback test kernel/bpf/bpf_struct_ops.c | 22 +++- net/ipv4/bpf_tcp_ca.c | 26 ++++- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 5 + tools/testing/selftests/bpf/network_helpers.c | 23 +++- tools/testing/selftests/bpf/network_helpers.h | 6 ++ .../selftests/bpf/prog_tests/bpf_tcp_ca.c | 101 ++++++++++++++---- .../selftests/bpf/prog_tests/kfunc_call.c | 2 +- tools/testing/selftests/bpf/progs/bpf_dctcp.c | 20 ++++ .../selftests/bpf/progs/bpf_dctcp_release.c | 26 +++++ .../bpf/progs/kfunc_call_test_subprog.c | 4 +- 10 files changed, 203 insertions(+), 32 deletions(-) create mode 100644 tools/testing/selftests/bpf/progs/bpf_dctcp_release.c -- 2.30.2