IPv6 route lookup on Linux
TL;DR: With its implementation of IPv6 routing tables using radix trees, Linux offers subpar performance (450 ns for a full view — 40,000 routes) compared to IPv4 (50 ns for a full view — 500,000 routes) but fair memory usage (20 MiB for a full view).
In a previous article, we had a look at IPv4 route lookup on Linux. Let’s see how different IPv6 is.
Lookup trie implementation
Looking up a prefix in a routing table comes down to find the most specific entry matching the requested destination. A common structure for this task is the trie, a tree structure where each node has its parent as prefix.
With IPv4, Linux uses a level-compressed trie (or LPC-trie), providing good performances with low memory usage. For IPv6, Linux uses a more classic radix tree (or Patricia trie). There are three reasons for not sharing:
- The IPv6 implementation (introduced in Linux 2.1.8, 1996) predates the IPv4 implementation based on LPC-tries (in Linux 2.6.13, commit 19baf839ff4a).
- The feature set is different. Notably, IPv6 supports source-specific routing1 (since Linux 2. Continue reading
It’s using Dell, Nutanix, VMware, and CA Technologies.
CC BY 2.0
Image by
Unique governance model allows projects to set their own course.
Windstream has been offering BCN services via wholesale for over a decade.
MongoDB reportedly files for an IPO; ADVA completes acquisition of MRV Communications; Mirantis launches Kubernetes and Docker Bootcamp.
NetApp and Microsoft will reveal more details about their partnership later this year.