# topo-load-balancer.txt

#
#                           /----\
#                           |CSU |
#                  <---->   |HUB |  <---->
#                 ^         \----/       ^
#                 |                      |  1Mbps/10ms delay
#                 v                      v
#               /----\                /--------\
#               |UCLA|                |Consumer|
#               | HUB|                |  CSU-1 |
#        <----> \----/  <---->        \--------/
#       ^                     ^
#       |                     |
#       v                     v
#   /--------\            /--------\
#   |Producer|            |Producer|
#   | UCLA-1 |            | UCLA-2 |
#   \--------/            \--------/
#

# any empty lines and lines starting with '#' symbol is ignored
#
# The file should contain exactly two sections: router and link, each starting with the corresponding keyword
#
# router section defines topology nodes and their relative positions (e.g., to use in visualizer)
router

# each line in this section represents one router and should have the following data
# node   comment    yPos    xPos
CSU-1    NA          3       5
CSU-HUB  NA          5       3
UCLA-HUB NA          3       1
UCLA-1   NA          0       0
UCLA-2   NA          0       2

# Note that `node` can be any string. It is possible to access to the node by name using Names::Find, see examples.

# link section defines point-to-point links between nodes and characteristics of these links
link

# Each line should be in the following format (only first two are required, the rest can be omitted)
# srcNode   dstNode     bandwidth   metric  delay   queue
# bandwidth: link bandwidth
# metric: routing metric
# delay:  link delay
# queue:  MaxPackets for transmission queue on the link (both directions)
CSU-1       CSU-HUB     1Mbps       1       10ms    10
CSU-HUB     UCLA-HUB    1Mbps       1       10ms    10
UCLA-HUB    UCLA-1      1Mbps       1       10ms    10
UCLA-HUB    UCLA-2      1Mbps       1       10ms    10
