Design Principles of Packet Parsers
- Separate parse graph and header extraction. It may be better to implement these two in different threads.
- 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.
- 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.
- Since we are implementing the software on 64-bit platforms, it is better to choose chunk size in header parser to be 64-bits.
- We are trying to implement non-streaming parser. So Kangaroo parsing system works as a better reference for implementation.
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)