400 Gb/s Programmable Packet Parsing on a Single FPGA

Packet parsing is necessary at all points in the modern networking infrastructure, to support packet classification and security functions, as well as for protocol implementation. Increasingly high line rates call for advanced hardware packet processing solutions, while increasing rates of change call for high-level programmability of these solutions. This paper presents an approach for harnessing modern Field Programmable Gate Array (FPGA) devices, which are a natural technology for implementing the necessary high-speed programmable packet processing. The paper introduces PP: a simple high-level language for describing packet parsing algorithms in an implementation-independent manner. It demonstrates that this language can be compiled to give high-speed FPGA-based packet parsers that can be integrated alongside other packet processing components to build network nodes. Compilation involves generating virtual processing architectures tailored to specific packet parsing requirements. Scalability of these architectures allows parsing at line rates from 1 to 400 Gb/s as required in different network contexts. Run-time programmability of these architectures allows dynamic updating of parsing algorithms during operation in the field. Implementation results show that programmable packet parsing of 600 million small packets per second can be supported on a single Xilinx Virtex-7 FPGA device handling a 400 Gb/s line rate.

[1]  Amin Vahdat,et al.  Chimpp: A Click-based programming and simulation environment for reconfigurable networking hardware , 2010, 2010 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[2]  Harrick M. Vin,et al.  Overcoming the memory wall in packet processing , 2005 .

[3]  Nick Feamster,et al.  SwitchBlade: a platform for rapid deployment of network protocols on programmable hardware , 2010, SIGCOMM '10.

[4]  Zhen Liu,et al.  Low power architecture for high speed packet classification , 2008, ANCS '08.

[5]  Tao Zhang,et al.  High throughput architecture for packet classification using FPGA , 2009, ANCS '09.

[6]  Eddie Kohler,et al.  The Click modular router , 1999, SOSP.

[7]  Andreas Herkersdorf,et al.  A folded pipeline network processor architecture for 100 Gbit/s networks , 2010, 2010 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[8]  Viktor K. Prasanna,et al.  Scalable high-throughput SRAM-based architecture for IP-lookup using FPGA , 2008, 2008 International Conference on Field Programmable Logic and Applications.

[9]  Jason Cong,et al.  A Comparative Study on the Architecture Templates for Dynamic Nested Loops , 2010, 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines.

[10]  Anand Rangarajan,et al.  Algorithms for advanced packet classification with ternary CAMs , 2005, SIGCOMM '05.

[11]  Jan Korenek,et al.  Packet header analysis and field extraction for multigigabit networks , 2009, 2009 12th International Symposium on Design and Diagnostics of Electronic Circuits & Systems.

[12]  T. N. Vijaykumar,et al.  EffiCuts: optimizing packet classification for memory and throughput , 2010, SIGCOMM '10.

[13]  George Varghese,et al.  Leaping Multiple Headers in a Single Bound: Wire-Speed Parsing Using the Kangaroo System , 2010, 2010 Proceedings IEEE INFOCOM.

[14]  Wladek Olesinski,et al.  Backlog Aware Low Complexity Schedulers for Input Queued Packet Switches , 2007 .

[15]  Ralph Duncan,et al.  packetC Language for High Performance Packet Processing , 2009, 2009 11th IEEE International Conference on High Performance Computing and Communications.

[16]  Tilman Wolf,et al.  Simplifying data path processing in next-generation routers , 2009, ANCS '09.

[17]  Michael K. Chen,et al.  Shangri-La: achieving high performance from compiled network applications while enabling ease of programming , 2005, PLDI '05.

[18]  Viktor K. Prasanna,et al.  A Memory-Balanced Linear Pipeline Architecture for Trie-based IP Lookup , 2007, 15th Annual IEEE Symposium on High-Performance Interconnects (HOTI 2007).

[19]  Yi Pan,et al.  PLUG: flexible lookup modules for rapid deployment of new protocols in high-speed routers , 2009, SIGCOMM '09.

[20]  Viktor K. Prasanna,et al.  High throughput and large capacity pipelined dynamic search tree on FPGA , 2010, FPGA '10.

[21]  Ioannis Sourdis,et al.  Range Tries for scalable address lookup , 2009, ANCS '09.

[22]  Douglas Comer,et al.  Network Systems Design Using Network Processors , 2003 .

[23]  Guido Appenzeller,et al.  Implementing an OpenFlow switch on the NetFPGA platform , 2008, ANCS '08.

[24]  Laxmi N. Bhuyan,et al.  Compiling PCRE to FPGA for accelerating SNORT IDS , 2007, ANCS '07.

[25]  Hyesook Lim,et al.  High-speed packet classification using binary search on length , 2007, ANCS '07.

[26]  Gordon J. Brebner Packets everywhere: The great opportunity for field programmable technology , 2009, 2009 International Conference on Field-Programmable Technology.