llers have been used to scale other network applications (e.g., mobility [103]), not on the centralized TE problem. In the presence of recursive abstractions, it is 4.6 SDN Traffic Engineering not straightforward to have the LP-based hierarchical TE generate feasible results, and efficiently and highly utilize network resources. For the same reason, enforcing TE results with minimal forwarding states in the data plane is challenging. 4.6.1 TE Architecture and Solution Overview Consider a software-defined ISP network consisting of thousands of programmables switches distributed throughout a large geographical area (continent or country). In this network, many flows are generated between access switches (from home routers or peering points). Considering the ISP size, a global, optimal flow optimization can be very slow in practice (easily taking hours) and can lead to tremendous forwarding states. Our goal is to design a scalable control and data plane TE solution for the ISP networks that can simultaneously reduce the TE time (to orders of seconds) and shrink forwarding tables. We begin with an overview on the architecture, its design challenges, and our solutions. 4.6.1.1 Hierarchical Control Structure For TE scalability, we build a hierarchical control logic for the net- work to break the global TE problem into smaller pieces. As shown in Figure 4.16a, our TE control logic consists of a set of TE control nodes (cNode) organized in a logical tree structure. The root cNode (e.g., cN7) is at the top and leaf cNodes (e.g., cN1-4) are at the bot- tom. Each cNode is a piece of software and solves a small part of the global TE problem. To benefit from locality, cNodes can be distributed among PoPs close to the switches. To systematically distribute the TE load and states (i.e., variables, constraints) among cNodes, we recur- sively and automatically construct an abstract region for each of them: the TE framework partitions the physical data plane (level 1) into a set of logical TE regions (e.g., regions 1-4) based on f