As described earlier, packets that are blocked at a switch in a
Myrinet-style network not only block other packets at that particular
switch, but at upstream switches as well. Since the effect of blocked
packets is not local, admission control decisions are not easily
realizable locally. The distributed algorithm
described in this section relies on the general idea of defining
blocking guards: for each link, a blocking guard bounds the effect
connections using that link can have on other connections in the network.
Specifically, for each output Port p of a switch , we define a
blocking guard
, which is the longest time any packet can be
blocked at that port, be it due to either existing or future
connections anywhere in the network. For convenience, we define
to be zero if no connection uses Port p of switch
.
For each link on the route of a newly established connection, the admission control must make sure that (i) the worst-case blocking delay of the newly established connection does not exceed the amount specified in the blocking guard, and (ii) that the new connection does not cause the worst-case blocking delay of existing connections to exceed the amount specified in the blocking guard. As connections are established and torn down, the values of the blocking guards must be modified to reflect the change in the load of the network.
In this section we describe an admission control algorithm that makes its decisions based on the values for the blocking guards and then updates their values appropriately. In Section 4 we will describe an establishment protocol based on a distributed version of this algorithm. Before we go on to describe the algorithm in detail, we define a few terms and show a number of properties.
Let be the calculated
worst-case blocking delay for packets of connection
at Switch
. Let
and
be upper bounds on the
blocking delay other connections can cause, that branch in at
or
branch out at
, respectively. Then,
where is the switch at which a connection
branches in
upstream.
can then be defined by the following recurrence
relation:
The following theorem shows that is an upper bound for
.
Our algorithm does not make use of directly, but of
the related value
which we call the
guard-based calculated worst-case blocking delay for packets of
connection
at Switch
. If the upper bound
on
is defined as follows
we can define by the following recurrence relation:
The following observation shows that is a safe
approximation for
, and, hence, for
. It is
the basis for our algorithm.
The following theorem states that, at any switch, it is sufficient to check the guard-based calculated worst-case blocking delay of the new connection against the blocking guard at the same switch to see whether any existing connection may miss its deadline.
Given a set of established connections, the following three-step
admission control algorithm determines whether a newly arriving
connection can be established along the route
. The algorithm rejects the new connection if
(i) the performance requirements of
can not be satisfied, or (ii)
if the performance requirements of existing connections would be
violated by accepting
. If
is accepted, the blocking
guards along its route are updated appropriately.
Step 1: The guard-based worst-case blocking time
for packets of the new
connection is determined for each switch
along the route of
. If at any switch
the blocking guard
is exceeded,
that is, if
, establishing the new connection
may violate the requirements of an existing
connection, and the new connection
is
rejected.
Step 2: If no blocking guard is exceeded, the algorithm
proceeds to the final acceptance test at the
source. The guard-based calculated blocking time
at the entrance to the network
is compared to the deadline requirements, i.e.,
it is checked whether
.
If this is not the case, packets of
may not
meet their delay requirements, and the connection
is rejected.
Step 3: After the new connection has been accepted
by the source, the blocking guards at the outgoing
ports on the route of
must be updated to
reflect the acceptance of
. Specifically,
they may need to be reduced to prevent future
connection admissions from violating
's
performance guarantees.
If is the new value for
after the acceptance
of
, the following two conditions must be satisfied for the
blocking guards to remain valid after the connection has been
established:
The following set of formulae can be shown to generate a set of
updated blocking guards that satisfy the above conditions:
where BI and have been defined earlier.
Intuitively, the term gives an indication of how much
additional blocking can be accepted at output Port
in the
future, without violating the blocking guard
at the
previous switch
. We call
the local residual time between the two
ports. Updating the blocking guards means allocating residual time to
links along the route of the new connection.
The above formula trivially satisfies Condition 1. We show in [12]
that the formula satisfies Condition 2 as well.
The correctness of the admission control algorithm follows directly
from the above theorems: On one side, it never accepts a connection
whose packets may miss their deadlines. This is enforced by the
acceptance test at the source. On the other side, the admission
control algorithm never accepts a connection if this may cause packets
of existing connections to miss their deadlines. This is enforced by
comparing an upper bound on the blocking delay ( ) with
blocking guards at the intermediate switches. Theorem 2
states that this test is sufficient. We show in [12]
that the algorithm updates the blocking guards correctly to
reflect the acceptance of
.