BPF+: Exploiting Global Data-flow Optimization in a Generalized Packet Filter Architecture

Summary: The authors describe an extension to the original BPF including global (across filter predicates) optimizations and dynamic code-generation and a safety checker. Their filter is the only filter that allows the user to define the packet in a declarative form (much more useful to the user) while still achieving good performance. (They expect performance to be similar.)


- expanding number of applications

- predicate language
- vm 
- optimizations
       ** redundant predicate elimination 
	- peephole opts + constant folding
	- jump table opts

- system arch: high-level filter spec -> front end -> ssa form
  -> optimizer -> VM byte codes 
  -> safety checker -> interpreter
	  	    -> JIT Assembler -> native code

- says all other pfs imperative, not declarative.
  pathfinder claims to be declarative. 

- differences from others filters

misc
- great intro