Adaptive development of hash functions in FPGA-based network routers

Accelerated network technologies are crucial for implementing packet processing in high-speed computer networks and therefore, network routers accelerated by field-programmable gate arrays (FPGAs) are becoming common. One of the time-critical jobs in routers is packet classification which requires rapid lookup in tables. Fast hash computation is a must in order to process the packets in time. Adaptive development of hash functions is proposed in this paper. The hash functions are based on non-linear feedback shift registers and configured by an evolutionary algorithm. The hash functions are developed inside of an FPGA-based network router and fine-tuned for the given table content. The experiments on the problem of hashing Internet Protocol (IP) addresses demonstrate that the evolved simple hash functions provide faster hash computation, better memory resource utilization and require smaller chip area in comparison with conventional hash functions. The best conventional hash function was able to store by a couple of hundred less IP addresses in a 8k hash table, the computation of hashes was by 42% slower, and the implementation required 15-times more hardware area.

[1]  Rasmus Pagh,et al.  Cuckoo Hashing , 2001, Encyclopedia of Algorithms.

[2]  Gordon J. Brebner,et al.  400 Gb/s Programmable Packet Parsing on a Single FPGA , 2011, 2011 ACM/IEEE Seventh Symposium on Architectures for Networking and Communications Systems.

[3]  Julian Francis Miller,et al.  Cartesian genetic programming , 2000, GECCO '10.

[4]  Marc Ebner,et al.  Evolvable Hardware , 2004, Künstliche Intell..

[5]  Jan Korenek,et al.  Evolution of Non-Cryptographic Hash Function Pairs for FPGA-Based Network Applications , 2015, 2015 IEEE Symposium Series on Computational Intelligence.

[6]  Elena Dubrova,et al.  A List of Maximum Period NLFSRs , 2012, IACR Cryptol. ePrint Arch..

[7]  Jirí Matousek,et al.  Fast lookup for dynamic packet filtering in FPGA , 2014, 17th International Symposium on Design and Diagnostics of Electronic Circuits & Systems.

[8]  Pedro Isasi Viñuela,et al.  AUTOMATIC DESIGN OF NONCRYPTOGRAPHIC HASH FUNCTIONS USING GENETIC PROGRAMMING , 2014, Comput. Intell..

[9]  Alan G. Konheim Hashing in Computer Science: Fifty Years of Slicing and Dicing , 2010 .

[10]  Hitoshi Iba,et al.  Evolvable hardware , 1994 .

[11]  Mustafa Safdari Evolving Universal Hash Functions Using Genetic Algorithms , 2009, 2009 International Conference on Future Computer and Communication.

[12]  Dirk Timmermann,et al.  Packet Classification with Evolvable Hardware Hash Functions - An Intrinsic Approach , 2006, BioADIT.

[13]  Jan Korenek,et al.  Software Defined Monitoring of application protocols , 2014, IEEE INFOCOM 2014 - IEEE Conference on Computer Communications.

[14]  David Martin,et al.  GEVOSH: Using Grammatical Evolution to Generate Hashing Functions , 2004, MAICS.