1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright (c) 2021 Facebook */ 3 4 #include <stddef.h> 5 #include <linux/bpf.h> 6 #include <linux/types.h> 7 #include <linux/stddef.h> 8 #include <linux/tcp.h> 9 #include <bpf/bpf_helpers.h> 10 #include <bpf/bpf_tracing.h> 11 #include "bpf_tcp_helpers.h" 12 13 char _license[] SEC("license") = "GPL"; 14 const char cubic[] = "cubic"; 15 BPF_STRUCT_OPS(dctcp_nouse_release,struct sock * sk)16void BPF_STRUCT_OPS(dctcp_nouse_release, struct sock *sk) 17 { 18 bpf_setsockopt(sk, SOL_TCP, TCP_CONGESTION, 19 (void *)cubic, sizeof(cubic)); 20 } 21 22 SEC(".struct_ops") 23 struct tcp_congestion_ops dctcp_rel = { 24 .release = (void *)dctcp_nouse_release, 25 .name = "bpf_dctcp_rel", 26 }; 27