izations (e.g., [99, 104]). For TE scalability, SdnTE exposes a partial and 4 Software-Defined Networks Principles and Applications abstract region to each cNode and distribute flows among regions. The design of SdnTE can easily lead to inefficient and infeasible paths and bandwidth allocations when TE is recursively computed from the root. Recursively, when a cNode learns its parent flows engineered over the abstract hSwitch, it locally makes TE decisions to distribute them in its region. Challenge #2 - efficient TE enforcement without direct data plane control: In the flat SDN, the TE application can easily enforce the TE results by establishing tunnels for each flow between its endpoints. In SdnTE, there is no cNode with full visibility and control on all switches. In fact, multiple cNodes might make partial TE decisions on flows recursively. Mappings partial TE results in regions to the physical data plane without full topology visibility is not only challenging but also can cause tremendous forward- ing states (switch rules or packet instructions) in the physical data plane. In SDN, the TE application has full control over the data plane switches, it can implement TE results by programming switches with tunnels (e.g., MPLS tunnels) for scalability (e.g., [97, 99]). In SdnTE, when the TE is computed from the root, multiple cNodes might make partial TE decisions on the same flow from its source to sink. Each cNode splits it into multiple tunnels, allocates bandwidth on them, and then programs its local hSwitches. In SdnTE, scalable mappings of partial tunnels in logical regions to the physical data plane without global topology visibility is challenging. Unfortunately, existing solutions either lead to high header over- head and throughput loss (e.g., label stacking in PNNI [101] and HSDN [105]), or result in the flow table explosion in SDN switches (e.g., label swapping in SoftMoW [103]). 4.6.3 TE Solution Overview In response to the above issues, we enhance SdnTE with two set of procedures propagating necess