Abstract—Next generation Internet requires processing rich and flexible flow information in the network infrastructure. Rapid growth in network traffic results in major challenge to support flexible flow matching at line rate. Most of the existing work focuses on functionality rather than performance, and simply adopts either power-hungry TCAM or performanceindeterministic hashing. This paper exploits the abundant parallelism and other desirable features provided by state-ofthe-art FPGAs, and proposes a parallel architecture, named decision forest, for high-performance flexible flow matching. We develop a framework to partition a given table of flexible flow rules into multiple subsets each of which is built into a depthbounded decision tree. The partitioning scheme is carefully designed to reduce rule duplication during the construction of the decision trees. Thus the overall memory requirement is significantly reduced. After such partitioning, the number of header fields used to build the decision tree for each rule subset is small. This leads to reduction in logic resource requirement. Exploiting the dual-port RAMs available in current FPGAs, we map each decision tree onto a linear pipeline to achieve high throughput. Our extensive experiments and FPGA implementation demonstrate the effectiveness of our scheme. Our design supports 1K flexible flow rules while sustaining 40 Gbps throughput for matching minimum size (40 bytes) packets. To the best of our knowledge, this is the first FPGA design for flexible flow matching to achieve over 10 Gbps. Keywords-flexible flow matching; FPGA; OpenFlow; I
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.