Ruler: High-Speed Packet Matching and Rewriting
- n
Network Processors
Tomáš Hrubý Kees van Reeuwijk Herbert Bos
Vrije Universiteit, Amsterdam World45 Ltd.
ANCS 2007
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 1 / 20
Ruler: High-Speed Packet Matching and Rewriting on Network - - PowerPoint PPT Presentation
Ruler: High-Speed Packet Matching and Rewriting on Network Processors Tom Hrub Kees van Reeuwijk Herbert Bos Vrije Universiteit, Amsterdam World45 Ltd. ANCS 2007 Tom Hrub (VU Amsterdam, World45) Ruler on NPUs December 3, 2007
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 1 / 20
Motivation
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 2 / 20
Motivation
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 3 / 20
Motivation
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 4 / 20
Ruler The language
◮ accept <number> ◮ reject ◮ rewrite pattern (e.g., header 0#4 tail)
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 5 / 20
Ruler The language
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 6 / 20
Ruler The implementation
{ 00 } 2 { 01 } 2 {00 } 3 42 { 00 } 3 { 01 } 3 { 01 } 4
42 42
2 4 5 6 7 8 1 3
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 7 / 20
Network processors Intel IXP2xxx
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 8 / 20
Network processors Intel IXP2xxx
◮ number of available cycles ◮ exact memory latency ◮ no speculative execution or caching
◮ PHY integrated into the chip ◮ hashing units ◮ crypto units ◮ CAM ◮ fast queues Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 9 / 20
The implementation Intel IXP2xxx
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 10 / 20
The implementation Intel IXP2xxx
◮ Naive ◮ Binary tree with default branch promotion Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 11 / 20
The implementation Intel IXP2xxx
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 12 / 20
The implementation Intel IXP2xxx
alu[--, act_char, -, 47] blt[STATE_20#] alu[--, act_char, -, 120] bge[STATE_20#] br=byte[act_char, 0, 47, STATE_24#] br=byte[act_char, 0, 110, STATE_26#] br=byte[act_char, 0, 112, STATE_23#] br=byte[act_char, 0, 115, STATE_33#] br=byte[act_char, 0, 117, STATE_22#] br=byte[act_char, 0, 119, STATE_21#] br[STATE_20#]
alu[-, act_char, -, 47] blt[STATE_20#] br_bclr[act_char, 5, STATE_20#] br_bclr[act_char, 0, BIT_BIN_33_31#] br_bset[act_char, 2, BIT_BIN_33_32#] br[STATE_20#] BIT_BIN_33_32#: br_bclr[act_char, 1, BIT_BIN_33_33#] br_bset[act_char, 3, BIT_BIN_33_34#] br_bset[act_char, 4, BIT_BIN_33_35#] br[STATE_20#] BIT_BIN_33_35#: ...
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 13 / 20
The implementation Intel IXP2xxx
alu[--, act_char, -, 47] blt[STATE_20#] alu[--, act_char, -, 120] bge[STATE_20#] br=byte[act_char, 0, 47, STATE_24#] br=byte[act_char, 0, 110, STATE_26#] br=byte[act_char, 0, 112, STATE_23#] br=byte[act_char, 0, 115, STATE_33#] br=byte[act_char, 0, 117, STATE_22#] br=byte[act_char, 0, 119, STATE_21#] br[STATE_20#]
alu[-, act_char, -, 47] blt[STATE_20#] br_bclr[act_char, 5, STATE_20#] br_bclr[act_char, 0, BIT_BIN_33_31#] br_bset[act_char, 2, BIT_BIN_33_32#] br[STATE_20#] BIT_BIN_33_32#: br_bclr[act_char, 1, BIT_BIN_33_33#] br_bset[act_char, 3, BIT_BIN_33_34#] br_bset[act_char, 4, BIT_BIN_33_35#] br[STATE_20#] BIT_BIN_33_35#: ...
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 13 / 20
The implementation Intel IXP2xxx
Simplified DFA, loop edges are missing Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 14 / 20
The implementation Intel IXP2xxx
Simplified DFA, loop edges are missing Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 14 / 20
The implementation Intel IXP2xxx
Simplified DFA, loop edges are missing Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 14 / 20
The implementation Intel IXP2xxx
Simplified DFA, loop edges are missing Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 14 / 20
The implementation Intel IXP2xxx
Simplified DFA, loop edges are missing Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 14 / 20
Evaluation Intel IXP2xxx
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 15 / 20
Evaluation Intel IXP2xxx
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 16 / 20
Evaluation Intel IXP2xxx
531.9 Mbit/s 751.2 Mbit/s 962.1 Mbit/s 990.8 Mbit/s # of MEs
backdoor large
payload
null Percentage of dropped (not processed) packets 10 20 30 40 50 60 70 80 90 1 2 3 4 5 6 drop% number of MEs Large 64B 96B 546B 1518B Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 17 / 20
Evaluation Intel IXP2xxx
531.9 Mbit/s 751.2 Mbit/s 962.1 Mbit/s 990.8 Mbit/s # of MEs
anon
anonhdr 55 18
829.0 Mbit/s
10 20 30 40 50 60 70 1 2 3 4 5 6 drop% number of MEs Anonym 64B 96B 546B 1518B Percentage of dropped (not processed) packets Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 18 / 20
Summary
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 19 / 20
Tomáš Hrubý (VU Amsterdam, World45) Ruler on NPUs December 3, 2007 20 / 20