  A perennial question in computer networks is where to place functionality
among components of a distributed computer system. In data centers, one option
is to move all intelligence to the edge, essentially relegating switches and
middleboxes, regardless of their programmability, to simple static routing
policies. Another is to add more intelligence to the middle of the network in
the hopes that it can handle any issue that arises.
  This paper presents an architecture, called Volur, that provides a third
option by facilitating the co-existence of an intelligent network with an
intelligent edge. The key architectural principle of Volur is predictability of
the network. We describe the key design requirements, and show through case
studies how our approach facilitates more democratic innovation of all parts of
the network. We also demonstrate the practicality of our architecture by
describing how to implement the architecture on top of existing hardware and by
deploying a prototype on top of a large production data center.
