OpenFlow: Enabling Innovation in Campus Networks - CSIE -NCKU

Memory-Efficient IPv4/v6
Lookup on FPGAs Using
Distance-Bounded Path
Compression
Author: Hoang Le, Weirong Jiang and Viktor K. Prasanna
Publisher: IEEE International Symposium on Field-Programmable Custom Computing
Machines 2011
Presenter: Yu Hao, Tseng
Date: 2013/04/17
1
Outline
•
•
•
•
•
Introduction
Algorithm
Architecture on FPGA
Performance
Conclusion
2
Introduction
• The focus of this paper is on achieving significant reduction in
memory requirements for the longest prefix-match operation
needed in IPv4/v6 lookups.
3
Algorithm
• Definition Any node, for which the path from the root of the
trie to that node represents a prefix in the routing table, is
called a prefix-node (e.g. N1, N3).
4
Algorithm (Cont.)
• Definition A path connecting two nodes of a trie is called a
non-branching path if all the nodes along the path (except the
end node) have exactly one child-node (e.g. N4_N5,
N12_N13_N14).
5
Algorithm (Cont.)
• Definition The skip-string of each node is defined as the nonbranching path of its single child-node, if any. If the node has 2
children, its skip-string is empty (φ). The skip distance is
defined as the length of the skip-string.
6
Algorithm (Cont.)
• Definition Nodes with an empty skip-string are called singlenode. Otherwise, they are called super-node.
• Definition The memory footprint is defined as the size of the
memory required to store the entire routing table. The terms
storage, memory requirement, memory footprint, and storage
memory are used interchangeably in this paper.
7
Algorithm (Cont.)
• the skip-distance to be bounded
• the optimal maximum skip-distance D to be determined to
minimize the memory requirement
8
Algorithm (Cont.)
• Single-Prefix Distance-Bounded Path Compression (SP-DBPC)
• find the non-branching path P
• calculate the skip-distance d for the current node
• Let m denote the number of nodes following the current node on
path P that can be merged with the current node.
• The skip-string of the current node is updated.
• The child-nodes of the last merged node become the child-nodes
of the current node.
9
Algorithm (Cont.)
• Single-Prefix Distance-Bounded Path Compression (SP-DBPC)
•
•
•
•
•
•
N: the total number of nodes.
A: the size of one child pointer in each node
D: the maximum skip-distance.
H: the size of the next hop information.
M: the total memory requirement.
LP : the maximum prefix length
10
Algorithm (Cont.)
• Single-Prefix Distance-Bounded Path Compression (SP-DBPC)
• 2 child pointers, skip-string, length of actual skip-string, position
of prefix bit and next hop information
• Total memory requirement
• 𝑀𝑆𝑃 = 𝑁𝑆𝑃 × (2𝐴 + 𝐷 + 2 log 𝐷 + 𝐻)
• restrict the prefix bit to only be at the end of the skip-string, then each
node needs not to store the position of the prefix bit
• 𝑀𝑆𝑃 = 𝑁𝑆𝑃 × (2𝐴 + 𝐷 + log 𝐷 + 𝐻)
11
Algorithm (Cont.)
• Single-Prefix Distance-Bounded Path Compression (SP-DBPC)
12
Algorithm (Cont.)
• Search in a SP-DBPC trie
1.
2.
3.
The skip-string and its skip-distance d are extracted. If d = 0,
skip to Step 3.
The skip-string is compared with the next d bits of the IP
address. If there is no match and the current node is not a
prefix-node, then the search is terminated. Otherwise, the next
hop information is updated and the search is terminated.
If the current node is a prefix-node, then the next hop
information is updated and the IP address is left-shifted by (d+1)
positions. If a leaf-node is reached, then the search is terminated;
otherwise, go back to Step 1.
13
Algorithm (Cont.)
• Multiple-Prefix Distance-Bounded Path Compression (MPDBPC)
14
Algorithm (Cont.)
• Multiple-Prefix Distance-Bounded Path Compression (MPDBPC)
15
Algorithm (Cont.)
• Multiple-Prefix Distance-Bounded Path Compression (MPDBPC)
• 2 child pointers, skip-string, length of actual skip-string, position
of prefix bit and next hop information
• Total memory requirement
• 𝑀𝑀𝑃 = 𝑁𝑀𝑃 × (2𝐴 + 𝐷 + (𝑛𝑝 + 1) log 𝐷 + 𝑛𝑝 𝐻)
• restrict the prefix bit to only be at the end of the skip-string, then each
node needs not to store the position of the prefix bit
• 𝑀𝑀𝑃 = 𝑁𝑀𝑃 × (2𝐴 + 𝐷 + 𝑛𝑝 log 𝐷 + 𝑛𝑝 𝐻)
• a bit-vector B of length D can also be used to keep track of the
position of the prefix bit(s) in the skip-string
• 𝑀′ 𝑀𝑃 = (2𝐴 + 2𝐷 + log 𝐷 + 𝑛𝑝 𝐻)
16
Algorithm (Cont.)
• Search in a MP-DBPC trie
• IP lookup in a MP-DBPC trie is identical to that in the SP-DBPC
trie.
• The only difference is in Step 3, where all the prefixes stored at
the node are checked for a match.
17
Architecture on FPGA
18
Performance
19
Performance (Cont.)
20
Performance (Cont.)
21
Conclusion
1. fast internet link rates up to and beyond 100 Gbps at core
routers
2. increase in routing table size at the rate of 25-50K prefixes
per year
3. increase in the length of the prefixes from 32 to 128 bits in
IPv6
4. compact memory footprint that can fit in the on-chip caches
of multi-core and network processors
5. reduction in per-virtual-router storage memory of network
virtual routers
22