Programming Distributed Control Planes
Ryan Beckett, Ratul Mahajan, Jitendra Padhye, Todd D. Millstein, David P. Walker · 2017
We describe Propane, a system that consists of a language for specifying the end-to-end routing policy for a network and a compiler for implementing the policy by generating a collection of device configurations for the BGP routing protocol that run on unmodified vendor hardware. Propane allows operators to describe their policy through high-level constraints on both the shape and preference of paths for different types of traffic. Constraints can describe paths both through the user's network, as well as through other networks that are not under the user's control. When Propane compiles a policy, the resulting BGP configurations are guaranteed to correctly implement the centralized policy in a distributed fashion -- without any centralized coordination and regardless of any number of network failures.