Module: RbBCC::Table
- Defined in:
- lib/rbbcc/table.rb
Constant Summary collapse
- BPF_MAP_TYPE_HASH =
1- BPF_MAP_TYPE_ARRAY =
2- BPF_MAP_TYPE_PROG_ARRAY =
3- BPF_MAP_TYPE_PERF_EVENT_ARRAY =
4- BPF_MAP_TYPE_PERCPU_HASH =
5- BPF_MAP_TYPE_PERCPU_ARRAY =
6- BPF_MAP_TYPE_STACK_TRACE =
7- BPF_MAP_TYPE_CGROUP_ARRAY =
8- BPF_MAP_TYPE_LRU_HASH =
9- BPF_MAP_TYPE_LRU_PERCPU_HASH =
10- BPF_MAP_TYPE_LPM_TRIE =
11- BPF_MAP_TYPE_ARRAY_OF_MAPS =
12- BPF_MAP_TYPE_HASH_OF_MAPS =
13- BPF_MAP_TYPE_DEVMAP =
14- BPF_MAP_TYPE_SOCKMAP =
15- BPF_MAP_TYPE_CPUMAP =
16- BPF_MAP_TYPE_XSKMAP =
17- BPF_MAP_TYPE_SOCKHASH =
18
Class Method Summary collapse
Class Method Details
.new(bpf, map_id, map_fd, keytype, leaftype, name, **kwargs) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/rbbcc/table.rb', line 28 def self.new(bpf, map_id, map_fd, keytype, leaftype, name, **kwargs) ttype = Clib.bpf_table_type_id(bpf.module, map_id) case ttype when BPF_MAP_TYPE_HASH HashTable.new(bpf, map_id, map_fd, keytype, leaftype) when BPF_MAP_TYPE_ARRAY ArrayTable.new(bpf, map_id, map_fd, keytype, leaftype) when BPF_MAP_TYPE_PERF_EVENT_ARRAY PerfEventArray.new(bpf, map_id, map_fd, keytype, leaftype, name: name) when BPF_MAP_TYPE_STACK_TRACE StackTrace.new(bpf, map_id, map_fd, keytype, leaftype) else raise "Unknown table type #{ttype}" end end |