Speaker
Sean Young
Description
An quick intro to infrared on Linux, and introduce new tool called cir
Intro needed for context of what we're trying to do with finite automations.
https://github.com/seanyoung/cir
Show how to use finite automations to generate efficient BPF code
Compiles IRP mini language to BPF (in a single binary/process, written in pure rust).
- Parse IRP language, convert to NFA state machine
- Convert NFA state machine to DFA state machine
- Show that sometimes we end up with better code than the hand-written infrared decoders in the linux kernel
- Generate LLVM IR from DFA
- Generate BPF object file in-memory from LLVM IR
- Load BPF object file into kernel (using Aya)
I think it is interesting because:
- The DFA/NFA state machines are more complex than text book versions, as the edges can have code attached
- The techniques might be a good example of generating efficient BPF code
- Shows how BPF is replacing kernel space and user space infrared decoding