fnss.topologies.datacenter.bcube_topology

bcube_topology(n, k)[source]

Return a Bcube datacenter topology, as described in [1]:

The BCube topology is a topology specifically designed for shipping-container based, modular data centers. A BCube topology comprises hosts with multiple network interfaces connected to commodity switches. It has the peculiar characteristic that switches are never directly connected to each other and hosts are used also for packet forwarding. This topology is defined as a recursive structure. A Bcube_0 is composed of n hosts connected to an n-port switch. A Bcube_1 is composed of n Bcube_0 connected to n n-port switches. A Bcube_k is composed of n Bcube_{k-1} connected to n^k n-port switches.

This topology comprises:
  • n^(k+1) hosts, each of them connected to k+1 switches
  • n*(k+1) switches, each of them having n ports

Each node has an attribute type which can either be switch or host and an attribute level which specifies at what level of the Bcube hierarchy it is located.

Each edge also has the attribute level.

Parameters:
k : int

The level of Bcube

n : int

The number of host per Bcube_0

Returns:
topology : DatacenterTopology

References

[1](1, 2) C. Guo, G. Lu, D. Li, H. Wu, X. Zhang, Y. Shi, C. Tian, Y. Zhang, and S. Lu. BCube: a high performance, host-centric network architecture for modular data centers. Proceedings of the ACM SIGCOMM 2009 conference on Data communication (SIGCOMM ‘09). ACM, New York, NY, USA. http://doi.acm.org/10.1145/1592568.1592577