Tom Herbert will delve into both the theory and implementation of programmable packet parsers that run with the highest performance in a given target environment.
Tom will first describe protocol parsing as a Finite State Machine (FSM). Next he will dig into a declarative representation of a protocol parser alongside the FSM.
In the final section he will apply these concepts to implementing high performance programmable parsers. A ubiquitous parser IR facilitates a variety of front end methods to program a parser (PANDA-C, PANDA-Python, P4, etc.), as well as a variety of back end targets (eBPF, DPDK, kParser, hardware offloads, etc.). He’ll look at an example parser called “big-parser” that is a superset of Linux flow-dissector functionality. Starting with the PANDA-C code for big-parser he will show its compilation into its json IR, and then show how the IR can be compiled into kParser and optimized eBPF targets for running in the kernel. Finally he will provide performance evaluation of “big-parser” running versus Linux kernel flow-dissector (both native kernel flow-dissector and one written in eBPF).
More details at: https://netdevconf.info/0x16/session.html?High-Performance-Programmable-Pars...
cheers, jamal