Commit a021b9d9 authored by Christopher Alfeld's avatar Christopher Alfeld
Browse files

Updated, added section on postassign and wrote down notes about LANs.

parent 8ec32263
assign.tcl -
assign_wrapper -
This is a script that will take an IR with a topology section
and generates and appends the virtual and vlan sections. It does this via
a call to assign. It takes an IR file and a ptop file as input. The ptop
file should be generated by ptopgen.
file should be generated by ptopgen. Use -v for lots of output.
handle_ip -
Interprets all the IP TB commands fills out the /ip section.
handle_os -
Inteprets OS commands and fills out the /os section.
Interprets OS commands and fills out the /os section.
libir.* -
Perl and Tcl versions of the IR lib. This is a library for easily
reading and writing IR files.
postassign -
This updates the delays table and vname column of the reserved
table. It should be run after assign_wrapper has finished and the
nodes have been reserved.
LAN notes
assign/assign_wrapper now support LANs. A few comments are in order.
In all cases LAN means switch-with-connected-nodes.
LANs can take up lots of delay nodes. A LAN with delay
characteristics will have a delay node for every node in it. Also any
direct connection between two LANs will have a delay node.
For the usual delayed node<->node link the case if simple. Stick a
delay node in between the with the delay parameters. LANs complicate
this. With LANs a packet may traverse two or even three delay nodes.
For intralan communication every packet will hit two delay nodes, the
one connected to the source and the one connected to the destination.
The specified delay characteristics for the LAN refer to the total
trip, not each hop, so the delay nodes must have adjusted
characteristics. Bandwidth is left alone, and delay is divided in
two. For loss however we need to choose the loss rate at the delay
nodes so that the probability of loss going through two delay nodes is
sequence is the lan loss. If L is the loss rate for the LAN, and R
the loss rate for each delay node, then R = 1-sqrt(1-L).
For two LANs connected directly things become even more complicated.
We now have a packet going through three delay nodes, one at each LAN
and one in the middle. The two end delay nodes will have to be fixed
as described above since we can't determine whether traffic going
through them will be intralan or extralan. We do know (see below)
that all traffic will go through a delay at each end though so we can
set the middle delay parameters correctly.
For bandwidth we set to the minimum of either lan and the connecting link.
For latency we want it to be both LAN latencies plus the connecting
latency. Since we already have of the each LAN latency on the end
delay nodes the middle delay node will need the connecting latency
plus half of each LAN latency.
Loss is again more complicated. The reasoning is described in the
comments of the code and the formula ends up being:
If Aloss and Bloss are the loss rates of the two LANs and loss is the
loss rate of the link, then the delay node should be set to a loss
rate of: (1-(1-Aloss)*(1-Bloss)*(1-loss)/(sqrt(1-Aloss)*sqrt(1-Bloss)).
In this case division by 0 implies a loss rate of 1.
There is a definite hole in the support when you have more than two
LANs connected together. lan<->lan will work fine. But if you have
lan<->lan<->lan you will get incorrect delay behavior. This is
because the delay nodes have no knowledge of the full path of the
packet so they don't know what other delay nodes it will go through.
The code is written to assume the common case of originating within a
LAN, traveling through a connecting link, and arriving at a node in
the other LAN. For a packet that going through an intervening LAN the
loss rate, latency will be potentially lower and the bandwidth
potentially higher than would be correct in a real network.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment