~/talk

Programming Network Stack for Middleboxes with Rubik

Talkat NSDI ’21 · 2021-04-12..04-14· [networking, compilers-and-language-design]
name:Hao Li
links:none on file
links:none on file
links:none on file
links:none on file
links:none on file
name:Tian Pan
links:none on file
links:none on file
slides:none on file

Rubik is a Python-based DSL plus compiler that generates optimized C network stacks for middleboxes, using a domain-specific IR to cluster and eliminate redundant packet-processing logic and enable fast paths. Authors implement 12 real protocol stacks and claim 250 lines for a TCP/IP stack, 2 orders magnitude less code compared to hand-written versions, and performance gains of 30%+ throughput with some stacks hitting 100 Gbps.

AI-written summary · about

  1. 0:00Start
  2. 0:30Middleboxes are indispensable
  3. 1:06Components of a Middlebox
  4. 1:32Coding Efforts for Each Component
  5. 2:03Reduce Coding Efforts in Network Stack
  6. 2:28Diverse Stack Implementation
  7. 3:26A Seemingly Generalized Workflow
  8. 4:37Challenges of Designing a DSL for Middlebox Stack
  9. 5:59Introducing Rubik
  10. 6:28A Walk-through Example
  11. 6:40Write an IP parser with Rubik
  12. 7:31Compose ETH-IP/ARP Stack
  13. 8:05A Domain-Specific Compiler
  14. 8:26Intermediate Representation for IP Parser
  15. 8:50Optimize a Fast Path Automatically
  16. 10:06Domain-Specific Optimizations
  17. 10:29Case Study: Parsers
  18. 10:40Case Study: Stacks
  19. 10:55Performance Evaluation: Other Stacks
  20. 11:07Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.