Packet Transactions: High-level Programming for Line-Rate Switches
Sivaraman, Anirudh · Budiu, Mihai · Cheung, Alvin · Kim, Changhoon · Licking, Steve · Varghese, George · Balakrishnan, Hari · Alizadeh, Mohammad · McKeown, Nick
الأصل · EN
Many algorithms for congestion control, scheduling, network measurement, active queue management, security, and load balancing require custom processing of packets as they traverse the data plane of a network switch. To run at line rate, these data-plane algorithms must be in hardware. With today's switch hardware, algorithms cannot be changed, nor new algorithms installed, after a switch has been built. This paper shows how to program data-plane algorithms in a high-level language and compile those programs into low-level microcode that can run on emerging programmable line-rate switching chipsets. The key challenge is that these algorithms create and modify algorithmic state. The key idea to achieve line-rate programmability for stateful algorithms is the notion of a packet transaction: a sequential code block that is atomic and isolated from other such code blocks. We have developed this idea in Domino, a C-like imperative language to express data-plane algorithms. We show with many examples that Domino provides a convenient and natural way to express sophisticated data-plane algorithms, and show that these algorithms can be run at line rate with modest estimated die-area overhead.
الترجمة العربية
لا توجد ترجمة عربية لهذا البحث بعد. كن أوّل من يطلبها: تستغرق ثوانيَ معدودة، وتُحفظ النتيجة لكل قارئ قادم.