⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.164
Server IP:
157.245.143.252
Server:
Linux www 6.11.0-29-generic #29-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:29:41 UTC 2025 x86_64
Server Software:
nginx/1.26.0
PHP Version:
8.3.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
iproute2
/
examples
/
bpf
/
View File Name :
bpf_map_in_map.c
#include "../../include/bpf_api.h" struct inner_map { __uint(type, BPF_MAP_TYPE_ARRAY); __uint(key_size, sizeof(uint32_t)); __uint(value_size, sizeof(uint32_t)); __uint(max_entries, 1); } map_inner __section(".maps"); struct { __uint(type, BPF_MAP_TYPE_ARRAY_OF_MAPS); __uint(key_size, sizeof(uint32_t)); __uint(value_size, sizeof(uint32_t)); __uint(max_entries, 1); __uint(pinning, LIBBPF_PIN_BY_NAME); __array(values, struct inner_map); } map_outer __section(".maps") = { .values = { [0] = &map_inner, }, }; __section("egress") int emain(struct __sk_buff *skb) { struct bpf_elf_map *map_inner; int key = 0, *val; map_inner = map_lookup_elem(&map_outer, &key); if (map_inner) { val = map_lookup_elem(map_inner, &key); if (val) lock_xadd(val, 1); } return BPF_H_DEFAULT; } __section("ingress") int imain(struct __sk_buff *skb) { struct bpf_elf_map *map_inner; int key = 0, *val; map_inner = map_lookup_elem(&map_outer, &key); if (map_inner) { val = map_lookup_elem(map_inner, &key); if (val) printt("map val: %d\n", *val); } return BPF_H_DEFAULT; } BPF_LICENSE("GPL");