Programming the Forwarding Plane Nick ¡McKeown ¡ Stanford ¡University ¡ ¡
Programming the Forwarding Plane “Why is there a blackbox in my whitebox?” Nick ¡McKeown ¡ Stanford ¡University ¡ ¡
OCP: ¡Wedge ¡switch ¡(open-‑source ¡design) ¡ Switch ¡chip! ¡ 3 ¡
2014: ¡The ¡bare-‑metal ¡switch ¡ Feature ¡ Feature ¡ Feature ¡ Code ¡ Code ¡ Code ¡ Control ¡Plane ¡ Linux ¡
Now ¡I ¡can ¡tailor ¡my ¡network ¡to ¡meet ¡my ¡needs! ¡ I ¡can…. ¡ 1. Quickly ¡deploy ¡new ¡protocols. ¡ ¡ 2. See ¡what ¡my ¡forwarding ¡plane ¡is ¡doing. ¡ 3. Put ¡expensive ¡middlebox ¡funcSons ¡into ¡the ¡network. ¡ 4. Try ¡out ¡beauSful ¡new ¡ideas. ¡Tailor ¡my ¡network ¡to ¡meet ¡my ¡needs. ¡ 5. DifferenSate. ¡Now ¡I ¡own ¡my ¡intellectual ¡property. ¡
“BeauSful ¡ideas” ¡ 1. Deploy ¡new ¡protocols ¡and ¡new ¡headers ¡ 2. Simplify ¡the ¡data ¡plane. ¡Throw ¡out ¡unused ¡protocols. ¡ 3. Reallocate ¡resources ¡in ¡switches: ¡tables, ¡packet ¡buffers, ¡etc. ¡ 4. Add ¡new ¡telemetry ¡for ¡debugging ¡and ¡diagnosScs ¡ 5. Verify ¡network ¡behavior ¡ 6. Embed ¡“middlebox” ¡funcSons ¡into ¡the ¡network: ¡load-‑balancing, ¡gateways ¡ and ¡firewalls. ¡ 7. In-‑network ¡congesSon ¡control ¡ 8. New ¡rouSng ¡ ¡and ¡reliability ¡algorithms ¡ 9. … ¡
Tailoring ¡my ¡network ¡switches ¡today ¡ New ¡Feature ¡ Feature ¡ Feature ¡ Feature ¡ Code ¡ Code ¡ Code ¡ Code ¡ Control ¡Plane ¡ Linux ¡ Driver ¡
Can ¡the ¡CPU ¡forward ¡all ¡my ¡packets? ¡
Packet ¡Forwarding ¡Speeds ¡ 100000 3.2Tb/s ¡ 10000 Switch Chip CPU 1000 Gb/s ¡ 100 (per ¡chip) ¡ 10 1 0.1 1990 1995 2000 2005 2010 2015 2020 9 ¡
Packet ¡Forwarding ¡Speeds ¡ 100000 3.2Tb/s ¡ 10000 Switch Chip CPU 1000 50x ¡ Gb/s ¡ 100 (per ¡chip) ¡ 10 1 0.1 1990 1995 2000 2005 2010 2015 2020 10 ¡
ConvenSonal ¡Wisdom: ¡ ¡ “Programmable ¡devices ¡are ¡10-‑100x ¡slower. ¡ They ¡consume ¡much ¡more ¡power ¡and ¡area.” ¡
Wedge ¡ Whitebox ¡CPU ¡ Blackbox ¡switch ¡ 12 ¡
My ¡whitebox ¡switch ¡ ¡ has ¡a ¡blackbox ¡switch ¡inside ¡
Domain ¡Specific ¡Processors ¡ Signal ¡ Graphics ¡ Processing ¡ ApplicaSons ¡ My ¡renderer ¡ ApplicaSons ¡ My ¡codec ¡ Compiler ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Compiler ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ DSP ¡ GPU ¡
ConvenSonal ¡wisdom ¡said: ¡programmability ¡too ¡expensive ¡ ¡ Then, ¡someone ¡idenSfied: ¡ 1. The ¡right ¡model ¡for ¡data-‑parallelism ¡ 2. Basic ¡underlying ¡processing ¡primiSves ¡ ¡ Domain-‑specific ¡processors ¡were ¡built ¡ Domain-‑specific ¡languages, ¡compilers ¡and ¡tool-‑chains ¡ ¡
Fixed ¡Func*on ¡ Broadcom ¡Tomahawk: ¡3.2 ¡Tb/s ¡ Programmable ¡ Cavium ¡Xpliant: ¡3.2 ¡Tb/s ¡ 16 ¡
2010: ¡Why ¡can’t ¡we ¡do ¡the ¡same ¡in ¡networking? ¡ The ¡“match ¡+ ¡acSon ¡pipeline” ¡was ¡emerging ¡ 1. Suggests ¡a ¡good ¡model ¡for ¡data ¡parallelism ¡ 2. Suggests ¡a ¡set ¡of ¡basic ¡ plumbing ¡primi+ves ¡ ¡ We ¡would ¡need ¡a ¡domain-‑specific ¡chip ¡ We ¡would ¡need ¡a ¡domain-‑specific ¡language, ¡compilers ¡and ¡tool ¡chains ¡
Can ¡we ¡design ¡a ¡protocol-‑independent ¡switch ¡chip? ¡ ¡ If ¡so, ¡how ¡expensive ¡is ¡the ¡programmability? ¡
First ¡ajempt: ¡Stanford ¡+ ¡Texas ¡Instruments ¡ [Sigcomm ¡2013] ¡ • Protocol ¡independent ¡switch ¡chip ¡ • Small ¡primiSve ¡acSon ¡set ¡– ¡about ¡6 ¡primiSves ¡ • Huge ¡parallelism ¡possible ¡ • 10-‑15% ¡chip ¡area ¡and ¡power ¡penalty ¡
This ¡led ¡to ¡a ¡more ¡general ¡architecture… ¡
PISA: ¡Protocol ¡Independent ¡Switch ¡Architecture ¡ Match ¡ AcSon ¡ Memory ¡ ALU ¡ ¡Programmable ¡ Parser ¡ 21 ¡
PISA: ¡Protocol ¡Independent ¡Switch ¡Architecture ¡ Match ¡ AcSon ¡ Memory ¡ ALU ¡ ¡Programmable ¡ Parser ¡ 22 ¡
Why ¡now? ¡
Switching ¡Chip ¡Area ¡ Serial ¡ Serial ¡ Serial ¡ Serial ¡ Serial ¡ Serial ¡ Serial ¡ Serial ¡ I/O ¡ I/O ¡ I/O ¡ I/O ¡ I/O ¡ I/O ¡ I/O ¡ I/O ¡ Serial ¡ Serial ¡ I/O ¡ I/O ¡ Parser ¡ Serial ¡ Serial ¡ I/O ¡ I/O ¡ Serial ¡ Serial ¡ I/O ¡ I/O ¡ Serial ¡ Serial ¡ Serial ¡ Serial ¡ Serial ¡ Serial ¡ Serial ¡ Serial ¡ I/O ¡ I/O ¡ I/O ¡ I/O ¡ I/O ¡ I/O ¡ I/O ¡ I/O ¡
Switching ¡Chip ¡Area ¡ 40% ¡Serial ¡I/O ¡ ¡ ¡ ¡ ¡ ¡ 10% ¡Wire ¡ Wire ¡ ¡ ¡ ¡ 40% ¡Memory ¡ ¡ ¡ ¡ ¡ 10% ¡Logic ¡ ¡ Logic ¡ ¡ ¡ ¡ ¡ ¡ ¡
2013: ¡programmability ¡cost ¡10-‑15% ¡increase ¡in ¡area/power ¡ ¡ By ¡2018: ¡Difference ¡will ¡be ¡negligible ¡
We ¡need ¡to ¡be ¡able ¡to ¡program ¡PISA ¡devices ¡
Recommend
More recommend