Historically, the evolution of network routers was driven primarily by performance. Recently, owing to the need for better control over network operations and the constant demand for new features, programmability of routers has become as important as performance.
However, today's fastest routers, which run at line rate, use fixed-function hardware, which cannot be modified after deployment. I will describe two router primitives we have developed to build programmable routers at line rate. The first is a programmable packet scheduler. The second is a way to execute stateful packet-processing algorithms to manage network resources. Together, these primitives allow us to program several packet-processing functions at line rate, such as in-network congestion control, active queue management, data-plane load balancing, network measurement, and packet scheduling.
This talk is based on joint work with collaborators at MIT, Barefoot Networks, Cisco Systems, Microsoft Research, Stanford University, and the University of Washington.
See more on this video at https://www.microsoft.com/en-us/research/video/making-fastest-routers-programmable/