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.