1*1fa1fe8fSJohn Fastabend #include <linux/bpf.h>
2*1fa1fe8fSJohn Fastabend #include <bpf/bpf_helpers.h>
3*1fa1fe8fSJohn Fastabend #include <bpf/bpf_endian.h>
4*1fa1fe8fSJohn Fastabend 
5*1fa1fe8fSJohn Fastabend struct {
6*1fa1fe8fSJohn Fastabend 	__uint(type, BPF_MAP_TYPE_SOCKMAP);
7*1fa1fe8fSJohn Fastabend 	__uint(max_entries, 20);
8*1fa1fe8fSJohn Fastabend 	__type(key, int);
9*1fa1fe8fSJohn Fastabend 	__type(value, int);
10*1fa1fe8fSJohn Fastabend } sock_map_rx SEC(".maps");
11*1fa1fe8fSJohn Fastabend 
12*1fa1fe8fSJohn Fastabend struct {
13*1fa1fe8fSJohn Fastabend 	__uint(type, BPF_MAP_TYPE_SOCKMAP);
14*1fa1fe8fSJohn Fastabend 	__uint(max_entries, 20);
15*1fa1fe8fSJohn Fastabend 	__type(key, int);
16*1fa1fe8fSJohn Fastabend 	__type(value, int);
17*1fa1fe8fSJohn Fastabend } sock_map_tx SEC(".maps");
18*1fa1fe8fSJohn Fastabend 
19*1fa1fe8fSJohn Fastabend struct {
20*1fa1fe8fSJohn Fastabend 	__uint(type, BPF_MAP_TYPE_SOCKMAP);
21*1fa1fe8fSJohn Fastabend 	__uint(max_entries, 20);
22*1fa1fe8fSJohn Fastabend 	__type(key, int);
23*1fa1fe8fSJohn Fastabend 	__type(value, int);
24*1fa1fe8fSJohn Fastabend } sock_map_msg SEC(".maps");
25*1fa1fe8fSJohn Fastabend 
26*1fa1fe8fSJohn Fastabend SEC("sk_skb")
prog_skb_verdict(struct __sk_buff * skb)27*1fa1fe8fSJohn Fastabend int prog_skb_verdict(struct __sk_buff *skb)
28*1fa1fe8fSJohn Fastabend {
29*1fa1fe8fSJohn Fastabend 	return SK_PASS;
30*1fa1fe8fSJohn Fastabend }
31*1fa1fe8fSJohn Fastabend 
32*1fa1fe8fSJohn Fastabend char _license[] SEC("license") = "GPL";
33