selftests/bpf: Add mptcpify test
authorGeliang Tang <geliang.tang@suse.com>
Wed, 16 Aug 2023 01:11:59 +0000 (09:11 +0800)
committerMartin KaFai Lau <martin.lau@kernel.org>
Wed, 16 Aug 2023 18:42:33 +0000 (11:42 -0700)
commitddba122428a75261fc4d3547f4e7e4aa6b67caef
tree04764d5159b1301502abda24221d7d418eb4386f
parent207746550262e81b1e360d003a67f7ef7bacfbae
selftests/bpf: Add mptcpify test

Implement a new test program mptcpify: if the family is AF_INET or
AF_INET6, the type is SOCK_STREAM, and the protocol ID is 0 or
IPPROTO_TCP, set it to IPPROTO_MPTCP. It will be hooked in
update_socket_protocol().

Extend the MPTCP test base, add a selftest test_mptcpify() for the
mptcpify case. Open and load the mptcpify test prog to mptcpify the
TCP sockets dynamically, then use start_server() and connect_to_fd()
to create a TCP socket, but actually what's created is an MPTCP
socket, which can be verified through 'getsockopt(SOL_PROTOCOL)'
and 'getsockopt(MPTCP_INFO)'.

Acked-by: Yonghong Song <yonghong.song@linux.dev>
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Link: https://lore.kernel.org/r/364e72f307e7bb38382ec7442c182d76298a9c41.1692147782.git.geliang.tang@suse.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
tools/testing/selftests/bpf/prog_tests/mptcp.c
tools/testing/selftests/bpf/progs/mptcpify.c [new file with mode: 0644]