TY - GEN
T1 - Programming network stack for middleboxes with rubik
AU - Li, Hao
AU - Wu, Changhao
AU - Sun, Guangda
AU - Zhang, Peng
AU - Shan, Danfeng
AU - Pan, Tian
AU - Hu, Chengchen
N1 - Publisher Copyright:
© 2021 by The USENIX Association.
PY - 2021
Y1 - 2021
N2 - Middleboxes are becoming indispensable in modern networks. However, programming the network stack of middleboxes to support emerging transport protocols and flexible stack hierarchy is still a daunting task. To this end, we propose Rubik, a language that greatly facilitates the task of middlebox stack programming. Different from existing hand-written approaches, Rubik offers various high-level constructs for relieving the operators from dealing with massive native code, so that they can focus on specifying their processing intents. We show that using Rubik one can program the middlebox stack with minor effort, e.g., 250 lines of code for a complete TCP/IP stack, which is a reduction of 2 orders of magnitude compared to the hand-written versions. To maintain a high performance, we conduct extensive optimizations at the middle- and back-end of the compiler. Experiments show that the stacks generated by Rubik outperform the mature hand-written stacks by at least 30% in throughput.
AB - Middleboxes are becoming indispensable in modern networks. However, programming the network stack of middleboxes to support emerging transport protocols and flexible stack hierarchy is still a daunting task. To this end, we propose Rubik, a language that greatly facilitates the task of middlebox stack programming. Different from existing hand-written approaches, Rubik offers various high-level constructs for relieving the operators from dealing with massive native code, so that they can focus on specifying their processing intents. We show that using Rubik one can program the middlebox stack with minor effort, e.g., 250 lines of code for a complete TCP/IP stack, which is a reduction of 2 orders of magnitude compared to the hand-written versions. To maintain a high performance, we conduct extensive optimizations at the middle- and back-end of the compiler. Experiments show that the stacks generated by Rubik outperform the mature hand-written stacks by at least 30% in throughput.
UR - https://www.scopus.com/pages/publications/85106201439
M3 - 会议稿件
AN - SCOPUS:85106201439
T3 - Proceedings of the 18th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2021
SP - 551
EP - 564
BT - Proceedings of the 18th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2021
PB - USENIX Association
T2 - 18th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2021
Y2 - 12 April 2021 through 14 April 2021
ER -