scenario 2: upon new tenant flow request, install a load-balanced, safe route balance load scenario 1: Upon link failure, re route orchestrated updates: re route via (172, 38) motivation Anduo Wang Brighten Godfrey Matthew Caesar (University of Illinois Urbana-Champaign) Ravel: Orchestrating Software-Defined Networks shortest path … path - … {…,172,39,156,…} + … {…,172,38,148,…} configuration fid sid nid - … 172 39 - … 39 156 + … 172 38 + … 38 148 topology sid nid active - 172 39 1 + 172 39 0 Mininet link (172,39) down check broken path, re-route add_flow del_flow link down base view shortest path configuration topology Ravel design Ravel components - users: control program embedded with SQL query and update - views abstraction: created, queried, and updated by the applications - programmable: derived SQL view - open: SQL view is readily available to others without re-compilation - base tables: store network state, hides hardware detail, fast network access and update Ravel services - vertical orchestration - synchronize derived views and their source views / tables - enables network control via view update - horizontal orchestration - a priority-based data-sharing protocol that coordinates view updates - allows applications act autonomously while living in harmony Ravel takes the entire SDN network under the hood of a standard SQL database Mininet + POX base tables operation notification events control view view view - SDN network is collectively driven by many applications - the applications interact - applications collaborate, e.g., access control and routing - applications conflict, e.g., access control and load balancer - existing solution unsatisfying - require a master program that coordinates the dynamics base view configuration traffic matrix tenant policy access control shortest path load balancer add_flow del_flow verify new tenant request 3 2 1 orchestrated updates: install alternative route that is load-balanced and safe load balancer sid load + 1003 4 1034 1 UPDATE lb SET load = 3 WHERE load = 4; shortest path … src dst path + … 1238 1034 {1238,…,1034} access control src dst allow + 1238 1034 1 tenant policy … host server - … 1238 1003 + … 1238 1034 tenant requests host 1238 to server 1003 traffic matrix fid sid nid + … 1238 1034 tenant policy … host server + … 1238 1003 load balancer sid load u 1003 3 u 1034 2 configuration fid sid nid + … … 1034 3 2 1 compute path