Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

22
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

description

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. Outline. - PowerPoint PPT Presentation

Transcript of Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Page 1: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Memory-Efficient IPv4/v6 Lookup on FPGAs UsingDistance-Bounded Path CompressionAuthor: 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

Page 2: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Outline

• Introduction• Algorithm• Architecture on FPGA• Performance• Conclusion

2

Page 3: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

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

Page 4: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

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

Page 5: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

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

Page 6: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Algorithm (Cont.)

• Definition The skip-string of each node is defined as the non-branching 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

Page 7: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Algorithm (Cont.)

• Definition Nodes with an empty skip-string are called single-node. 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

Page 8: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Algorithm (Cont.)

• the skip-distance to be bounded• the optimal maximum skip-distance D to be determined to

minimize the memory requirement

8

Page 9: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

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

Page 10: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

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

Page 11: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

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

• 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

11

Page 12: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Algorithm (Cont.)

• Single-Prefix Distance-Bounded Path Compression (SP-DBPC)

12

Page 13: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Algorithm (Cont.)

• Search in a SP-DBPC trie1. The skip-string and its skip-distance d are extracted. If d = 0,

skip to Step 3.

2. 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.

3. 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

Page 14: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Algorithm (Cont.)

• Multiple-Prefix Distance-Bounded Path Compression (MP-DBPC)

14

Page 15: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Algorithm (Cont.)

• Multiple-Prefix Distance-Bounded Path Compression (MP-DBPC)

15

Page 16: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Algorithm (Cont.)

• Multiple-Prefix Distance-Bounded Path Compression (MP-DBPC)• 2 child pointers, skip-string, length of actual skip-string,

position of prefix bit and next hop information• Total memory requirement

• 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

• 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

16

Page 17: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

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

Page 18: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Architecture on FPGA

18

Page 19: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Performance

19

Page 20: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Performance (Cont.)

20

Page 21: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Performance (Cont.)

21

Page 22: Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

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