Elastic Tree:
Energy Efficient SDN

Team-16

Objective of the Project

  •  To come up with an energy-saving scheme to be implemented within data centers at the same time, not compromising on performance. 

 

  • To implement the scheme in Software Defined Network and investigate the energy savings.

 

  • Look at the prospects of ML(HODMD in particular) to anticipate spikes in traffic and prepare network beforehand.

DataCenter Networks and the Need for Green Computing

  • Data centers are typically provisioned for peak workload, and run well below capacity most of the time, and traffic can be satisfied by a subset of the network links.
  • fixed overheads such as fans switch chips, and transceivers waste power at low loads.
  • energy consumption of data center devices increases very slightly with the rise of the workload.
    This is why turning off a switch is more beneficial than to limit its use (for example turning off
    some ports).

DataCenter Networks and the Need for Green Computing

  1. If the amount of unused links is large enough, then some switches can be turned off. The concept of ElasticTree starts with this observation.
  2. The main idea is to monitor data center traffic in order to optimize the set of network
    elements that must stay active to meet performance and fault tolerance goals.

Architecture

Why onOS as Controller ?

 

  1. scalability of large scale fat networks
  2. visualization of links
  3. has capacity to provide north bound network functions

 

FAT-Tree Architechture

We go for Fat tree Topology since it is a mesh like topology which  has more paths  

The effect of individual component failure is manageable (Fault Tolerent)

Fat Tree Topology

Each Layer has same aggregated bandwidth

Can be Built with cheap devices with uniform capacity

FAT-Tree Architechture

K-ary FAT Tree

Ex. 4-ary FAT Tree

  • Each Pod consists of (k/2)^2 servers

Pod 1

Pod 2

Pod 3

Pod 4

FAT-Tree Architechture

K-ary FAT Tree

Ex. 4-ary FAT Tree

  • Each Pod consists of (k/2)^2 servers

Pod 1

Pod 2

Pod 3

Pod 4

  • Three Layer Architecture: Edge, Aggregation, Core

FAT-Tree Architechture

K-ary FAT Tree

Ex. 4-ary FAT Tree

  • Each Pod consists of (k/2)^2 servers and 2 layers of k/2 k-port switches
  • Three Layer Architecture: Edge, Aggregation, Core
  • Each Edge Switch Connects to k/2 servers and k/2 aggregation switches

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

FAT-Tree Architechture

K-ary FAT Tree

Ex. 4-ary FAT Tree

  • Each Pod consists of (k/2)^2 servers and 2 layers of k/2 k-port switches
  • Three Layer Architecture: Edge, Aggregation, Core
  • Each Edge Switch Connects to k/2 servers and k/2 aggregation switches

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

  • Each Aggregation Switch Connects to k/2 edge and k/2 core switches.

Elastic-Tree Architechture

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

Optimizer

Traffic Matrix

Topology

Subset

Subset

Power Controll

Routing

Fat-Tree Architecture: Addressing

 Adress follows: 10.p.e.h

p: pod
e: edge switch
h: host

Fat-Tree Architecture: Routing

  1.  In order to have a single path between every pair of hosts and optimally use multiple paths present in the topology, default paths are pushed when the network start-up.
  2. The idea is to distribute paths between hosts to maximize the bandwidth available for host-to-host’s traffic.
     A default path is composed of a set of flow rules to enable the connexion between two hosts

Fat-Tree Architecture: Routing

Match IP OUT PORT PRIORITY
IP Dest 10.1.2.0/24 1 4
IP Dest 10.1.1.0/24 2 4
IP Src 10.1.2.0/24 4 3
IP Src 10.1.1.0/24 3 3

Elastic-Tree Architecture: Routing

  1. When traffic is running in the network, the optimizer module collects traffic statistics in order to compute the minimal number of switches needed to satisfy the demand.
  2. Then the forwarding module generates a new set of default paths based on the subset of devices received.
  3. After removing the previous default paths, we compute paths and update flow tables as shown in the previous slide. (The only thing that varies is the number of aggregation and core switches available.)

Elastic-Tree Architechture

Optimizer

Traffic Matrix

Topology

Subset

Subset

Power Control

Routing

Elastic-Tree Architechture

Optimizer

Topo Aware Heuristic 

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

  • For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

  • For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
  • "View" of every edge switch is the same.. all see the same number of aggregation switches above

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

  • For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
  • "View" of every edge switch is the same.. all see the same number of aggregation switches above

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

  • For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
  • "View" of every edge switch is the same.. all see the same number of aggregation switches above

2Gbps

Suppose most active trafic is 2Gbps

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

  • For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
  • "View" of every edge switch is the same.. all see the same number of aggregation switches above

2Gbps

Suppose most active trafic is 2Gbps

It suffices if ANY TWO Aggregation switches are active. Dosent matter which

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

  • For a particular demand, the edge switch doesn't care Which Aggregation switches are active, but How Many are active...
  • "View" of every edge switch is the same.. all see the same number of aggregation switches above

2Gbps

Suppose most active trafic is 2Gbps

It suffices if ANY TWO Aggregation switches are active. Dosent matter which

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

2Gbps

For each edge switch e, in pod p, Calculate minimum number of links required to support uptraffic

LEdge^{up}_{p,e}

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

2Gbps

For each edge switch e, in pod p, Calculate minimum number of links required to support uptraffic

LEdge^{up}_{p,e}
+
=

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

2Gbps

For each edge switch e, in pod p, Calculate minimum number of links required to support uptraffic

LEdge^{up}_{p,e}
+
=
\lceil
\rceil
=

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

For each edge switch e, in pod p, Calculate minimum number of links required to support uptraffic

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

2Gbps

For each edge switch e, in pod p, Calculate minimum number of links required to support downtraffic

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil

Similarly for Down Traffic,

LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

2Gbps

The minimum number of links required for edge switch e to support the total traffic is the maximum of these..

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

2Gbps

Now, we calculate the minimum number of active links required from pod p to core  to support up traffic

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

2Gbps

Now, we calculate the minimum number of active links required from pod p to core  to support up traffic

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

2Gbps

Minimum number of links required to connect pod p to core is maximum of these

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil
LAgg_{p} = max\left ( LAgg^{up}_{p} , LAgg^{down}_{p} , 1 \right )

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

 compute the minimum number of aggregation switches required to satisfy up-traffic (edge → agg) in pod p:

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil
LAgg_{p} = max\left ( LAgg^{up}_{p} , LAgg^{down}_{p} , 1 \right )
LEdge^{up}_{1,1}
LEdge^{up}_{1,2}
LEdge^{up}_{2,1}
LEdge^{up}_{2,2}
LEdge^{up}_{3,1}
LEdge^{up}_{3,2}
LEdge^{up}_{4,1}
LEdge^{up}_{4,2}

Max

Max

Max

Max

NAgg_p^{up}

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

 compute the minimum number of aggregation switches required to satisfy up-traffic (edge → agg) in pod p:

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil
LAgg_{p} = max\left ( LAgg^{up}_{p} , LAgg^{down}_{p} , 1 \right )
LEdge^{up}_{1,1}
LEdge^{up}_{1,2}
LEdge^{up}_{2,1}
LEdge^{up}_{2,2}
LEdge^{up}_{3,1}
LEdge^{up}_{3,2}
LEdge^{up}_{4,1}
LEdge^{up}_{4,2}

Max

Max

Max

Max

NAgg_p^{up}
NAgg_p^{up} = \max_{e \in E_p} \left \{ LEdge^{up}_{p,e} \right\}

FAT-Tree Architechture

Topo-Aware Heuristic

 compute the minimum number of aggregation switches required to satisfy down-traffic (core → agg) in pod p:

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil
LAgg_{p} = max\left ( LAgg^{up}_{p} , LAgg^{down}_{p} , 1 \right )
NAgg_p^{up} = \max_{e \in E_p} \left \{ LEdge^{up}_{p,e} \right\}

Aggr

LAgg^{down}_{1}
LAgg^{down}_{2}
LAgg^{down}_{3}
LAgg^{down}_{4}

FAT-Tree Architechture

Topo-Aware Heuristic

 compute the minimum number of aggregation switches required to satisfy down-traffic (core → agg) in pod p:

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil
LAgg_{p} = max\left ( LAgg^{up}_{p} , LAgg^{down}_{p} , 1 \right )
NAgg_p^{up} = \max_{e \in E_p} \left \{ LEdge^{up}_{p,e} \right\}

Aggr

LAgg^{down}_{1}
LAgg^{down}_{2}
LAgg^{down}_{3}
LAgg^{down}_{4}
\lceil \frac{LAgg}{k/2}\rceil
\lceil \frac{LAgg}{k/2}\rceil
\lceil \frac{LAgg}{k/2}\rceil
\lceil \frac{LAgg}{k/2}\rceil
NAgg_p^{down}
\frac{k}{2}\rightarrow \text{Number of switches per pod for k-ary fat tree}

FAT-Tree Architechture

Topo-Aware Heuristic

 compute the minimum number of aggregation switches required to satisfy down-traffic (core → agg) in pod p:

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil
LAgg_{p} = max\left ( LAgg^{up}_{p} , LAgg^{down}_{p} , 1 \right )
NAgg_p^{up} = \max_{e \in E_p} \left \{ LEdge^{up}_{p,e} \right\}

Aggr

LAgg^{down}_{1}
LAgg^{down}_{2}
LAgg^{down}_{3}
LAgg^{down}_{4}
\lceil \frac{LAgg}{k/2}\rceil
\lceil \frac{LAgg}{k/2}\rceil
\lceil \frac{LAgg}{k/2}\rceil
\lceil \frac{LAgg}{k/2}\rceil
NAgg_p^{down}
\frac{k}{2}\rightarrow \text{Number of switches per pod for k-ary fat tree}

  the minimum number of aggregation switches required to satisfy traffic in pod p is hence:

FAT-Tree Architechture

Topo-Aware Heuristic

 compute the minimum number of aggregation switches required to satisfy down-traffic (core → agg) in pod p:

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil
LAgg_{p} = max\left ( LAgg^{up}_{p} , LAgg^{down}_{p} , 1 \right )
NAgg_p^{up} = \max_{e \in E_p} \left \{ LEdge^{up}_{p,e} \right\}

Aggr

LAgg^{down}_{1}
LAgg^{down}_{2}
LAgg^{down}_{3}
LAgg^{down}_{4}
\lceil \frac{LAgg}{k/2}\rceil
\lceil \frac{LAgg}{k/2}\rceil
\lceil \frac{LAgg}{k/2}\rceil
\lceil \frac{LAgg}{k/2}\rceil
NAgg_p^{down}
\frac{k}{2}\rightarrow \text{Number of switches per pod for k-ary fat tree}

  the minimum number of aggregation switches required to satisfy traffic in pod p is hence:

NAgg_p = \max\{NAgg_p^{up}, NAgg_p^{down},1\}

FAT-Tree Architechture

Topo-Aware Heuristic

 compute the minimum number of core switches that caters to maximum traffic from aggregation

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil
LAgg_{p} = max\left ( LAgg^{up}_{p} , LAgg^{down}_{p} , 1 \right )
NAgg_p^{up} = \max_{e \in E_p} \left \{ LEdge^{up}_{p,e} \right\}

Aggr

 The traffic between the core and the most active pod informs the number of core switches that must be active to satisfy the traffic demands

NCore = \max_{p \in P}\{LAgg^{up}_p\}

FAT-Tree Architechture

Topo-Aware Heuristic

 compute the minimum number of core switches that caters to maximum traffic from aggregation

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil
LAgg_{p} = max\left ( LAgg^{up}_{p} , LAgg^{down}_{p} , 1 \right )
NAgg_p^{up} = \max_{e \in E_p} \left \{ LEdge^{up}_{p,e} \right\}

Aggr

 The traffic between the core and the most active pod informs the number of core switches that must be active to satisfy the traffic demands

NCore = \max_{p \in P}\{LAgg^{up}_p\}

FAT-Tree Architechture

Topo-Aware Heuristic

 compute the minimum number of core switches that caters to maximum traffic from aggregation

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil
LAgg_{p} = max\left ( LAgg^{up}_{p} , LAgg^{down}_{p} , 1 \right )
NAgg_p^{up} = \max_{e \in E_p} \left \{ LEdge^{up}_{p,e} \right\}

Aggr

 The traffic between the core and the most active pod informs the number of core switches that must be active to satisfy the traffic demands

NCore = \max_{p \in P}\{LAgg^{up}_p\}

Now we have number of core and aggregation switches that needs to be turned on

FAT-Tree Architechture

Topo-Aware Heuristic

Pod 1

Pod 2

Pod 3

Pod 4

Edge

Aggr

2Gbps

Now, we calculate the minimum number of active links required from pod p to core  to support down traffic

LEdge^{up}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(e \rightarrow a) }{r}\right) \right \rceil
LEdge^{down}_{p,e} = \left \lceil \left( \frac{\sum_{a\in A_p} F(a \rightarrow e) }{r}\right) \right \rceil
LEdge_{p,e} = max\left ( LEdge^{up}_{p,e} , LEdge^{down}_{p,e} , 1 \right )
LAgg^{up}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(a \rightarrow c) }{r}\right) \right \rceil
LAgg^{down}_{p} = \left \lceil \left( \frac{\sum_{a\in A_p, c \in C} F(c \rightarrow a) }{r}\right) \right \rceil

Energy Consumption

(also Bandwidth)

Linear, Uniformly increasing Bandwidth

HODMD Prediction

Our Workflow

We use REST api to communicate to onOS 

topo_discovery.py

defaultpath.py

flowMeasure.py

monitoringTools.py

runElasticTree.py

fattree.py

to build graph of the current topology based on ONOS info

to create single default path between every host in the network

 to compute the number of switches needed in each layer in order to satisfy traffic and save energy

remove/add link , delete flow tables

Returns the Subset of topology to be active

Python file to create virtual SDN network connected to ONOS controller

Elastic Tree: Energy Efficient SDN

By Incredeble us

Elastic Tree: Energy Efficient SDN

  • 42