xref: /kernel/linux/linux-6.6/tools/testing/selftests/bpf/progs/mptcpify.c
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/tools/testing/selftests/bpf/progs/
162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/* Copyright (c) 2023, SUSE. */
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#include "vmlinux.h"
562306a36Sopenharmony_ci#include <bpf/bpf_tracing.h>
662306a36Sopenharmony_ci#include "bpf_tracing_net.h"
762306a36Sopenharmony_ci
862306a36Sopenharmony_cichar _license[] SEC("license") = "GPL";
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciSEC("fmod_ret/update_socket_protocol")
1162306a36Sopenharmony_ciint BPF_PROG(mptcpify, int family, int type, int protocol)
1262306a36Sopenharmony_ci{
1362306a36Sopenharmony_ci	if ((family == AF_INET || family == AF_INET6) &&
1462306a36Sopenharmony_ci	    type == SOCK_STREAM &&
1562306a36Sopenharmony_ci	    (!protocol || protocol == IPPROTO_TCP)) {
1662306a36Sopenharmony_ci		return IPPROTO_MPTCP;
1762306a36Sopenharmony_ci	}
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	return protocol;
2062306a36Sopenharmony_ci}
21

Indexes created Thu Nov 07 10:32:03 CST 2024