Multilayer Packet Classification With Graphics Processing Units
The rapid growth of server virtualization has ignited a wide adoption of software based virtual switches, with significant interest in speeding up their performance. In a similar trend, software defined networking (SDN) with its strong reliance on rule based flow classification, has also created renewed interest in multi dimensional packet classification. However, despite these recent advances, the performance of current software based packet classifiers is still limited, mostly by the low parallelism of general purpose CPUs. In this paper, we explore how to accelerate packet classification using the high parallelism and latency hiding capabilities of graphic processing units (GPUs) We implement GPU accelerated versions for both linear and tuple search, currently deployed in virtual switches, and also introduce a novel algorithm called Bloom search. These algorithms are integrated with high speed packet I/O to build GSwitch, a GPU accelerated software switch, and also to extend Open vSwitch. Our experimental evaluation indicates that, under realistic rule sets, GSwitch is at least 7 x faster than an equally priced CPU classifier. We also show that our GPU accelerated Open vSwitch outperforms the classic Open vSwitch implementation by a factor of 10, on average.
IEEE/ACM Transactions on Networking