actors defined by the ISP (e.g., traffic patterns). Each leaf region is assigned to a leaf cNode that constructs an abstract view of its region and then presents it to its parent. Then each level-2 cNode (e.g., cN5-6) fetches its logical region topology from the children, and then abstracts it for its parent. Recur- sively, the process creates increasingly more simplified topologies until the root cNode (e.g., CN7) forms its abstract region. In this process, each cNode hides the detailed topology of its region and constructs a single switch for its parent called SdnTE Switch (hSwitch). A hSwitch 4 Software-Defined Networks Principles and Applications Parent cNode Abstraction Optimization TE enforcer App (AbsApp) App (OptApp) App (EnfApp) Basic services (b) Control node (cNode) design Region 7 Region 5 Region 6 Region 1 Region 2 Region 3 Region 4 Control nodes (cNodes) HiRE/physical switch a) Hierarchical control logic structure Figure 4.16 SdnTE network architecture. is a new software abstraction over a physical/logical switch topology. In Figure 4.16, switches in region 2 are abstracted as hSwitch HS2 in region 5. hSwitch ports are logical, each corresponding to one or more border switch ports in the constituent physical topology. 4.6.1.2 Control Node Design The software architecture of cNodes are illustrated in Figure 4.16 that consists of three applications: Abstraction App (AbsApp), Flow optimization App (OptApp), and TE enforcer App (EnfApp). AbsApp is responsible for communicating with the parent cNode by building and through the abstract hSwitch. TEOpt makes local TE decisions for flows appearing in its region. Although SdnTE is flexible to support different TE techniques (e.g., greedy, linear, and nonlinear), we focus on a designing multipath flow optimization using LP: TEOpt iteratively collects flow requests in the next interval from its region 4.6 SDN Traffic Engineering (i.e., set <source, sink, volume)s), and takes constraints, and objective function as other inputs. Then, it determines multiple path