github.com/datadog/cilium@v1.6.12/bpf/probes/raw_map_val_adj.t (about) 1 /* Tests for availability of kernel commits (4.9+): 2 * 3 * d2a4dd37f6b4 ("bpf: fix state equivalence") [** will appear in 4.9 stable] 4 * e2d2afe15ed4 ("bpf: fix states equal logic for varlen access") 5 * f23cc643f9ba ("bpf: fix range arithmetic for bpf map access") 6 * 484611357c19 ("bpf: allow access into map value arrays") 7 */ 8 { 9 .emits = "HAVE_MAP_VAL_ADJ", 10 .type = BPF_PROG_TYPE_SCHED_CLS, 11 .insns = { 12 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 13 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8), 14 BPF_ST_MEM(BPF_DW, BPF_REG_2, 0, 0), 15 BPF_LD_MAP_FD(BPF_REG_1, 0), 16 BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), 17 BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 6), 18 BPF_ALU64_IMM(BPF_ADD, BPF_REG_0, 8), 19 BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_0, 0), 20 BPF_JMP_IMM(BPF_JGT, BPF_REG_3, 1, 2), 21 BPF_MOV64_IMM(BPF_REG_0, 1), 22 BPF_EXIT_INSN(), 23 BPF_MOV64_IMM(BPF_REG_0, 2), 24 BPF_EXIT_INSN(), 25 }, 26 .fixup_map = { 27 { 28 .off = 3, 29 .type = BPF_MAP_TYPE_HASH, 30 .size_key = 8, 31 .size_val = 16, 32 }, 33 }, 34 .warn = "Verifier is too old to detect dynamic map value access " 35 "after bpf_map_lookup_elem(). Recommendation is to run 4.9+ " 36 "kernels.", 37 },