a concise forwarding information base
play

A Concise Forwarding Information Base for Scalable and Fast Name - PowerPoint PPT Presentation

A Concise Forwarding Information Base for Scalable and Fast Name Switching Chen Qian University of Kentucky University of California Santa Cruz with Ye Yu, Djamal Belazzougui, Qin Zhang Forwarding Information Base (FIB) A data structure


  1. A Concise Forwarding Information Base for Scalable and Fast Name Switching Chen Qian University of Kentucky University of California Santa Cruz with Ye Yu, Djamal Belazzougui, Qin Zhang

  2. Forwarding Information Base (FIB) A data structure (typically a table) in a network device to determine forwarding actions Output: Input: FWD action destination FIB To dest 2

  3. Names vs. IP addresses (most) Names are flat, permanent, and location-independent Flexible network services for mobile devices and VMs: routing, firewall, VPN, etc. Flow IDs (Packet headers) can also be considered as names. Biggest problem: FIB explosion 3

  4. Examples of network names Enterprise and data center networks:  SEATTLE [ SIGCOMM’08 ], VIRO [ Infocom’11 ], ROME [ ICNP’12 ] Future Internet Architecture (FIA)  Layered Naming Architecture [ SIGCOMM’04 ], AIP [ SIGCOMM’08 ]  NSF FIA projects: NDN, XIA, MobilityFirst LTE access network [SIGCOMM’15] 4

  5. New FIB design: Concise 1. Use the least memory ever  Fast memory is expensive and power-hungry.  Only 10% - 30% of Cuckoo [CoNEXT’13, SIGCOMM’15] 2. Fast query speed ever  2x to 5x advantage 3. Update speed slower than some FIBs  Still support millions of updates per second. 5

  6. Idea of Concise SDN Controller Update via existing SDN API Construct Update FIB Query Optimize memory and query cost 6

  7. Concise functions Classify n names into d different sets. Each set is a forwarding action Relying on a data structure Othello 7

  8. A new data structure Othello Classifies names to two sets 𝑌 and 𝑍  Based on MWHC perfect hashing, which is static Query result  𝜐 𝑙 = 0  𝑙 ∈ 𝑌  𝜐 𝑙 = 1  𝑙 ∈ 𝑍 8

  9. Othello Query Structure Two bitmaps 𝑏, 𝑐 with size 𝑛 ( 𝑛 in (1.42𝑜, 2.86𝑜) ) ℎ 𝑏 ■ 𝑏 1 0 0 Query is easy. Then how to construct it? 𝑐 0 1 1 1 ℎ 𝑐 ■ 𝑛 bits 𝜐 ■ = 0 ⊕ 1 = 1 ■ is in set Y 9

  10. Othello Control Structure: Construct 𝐻 : acyclic bipartite graph ℎ 𝑏 𝑙 ℎ 𝑏 (𝑙) ℎ 𝑐 (𝑙) 𝑏 ■ 6 5 𝒗 𝟏 𝒗 𝟐 𝒗 𝟑 𝒗 𝟒 𝒗 𝟓 𝒗 𝟔 𝒗 𝟕 𝒗 𝟖 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒘 𝟒 𝒘 𝟓 𝒘 𝟔 𝒘 𝟕 𝒘 𝟖 𝑐 ℎ 𝑐 10

  11. Othello Construct ℎ 𝑏 If finding a cycle, use another pair 𝑙 ℎ 𝑏 (𝑙) ℎ 𝑐 (𝑙) 𝑏 < h a , h b > until an acyclic graph is built ■ 6 5 𝒗 𝟏 𝒗 𝟐 𝒗 𝟑 𝒗 𝟒 𝒗 𝟓 𝒗 𝟔 𝒗 𝟕 𝒗 𝟖 ■ 1 0 ■ 1 2 For n names, the time to find G is 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒘 𝟒 𝒘 𝟓 𝒘 𝟔 𝒘 𝟕 𝒘 𝟖 ■ 1 3 O ( n ). ■ 𝑐 4 2 ℎ 𝑐 11

  12. Compute Bitmap 𝑙 ℎ 𝑏 (𝑙) ℎ 𝑐 (𝑙) set 𝑏 1 ■ 6 5 Y 𝒗 𝟏 𝒗 𝟐 𝒗 𝟑 𝒗 𝟒 𝒗 𝟓 𝒗 𝟔 𝒗 𝟕 𝒗 𝟖 ■ 1 0 ■ 1 2 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒘 𝟒 𝒘 𝟓 𝒘 𝟔 𝒘 𝟕 𝒘 𝟖 ■ 1 3 ■ 𝑐 4 2 0 12

  13. Compute Bitmap 𝑙 ℎ 𝑏 (𝑙) ℎ 𝑐 (𝑙) set 𝑏 0 1 1 ■ 6 5 Y 𝒗 𝟏 𝒗 𝟐 𝒗 𝟑 𝒗 𝟒 𝒗 𝟓 𝒗 𝟔 𝒗 𝟕 𝒗 𝟖 ■ 1 0 X ■ 1 2 Y 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒘 𝟒 𝒘 𝟓 𝒘 𝟔 𝒘 𝟕 𝒘 𝟖 ■ 1 3 X ■ 𝑐 4 2 X 1 0 1 0 If G is acyclic, easy to find a coloring plan 13

  14. Name Addition – color flip ℎ 𝑏 𝑙 ℎ 𝑏 (𝑙) ℎ 𝑐 (𝑙) set 𝑏 0 0 1 1 ■ 6 5 Y 𝒗 𝟏 𝒗 𝟐 𝒗 𝟑 𝒗 𝟒 𝒗 𝟓 𝒗 𝟔 𝒗 𝟕 𝒗 𝟖 ■ 1 0 X ■ 1 2 Y ■ 1 3 X 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒘 𝟒 𝒘 𝟓 𝒘 𝟔 𝒘 𝟕 𝒘 𝟖 ■ 4 2 X 𝑐 1 0 1 0 1 ■ 6 3 Y ℎ 𝑐 If G is acyclic, flipping is trivial 14

  15. Concise functionality Classifies names into 2 𝑚 sets: 𝑎 0 , 𝑎 1 , ⋯ , 𝑎 2 𝑚 −1 ■ 𝑎 2 ■ ■ l Othellos can classify names to 2 l sets ■ ■ 𝑎 0 ■ ■ ■ ■ ■ 𝑌 1 ■ 𝑎 3 ■ ■ ■ l < 8 for network devices ■ 𝑍 𝑎 1 𝑍 1 𝑌 2 2 15

  16. 𝑏 1 𝑏 2 1 0 1 0 1 0 𝒗 𝟏 𝒗 𝟐 𝒗 𝟑 𝒗 𝟒 𝒗 𝟓 𝒗 𝟔 𝒗 𝟕 𝒗 𝟖 𝒗 𝟏 𝒗 𝟐 𝒗 𝟑 𝒗 𝟒 𝒗 𝟓 𝒗 𝟔 𝒗 𝟕 𝒗 𝟖 Same G , h a , h b . Different coloring plan and bitmaps 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒘 𝟒 𝒘 𝟓 𝒘 𝟔 𝒘 𝟕 𝒘 𝟖 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒘 𝟒 𝒘 𝟓 𝒘 𝟔 𝒘 𝟕 𝒘 𝟖 Do we need 2 l memory reads to 𝑐 1 𝑐 2 1 1 0 1 0 1 0 1 0 1 query l Othellos? Othello 1 Othello 2 Same X U Y 16

  17. 𝐵[0]𝐵[1] ℎ 𝑏 𝐵 𝑏 1 𝑏 2 1 0 1 0 1 0 𝒗 𝟏 𝒗 𝟐 𝒗 𝟑 𝒗 𝟒 𝒗 𝟓 𝒗 𝟔 𝒗 𝟕 𝒗 𝟖 𝒗 𝟏 𝒗 𝟐 𝒗 𝟑 𝒗 𝟒 𝒗 𝟓 𝒗 𝟔 𝒗 𝟕 𝒗 𝟖 𝜐 𝑙 = 01 ⊕ 10 = 11 2 k is in set Z 3 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒘 𝟒 𝒘 𝟓 𝒘 𝟔 𝒘 𝟕 𝒘 𝟖 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒘 𝟒 𝒘 𝟓 𝒘 𝟔 𝒘 𝟕 𝒘 𝟖 𝑐 1 𝑐 2 1 1 0 1 0 1 0 1 0 1 𝐶 CPUs can read l bits at one time ℎ 𝑐 Othello 1 Othello 2 17

  18. Implementation of three prototypes 1. Memory mode  Query and control structures running on different threads. 2. CLICK modular router 3. Intel Data Plane Development Kit (DPDK) 18

  19. Comparison: best solutions in the literature Buffalo in CoNEXT’09 Cuckoo hashing in CoNEXT’13 and SIGCOMM’15 19

  20. Comparison: Memory size FIB Example Memory Size # Names # Actions Concise Name Type Cuckoo Buffalo 7*10 5 MAC (48 bits) 16 1M 5.62M 2.64M MAC (48 bits) 5*10 6 256 16M 40.15M 27.70M MAC (48 bits) 3*10 7 256 128M 321.23M 166.23M 1*10 6 IPv4 (32 bits) 16 2M 4.27M 3.77M IPv6 (128 bits) 2*10 6 256 8M 34.13M 11.08M OpenFlow (356 bits) 3*10 5 256 1M 14.46M 1.67M OpenFlow (356 bits) 1.4*10 6 65536 8M 67.46M 18.21M File name (varied) 359194 16 512K 19.32M 1.35M 20

  21. Query speed 2x to 4x speed advantage 21

  22. Update Each update is a network-wide update 22

  23. More possible applications of Concise Essentially a key-value mapping 1. Memory cache 2. Support query to distributed content storage 3. Sparse vector data processing 23

  24. Thank You Questions?

Recommend


More recommend