Microprocessors and Microsystems 71 (2019) 102877 Contents lists available at ScienceDirect Microprocessors and Microsystems journal homepage: www.elsevier.com/locate/micpro Hardware accelerator for FIB lookup in named data networking Weiwen Yu, Derek Pao Electrical Engineering Department, City University of Hong Kong, 83 Tat Chee Avenue, Kowloon, Hong Kong, China a r t i c l e i n f o Article history: Received 2 May 2018 Revised 13 March 2019 Accepted 22 August 2019 Available online 23 August 2019 a b s t r a c t Packets are identified by names in Named Data Networking (NDN). Names in NDN are hierarchically struc- tured, and are consisted of one or more components. Packet forwarding in NDN router involves the matching of name prefixes using the component-based longest prefix match. Unlike fixed-length IP ad- dress, names can have variable-length and can be fairly long with over 100 bytes. Moreover, size of the forwarding information base (FIB) in NDN can be much larger than the IP forwarding table. Memory requirements, I/O bottleneck, and incremental updates to the FIB are the major concerns in the design of hardware FIB lookup engine. An offset-based lookup table organization is employed to optimize the memory spaces of the lookup tables. Name components are inputted to the lookup engine on-demand in order to reduce the I/O requirements. The proposed method allows incremental updates to the data structures without interrupting the on-going lookup operations. For proof of concept, our method is im- plemented on a virtex-7 FPGA, and the lookup engine can achieve 98.6 million searches per second. © 2019 Elsevier B.V. All rights reserved. 1. Introduction Named Data Networking (NDN) [1,2] is a new network ar- chitecture proposed by the computer network community to address the emerging communication needs. Contents on the network are named. Names are hierarchically structured, and are consisted of one or more components. For exam- ple, a video produced by a publisher may have the name /publisherName/video/category/title.mpg with 4 components separated by the ‘/’ characters. The ‘/’ character is not part of the name. It is shown in the text to enhance read- ability. In the packet header, each component is represented using the type-value-length format. There is no restriction on the number of components in a name, and a component can have arbitrary length. The video file may be further divided into a number of segments (data chunks) that fits into a data packet, and each segment is identified by a segment num- ber, e.g., the segment number 3 of the file may be named /publisherName/video/category/title.mpg/3. Data packets in NDN are uniquely identified by names. This fea- ture allows a NDN router to cache the data packets in its local storage called the Content Store (CS). The cached data packets can be reused to satisfied future requests. Communications in NDN are initiated by the receivers. A user wishing to retrieve a given con- tent sends out an Interest packet (a request) to a NDN router. The Corresponding author. E-mail address: d.pao@cityu.edu.hk (D. Pao). Interest packet carries the name that identifies the desired data unit, e.g., a segment of a video file. When the NDN router receives an Interest packet from an interface (called a face in the NDN ter- minology), the router will perform the following actions: The router checks its CS to see if the requested data packet is already available. If the data packet can be found, then the data packet will be sent out along the face where the Interest packet is received. If the requested data packet is not available in the CS, the router searches the Pending Interest Table (PIT) to see if the processing of the request for the same data packet is already in-progress. If the data packet name is found in the PIT, the given face will be added to the list of faces associated with the packet name. If the packet name is not found in the PIT, a new entry for the packet name will be added to the PIT. The router will then look up the Forwarding Information Base (FIB) to determine the next-hop for the given Interest packet. The lookup operation in the FIB is a component-based longest prefix match (LPM). A response to the Interest packet (i.e. a Data packet) will be generated when (i) the Interest packet reaches the source of the requested data; or (ii) the requested data packet can be found in the CS of a NDN router on the path towards the data source. On receiving a Data packet, the NDN router will perform the following actions: The router looks up its PIT. If a matching name is found, the data packet will be sent along the list of faces obtained from https://doi.org/10.1016/j.micpro.2019.102877 0141-9331/© 2019 Elsevier B.V. All rights reserved.