1bb23c0e1SLorenz Bauer // SPDX-License-Identifier: GPL-2.0 2bb23c0e1SLorenz Bauer // Copyright (c) 2020 Cloudflare 3bb23c0e1SLorenz Bauer #include "vmlinux.h" 4bb23c0e1SLorenz Bauer #include <bpf/bpf_helpers.h> 5bb23c0e1SLorenz Bauer 6bb23c0e1SLorenz Bauer struct { 7bb23c0e1SLorenz Bauer __uint(type, BPF_MAP_TYPE_SOCKMAP); 8bb23c0e1SLorenz Bauer __uint(max_entries, 1); 9bb23c0e1SLorenz Bauer __type(key, __u32); 10bb23c0e1SLorenz Bauer __type(value, __u64); 11bb23c0e1SLorenz Bauer } map SEC(".maps"); 12bb23c0e1SLorenz Bauer 13bb23c0e1SLorenz Bauer SEC("sockops") bpf_sockmap(struct bpf_sock_ops * skops)14bb23c0e1SLorenz Bauerint bpf_sockmap(struct bpf_sock_ops *skops) 15bb23c0e1SLorenz Bauer { 16bb23c0e1SLorenz Bauer __u32 key = 0; 17bb23c0e1SLorenz Bauer 18bb23c0e1SLorenz Bauer if (skops->sk) 19bb23c0e1SLorenz Bauer bpf_map_update_elem(&map, &key, skops->sk, 0); 20bb23c0e1SLorenz Bauer return 0; 21bb23c0e1SLorenz Bauer } 22bb23c0e1SLorenz Bauer 23bb23c0e1SLorenz Bauer char _license[] SEC("license") = "GPL"; 24