  Software-defined networking (SDN) can enable diverse network management
applications such as traffic engineering, service chaining, network function
outsourcing, and topology reconfiguration. Realizing the benefits of SDN for
these applications, however, entails addressing complex network optimizations
that are central to these problems. Unfortunately, such optimization problems
require significant manual effort and expertise to express and non-trivial
computation and/or carefully crafted heuristics to solve. Our vision is to
simplify the deployment of SDN applications using general high-level
abstractions for capturing optimization requirements from which we can
efficiently generate optimal solutions. To this end, we present SOL, a
framework that demonstrates that it is indeed possible to simultaneously
achieve generality and efficiency. The insight underlying SOL is that SDN
applications can be recast within a unifying path-based optimization
abstraction, from which it efficiently generates near-optimal solutions, and
device configurations to implement those solutions. We illustrate the
generality of SOL by prototyping diverse and new applications. We show that SOL
simplifies the development of SDN-based network optimization applications and
provides comparable or better scalability than custom optimization solutions.
