NetBricks: Taking the V out of NFV
Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, Scott Shenker UC Berkeley, Google, ICSI
NetBricks: Taking the V out of NFV Aurojit Panda, Sangjin Han, Keon - - PowerPoint PPT Presentation
NetBricks: Taking the V out of NFV Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, Scott Shenker UC Berkeley, Google, ICSI What the heck is NFV? A Short Introduction to NFV A Short Introduction to NFV Firewall IDS
Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, Scott Shenker UC Berkeley, Google, ICSI
Firewall IDS Cache LB
Firewall IDS Cache LB
NIC NIC ... Memory Isolation Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
NIC NIC ... Memory Isolation Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
NIC NIC ... Memory Isolation ✔ Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
NIC NIC ... Memory Isolation ✔ Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
NIC NIC ... Memory Isolation ✔ Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
NIC NIC ... Memory Isolation ✔ Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
NIC NIC ... Memory Isolation ✔ Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
NIC NIC ... Memory Isolation ✔ Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
NIC NIC ... Memory Isolation ✔ Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
Copy
NIC NIC ... Memory Isolation ✔ Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
Copy
NIC NIC ... Memory Isolation ✔ Performance Packet Isolation vSwitch
VM/Container VM/Container VM/Container
Copy
NIC NIC ... Memory Isolation ✔ Performance Packet Isolation ✔ vSwitch
VM/Container VM/Container VM/Container
Copy
NIC NIC ... Memory Isolation ✔ Performance
Packet Isolation ✔ vSwitch
VM/Container VM/Container VM/Container
Copy
NF A NF B NF C NF D NF X NF X NF Y NF Z NF A NF B NF C NF D NF X NF Y NF Z ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O NICs Poll for I/O NF Y NF Z NF A NF B NF C NF D Single Process Space
NF A NF B NF C NF D NF X NF X NF Y NF Z NF A NF B NF C NF D NF X NF Y NF Z ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O NICs Poll for I/O Function Call NF Y NF Z NF A NF B NF C NF D Single Process Space
NF A NF B NF C NF D NF X NF X NF Y NF Z NF A NF B NF C NF D NF X NF Y NF Z ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O NICs Poll for I/O NF Y NF Z NF A NF B NF C NF D Single Process Space
NF A NF B NF C NF D NF X NF X NF Y NF Z NF A NF B NF C NF D NF X NF Y NF Z ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O NICs Poll for I/O NF Y NF Z Run to Completion Scheduling NF A NF B NF C NF D Single Process Space
NF A NF B NF C NF D NF X NF X NF Y NF Z NF A NF B NF C NF D NF X NF Y NF Z ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O NICs Poll for I/O NF Y NF Z Run to Completion Scheduling NF A NF B NF C NF D Single Process Space
Packet Processing Abstractions Parse/Deparse Parse (or undo parsing for) a header from the packet. Transform Operate on the packet header and payload. Filter Drop packet whose header or payload meet some criterion. Byte Stream Processing Abstractions Window Use a sliding window to gather packet payload and call a function. Packetize Segment a byte array into a sequence of packets, Control Flow Group By Branch control flow between abstractions. Shuffle Shuffle packets across processing cores. Merge Merge control from branches. State Abstractions Bounded Consistency State State store with tunable consistency specification. Schedulabe Abstractions Invoke Periodically execute a function.
Input
Core 1 Core 2 Core 3 Core 4
Output Demux Counter
Counters
+ + + + Mux Spread packets across cores for scaling
Input
Core 1 Core 2 Core 3 Core 4
Output Demux Counter
Counters
+ + + + Mux Spread packets across cores for scaling Might even use hardware for this.
Managing NFs Building and Running NFs
E2 (SOSP’15) Stratos FTMB (SIGCOMM ’15) FlowTags (NSDI ’14) Managing NFs Building and Running NFs
E2 (SOSP’15) Stratos FTMB (SIGCOMM ’15) FlowTags (NSDI ’14) Managing NFs Building and Running NFs xOMB (ANCS’12) CoMB (NSDI’12) No Isolation
E2 (SOSP’15) Stratos FTMB (SIGCOMM ’15) FlowTags (NSDI ’14) Managing NFs Building and Running NFs xOMB (ANCS’12) CoMB (NSDI’12) No Isolation NetVM (IEEE TNSM) ClickOS (NSDI’14) HyperSwitch (ATC’13) mSwitch (SOSR’15) VM Isolation
E2 (SOSP’15) Stratos FTMB (SIGCOMM ’15) FlowTags (NSDI ’14) Managing NFs Building and Running NFs xOMB (ANCS’12) CoMB (NSDI’12) No Isolation NetVM (IEEE TNSM) ClickOS (NSDI’14) HyperSwitch (ATC’13) mSwitch (SOSR’15) VM Isolation No Packet Isol.
Code available at http://netbricks.io/