xref: /linux/tools/testing/selftests/bpf/progs/lpm_trie_map.c (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1*737433c6SMatt Fleming // SPDX-License-Identifier: GPL-2.0
2*737433c6SMatt Fleming #include <linux/bpf.h>
3*737433c6SMatt Fleming #include <bpf/bpf_helpers.h>
4*737433c6SMatt Fleming #include <bpf/bpf_tracing.h>
5*737433c6SMatt Fleming 
6*737433c6SMatt Fleming #define MAX_ENTRIES 100000000
7*737433c6SMatt Fleming 
8*737433c6SMatt Fleming struct trie_key {
9*737433c6SMatt Fleming 	__u32 prefixlen;
10*737433c6SMatt Fleming 	__u32 data;
11*737433c6SMatt Fleming };
12*737433c6SMatt Fleming 
13*737433c6SMatt Fleming struct {
14*737433c6SMatt Fleming 	__uint(type, BPF_MAP_TYPE_LPM_TRIE);
15*737433c6SMatt Fleming 	__type(key, struct trie_key);
16*737433c6SMatt Fleming 	__type(value, __u32);
17*737433c6SMatt Fleming 	__uint(map_flags, BPF_F_NO_PREALLOC);
18*737433c6SMatt Fleming 	__uint(max_entries, MAX_ENTRIES);
19*737433c6SMatt Fleming } trie_free_map SEC(".maps");
20