# 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
