Use of Cuckoo Filters with FD.io VPP for Sofware IPv6 Routing
Lookup
Minseok Kwon
Rochester Institute of Technology
jmk@cs.rit.edu
Shailesh Vajpayee, Pragash
Vijayaragavan, Arjun Dhuliya
Rochester Institute of Technology
{srv6224,pxv3620,amd5300}@rit.edu
John Marshall
Cisco Systems, Inc.
jwm@cisco.com
ABSTRACT
The flter technologies, e.g., Bloom flters, have been used for IP
lookup for their compactness and efciency. We investigate the per-
formance of cuckoo flters with Cisco’s VPP (Vector Packet Process-
ing) for IP lookup. We also introduce a variant called a length-aware
cuckoo flter that treats incoming IP addresses discriminatively, and
study its performance with VPP. As proof-of-concept, we imple-
ment cuckoo flters with VPP, and test them on both functions and
performance with focus on the ip6-input node in VPP.
CCS CONCEPTS
· Networks → Network algorithms; Data path algorithms;
Packet classifcation;
KEYWORDS
IP lookup, cuckoo flters, packet forwarding, software routers
ACM Reference format:
Minseok Kwon, Shailesh Vajpayee, Pragash Vijayaragavan, Arjun Dhuliya,
and John Marshall. 2017. Use of Cuckoo Filters with FD.io VPP for Software
IPv6 Routing Lookup. In Proceedings of ACM SIGCOMM, Los Angeles, CA
USA, August 2017, 3 pages.
https://doi.org/10.1145/nnnnnnn.nnnnnnn
1 INTRODUCTION
For IP lookup, hashing with network prefxes as keys has widely
been used at network routers due to its extremely short search
time. With classless addressing, the challenge lies with fnding the
longest matching prefx. Tries [4] and flters, e.g., Bloom flters [3],
have been adopted to tackle these challenges. Recently, tries using
tree bitmap [2] have gained attention as they reduce search time
with simple bitwise operations, whereas flters require hashing,
which includes several bitwise operations, for multiple prefxes.
The flters are, however, tiny enough to ft in on-chip memory with
small memory footprint, and they allow parallel prefx matching
with easy table updates. Another related technique is Cisco’s VPP,
Vector Packet Processing [8], which processes a group of packets
together instead of individually to utilize CPU instruction cache
maximally to speed up the lookup. With the emergence of these
new techniques, one yet unanswered question is how the lookup
Permission to make digital or hard copies of part or all of this work for personal or
classroom use is granted without fee provided that copies are not made or distributed
for proft or commercial advantage and that copies bear this notice and the full citation
on the frst page. Copyrights for third-party components of this work must be honored.
For all other uses, contact the owner/author(s).
ACM SIGCOMM, August 2017, Los Angeles, CA USA
© 2017 Copyright held by the owner/author(s).
ACM ISBN 123-4567-24-567/08/06. . . $15.00
https://doi.org/10.1145/nnnnnnn.nnnnnnn
algorithms behave with VPP, more interestingly, in programmable
routers.
We focus on the flter techniques and their performance with
VPP. A cuckoo flter (CF) [7] provides set-membership testing based
on cuckoo hashing with low space requirement and false positive
rates [7]. We also propose a modifed cuckoo flter named a length-
aware cuckoo flter, LACF in short, that uses network prefx length
and its popularity to insert prefxes discriminatively [9]. The LACF
can further reduce false positive rates, enabling faster IP lookup
without additional storage requirement. We implement both the CF
and LACF using the VPP library that runs on Intel’s DPDK (Data
Plane Development Kit) adopted by FD.io (Fast data - Input/Output)
[8]. Our system is 100% software-based, fexible, and programmable,
making it easy to change the forwarding logic, but is still fast and
high-throughput. We are in the process of testing and evaluating
their performance on a simple network topology where one Cisco
UCS server that generates packets is connected to another that
serves as a router via 80Gbps Ethernet. Each server has Intel Xeon
E5-2640 v4 @ 2.40GHz, 10-core with Hyper-Threading, 64GB RAM,
1TB SSD, 40GE NICs, and Intel DKDP-installed.
This is the frst attempt to integrate cuckoo flters with VPP. We
will compare cuckoo flters plus VPP with trie-based technologies,
e.g., Poptrie [2], for IP lookup with respect to lookup and update
time, and memory usage. We also plan to investigate use of VPP
with P4 [6] for truly high-throughput software routers with user
programmability.
2 ARCHITECTURE AND IMPLEMENTATION
IP Routing Table
ethr-input
mpls-input
IPv4-input
IPv6-input
dpdk-input
Packet Processing Graph
Vector
packet1
packet2
packet3
packet4
packet5
packet6
packet7
packet8
packet9
Vector
Vector
On-Chip Memory
Filter
Off-Chip Memory
3-4 prefixes
All prefixes
Next
Hop
Figure 1: Architecture of the lookup engine with the flter
and VPP technologies.
Figure 1 gives a high-level view of our lookup engine with the
flter and VPP technologies. A vector of packets are frst passed to
the packet processing graph that identifes which packets they are,
e.g., IPv6 or MPLS, and then processes the packets accordingly. If a
packet turns out to be IPv6 (since our focus is on IPv6), the packet
is sent to the flter, either CF or LACF, for extracting and testing