Slide 20
Slide 20 text
4DSJQUJOH
JQGUSBDF"-JOVY'VODUJPO5SBDFSGPS/FUXPSL1FPQMFc:VUBSP )BZBLBXB
-- void
-- custom_function(uint8_t *buf, void *ctx,
-- struct sk_buff *skb)
--
function emit()
return BPF.emit({
...
-- Get skb->len
BPF.MOV64_REG(BPF.R1, BPF.R6),
BPF.MOV64_IMM(BPF.R2, uint_size),
BPF.MOV64_REG(BPF.R3, BPF.R8),
BPF.ALU64_IMM(BPF.ADD, BPF.R3, len_offset),
BPF.CALL_INSN(BPF.FUNC.probe_read),
...
})
end
function dump(data)
len, gso_type = string.unpack(“=I4I4, data)
return string.format("(len: %d gso_type: %s)",
len, flags2str(gso_type))
end
• -VBͰFNJU
EVNQͷͭΛॻ͘ͱग़
ྗΛΧελϚΠζͰ͖Δ
• FNJUՃͷσʔλΛूΊΔF#1'ͷ
όΠτίʔυΛు͘ϚΫϩΞηϯϒ
ϥͰॻ͚Δ
• EVNQFNJUͰूΊͨσʔλΛܗ
ͨ͠จࣈྻΛు͘