Hash Table Design and Optimization for Software Virtual Switches
Yipeng Wang, Sameh Gobriel, Ren Wang, Tsung-Yuan Charlie Tai, Cristian Dumitrescu · 2018
Flow classification is a common first step in various virtual network functions (VNFs), Software Defined Networking (SDN) applications, as well as network infrastructure components including virtual switches and routers. Software flow classification often employs hash table based lookup mechanisms, where a key constructed from an input packet is looked up across the different rules stored in the table and the corresponding action (e.g., forward, encapsulate, etc.) is retrieved. In this paper we analyze, in depth, various hash table design options and optimizations used in the state-of-the-art virtual switches, and how hardware resources impact the performance. Based on the understanding, we summarize the pros and cons of different designs, and provide insights toward further optimizations. The understanding gained through our analysis also sheds lights on how to design optimal hash tables for flow classification for various use cases.