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 |