v13:
patch 1:
As Mat mentioned in the "BPF packet scheduler" series, BPF packet
scheduler depends on CONFIG_BPF_SYSCALL. In fact, the series depends on
CONFIG_BPF_SYSCALL too.
- change "CONFIG_BPF" to "CONFIG_BPF_SYSCALL" in Makefile
- change "ifdef CONFIG_MPTCP" in include/linux/bpf.h to:
"#if defined(CONFIG_MPTCP) && defined(CONFIG_BPF_SYSCALL)"
- drop "#ifdef CONFIG_MPTCP" in net/core/filter.c
patch 2:
Address to Matt's comments in v12:
- use bpf_object__find_program_by_name, bpf_object__find_map_by_name
- use -EIO
- drop close_client_fd label
- add more CHECK_FAIL
v12:
patch 1:
- merged the squash-to patch for v11.
- rebased to export/20220324T054815.
patch 2:
- fix the libbpf 0.8 build error.
patch 4:
- use fgets instead of fread to get null terminated string.
v11:
- merge "check more values from mptcp_sock" series into this series.
- patch 2:
- rebased.
- patch 3:
- rebased.
- add 'Copyright' entry as Matt suggested in v9.
- patch 4:
- add test__start_subtest.
- add some 'Copyright' entries.
- patch 5:
- change monitor_log_path to static
- drop bpf_trace_printk()
- patch 6:
- use TCP_CA_NAME_MAX instead of strlen(val.ca_name) in strncmp().
- use 'sysctl -b net.ipv4.tcp_congestion_control' to get ca_name.
v10:
- merge the squash-to patch.
- update patch 3 as Matt suggested.
- add sync() in get_msk_token() before read().
- add a comment for get_msk_token().
- update subjects and commit logs.
v9:
- update progs/mptcp.c in patch 4 and 5
v8:
- update as Matt suggested.
v7:
- parse msk token from the output of 'ip mptcp monitor'.
- add Nicolas and Matt's SoB tags.
v6:
- add skc_to_mptcp_sock helper and test
RESEND:
- fix the CI Build Failure.
v5:
- fix incorrect token value
- verify the token in selftest
v4:
- define bpf_mptcp_sock_proto as a static function, no longer export
it in linux/bpf.h
v3:
- use RET_PTR_TO_BTF_ID_OR_NULL instead of RET_PTR_TO_MPTCP_SOCK_OR_NULL
- add a new bpf_id BTF_SOCK_TYPE_MPTCP
v2:
- keep RET_PTR_TO_MPTCP_SOCK_OR_NULL. If we use RET_PTR_TO_BTF_ID_OR_NULL
instead of RET_PTR_TO_MPTCP_SOCK_OR_NULL as Alexei suggested, the
"userspace" tests developed by Nicolas will break.
Geliang Tang (5):
bpf: add bpf_skc_to_mptcp_sock_proto
Squash to "selftests: bpf: add MPTCP test base"
selftests: bpf: test bpf_skc_to_mptcp_sock
selftests: bpf: verify ca_name of struct mptcp_sock
selftests: bpf: verify first subflow of mptcp_sock
include/linux/bpf.h | 9 +
include/linux/btf_ids.h | 3 +-
include/uapi/linux/bpf.h | 7 +
net/core/filter.c | 16 ++
net/mptcp/Makefile | 2 +
net/mptcp/bpf.c | 22 ++
scripts/bpf_doc.py | 2 +
tools/include/uapi/linux/bpf.h | 7 +
tools/testing/selftests/bpf/bpf_tcp_helpers.h | 12 +
.../testing/selftests/bpf/prog_tests/mptcp.c | 209 +++++++++++++++---
tools/testing/selftests/bpf/progs/mptcp.c | 44 +++-
11 files changed, 289 insertions(+), 44 deletions(-)
create mode 100644 net/mptcp/bpf.c
--
2.34.1