xref: /linux/tools/testing/selftests/bpf/progs/connect4_dropper.c (revision 03ab8e6297acd1bc0eedaa050e2a1635c576fd11)
1 // SPDX-License-Identifier: GPL-2.0
2 
3 #include <string.h>
4 
5 #include <linux/stddef.h>
6 #include <linux/bpf.h>
7 
8 #include <sys/socket.h>
9 
10 #include <bpf/bpf_helpers.h>
11 #include <bpf/bpf_endian.h>
12 
13 #define VERDICT_REJECT	0
14 #define VERDICT_PROCEED	1
15 
16 SEC("cgroup/connect4")
connect_v4_dropper(struct bpf_sock_addr * ctx)17 int connect_v4_dropper(struct bpf_sock_addr *ctx)
18 {
19 	if (ctx->type != SOCK_STREAM)
20 		return VERDICT_PROCEED;
21 	if (ctx->user_port == bpf_htons(60120))
22 		return VERDICT_REJECT;
23 	return VERDICT_PROCEED;
24 }
25 
26 char _license[] SEC("license") = "GPL";
27