Valiant Load Balancing (VLB)

Valiant Load Balancing (VLB)#

VLB [1] is an oblivious routing scheme that achieves provably optimal load balancing in some settings. VLB itself and its variants are used in many traffic-oblivious optical DCN architectures, such as RotorNet [2], Opera [3], and Sirius [4]. In vanilla VLB, packets are first routed to an intermediate node selected randomly to achieve load balancing, and then forwarded to the final destination node through a direct connection. You can use the openoptics.OpticalRouting.routing_vlb() function to configure VLB routing.

examples/routing_vlb.py#
 1from openoptics import Toolbox, OpticalTopo, OpticalRouting
 2
 3if __name__ == "__main__":
 4    nb_node = 8
 5    net = Toolbox.BaseNetwork(
 6        name="VLB",
 7        backend="Mininet",
 8        nb_node=nb_node,
 9        time_slice_duration_ms=64,  # in ms
10        use_webserver=False,
11    )
12    circuits = OpticalTopo.round_robin(nb_node=nb_node)
13    assert net.deploy_topo(circuits)
14    paths = OpticalRouting.routing_vlb(net.get_topo(), net.tor_ocs_ports)
15    # for path in paths:
16    #    print(path)
17    assert net.deploy_routing(paths, routing_mode="Source")
18    net.start()