We describe a method to use hardware-assisted hash tables for CCNx routing on variable length names. Hardware-assisted hash tables typically have fixed key and fixed result sizes, with performance knees at specific cutoffs, such as 32 bytes or 64 bytes for combined key and result sizes. CCNx names, like a URI, use a variable number of path segments, where each segment may be of variable length. The method presented here uses a combination of standard hash lookups plus compressed key hash lookups to handle path segments that exceed the maximum fixed key size. We present results based on an EzChip NP-4 network processor. This paper presents three main results. Based on analysis of a Stanford WebBase trace, we find the first and second order statistics for URLs which clearly shows that including application state (i.e. a Query String) in the name significantly bloats the name. Second, we analyze NP4 performance using several software-based hash functions to compress long CCNx Name components. Third, we present a design for the EzChip NP4 network processor to forward CCNx interest packets. We show the feasibility of the approach based on assumptions from the URL analysis. We estimate the forwarding scheme will achieve 37 Mpps on a single 100 Gbps EzChip NP4 and be able to store 5.6 million forwarding table entries in 2 GB of RAM.
Mosko, M. A Content-Centric Networking Forwarding Design for a Network Processor. Next Generation Networking, ICC 2015.