Skip to content

Packet Parsers

Prasad Talasila edited this page Mar 20, 2017 · 3 revisions

Notes from

Design Principles of Packet Parsers

  1. Separate parse graph and header extraction. It may be better to implement these two in different threads.
  2. It is preferable to perform all header extraction in one thread. Theoretically, it is possible to pipeline parse graph implementation with threads, but we have to be careful about the synchronization costs.
  3. Programmable parser is a better choice for implementation on Java platform. Refer to Algos 1-2; Figs 4,7-8 of the paper for details on programmable parsers.
  4. Since we are implementing the software on 64-bit platforms, it is better to choose chunk size in header parser to be 64-bits.
  5. We are trying to implement non-streaming parser. So Kangaroo parsing system works as a better reference for implementation.


  1. Bosshart, P., Daly, D., Gibb, G., Izzard, M., McKeown, N., Rexford, J., Schlesinger, C., Talayco, D., Vahdat, A., Varghese, G. and Walker, D., 2014. P4: Programming protocol-independent packet processors. ACM SIGCOMM Computer Communication Review, 44(3), pp.87-95. (configuration and parsing language)
  2. Gibb, G., Varghese, G., Horowitz, M. and McKeown, N., 2013, October. Design principles for packet parsers. In Architectures for Networking and Communications Systems (ANCS), 2013 ACM/IEEE Symposium on (pp. 13-24). IEEE. (design principles for programmable parsers)
  3. Kozanitis, C., Huber, J., Singh, S. and Varghese, G., 2010, March. Leaping multiple headers in a single bound: wire-speed parsing using the Kangaroo system. In INFOCOM, 2010 Proceedings IEEE (pp. 1-9). IEEE. (non-streaming header parsing algorithm)
  4. Attig, M. and Brebner, G., 2011, October. 400 gb/s programmable packet parsing on a single fpga. In Proceedings of the 2011 ACM/IEEE Seventh Symposium on Architectures for Networking and Communications Systems (pp. 12-23). IEEE Computer Society. (header parsing language)
  5. Sailesh Kumar. 2008. A Thesis on Acceleration of Network Processing Algorithms. Ph.D. Dissertation. Washington University, St. Louis, MO, USA. Advisor(s) Jonathan S. Turner and Patrick Crowley. AAI3316639. (fast-path and slow-path explanation)
  6. Begel, A., McCanne, S. and Graham, S.L., 1999, August. BPF+: Exploiting global data-flow optimization in a generalized packet filter architecture. In ACM SIGCOMM Computer Communication Review (Vol. 29, No. 4, pp. 123-134). ACM. (BPF architecture)
  7. McCanne, S. and Jacobson, V., 1993, January. The BSD packet filter: A new architecture for user-level packet capture. In Proceedings of the USENIX Winter 1993 Conference Proceedings on USENIX Winter 1993 Conference Proceedings (pp. 2-2). USENIX Association. (BPF architecture)
Clone this wiki locally
You can’t perform that action at this time.