{'fraction_non_alphanumeric': 0.048868247122770304, 'fraction_numerical': 0.012682777451705924, 'mean_word_length': 3.73056494447127, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 40, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Performance bounds in wormhole routing, a network calculus approach

We present a model of performance bound calculus on feedforward networks where data packets are routed under wormhole routing discipline. We are interested in determining maximum end-to-end delays and backlogs of messages or packets going from a source node to a destination node, through a given virtual path in the network. Our objective here is to give a network calculus approach for calculating the performance bounds. First we propose a new concept of curves that we call packet curves. The curves permit to model constraints on packet lengths of a given data flow, when the lengths are allowed to be different. Second, we use this new concept to propose an approach for calculating residual services for data flows served under non preemptive service disciplines. Third, we model a binary switch (with two input ports and two output ports), where data is served under wormhole discipline. We present our approach for computing the residual services and deduce the worst case bounds for flows passing through a wormhole binary switch. Finally, we illustrate this approach in numerical examples, and show how to extend it to feedforward networks.


Introduction
In this article, we present an approach for end-to-end delay computation in communication networks, where data messages are routed under wormhole routing discipline. Wormhole routing [7,14,[19][20][21]25] is a popular routing strategy based on known fixed links. It is a subset of flow control methods called flit-buffer flow control [6,11,15,26]. Each message is transmitted as a contiguous sequence of flow control units. The sequence move from a source node to a destination node in a pipeline manner, like a burrowing worm. We will be based here on a spacewire 1 implementation of wormhole routing.
Our approach is based on network calculus theory [8,9,18]. Remarkably, this theory is almost solely based on two objects, namely arrival curves and service curves that are used to express constraints on arrival flows and service capacities. Performance bounds are then derived by cleverly handling arrival and service curves, and by taking into account the service policies. In this article, we consider the general case where packets of one flow may have different lengths. We propose a new object, namely packet curves, where information about packet lengths are summarized in curves, in the same way as arrival times of data are summarized in arrival curves, in classical network calculus theory. In general, when packets may have different lengths, only the minimum and the maximum sizes are taken into account in end-to-end delay calculus. We show here that the whole available information about packet lengths, summarized in packet curves, can be taken into account in end-to-end delay calculus. In particular, we show how to compute the minimum mean of service and give the gain of our approach with respect to the existing calculus approach.
The approach of packet curves is then applied to calculate residual services of arrival flows routed under wormhole routing discipline, where packets of each flow may have different lengths, and where information about the sequence of packet lengths of a given flow is given by packet curves. We study in detail the routing on a wormhole switch, based on a spacewire implementation of wormhole routing, where flows of different output port destinations may arrive onto one buffered input port, and where messages served on a given output port may arrive from several input ports, and are served with round-robin service policy. We show, on a numerical example, the maximum delay calculus for a message passing through a spacewirelike switch. Finally and briefly, we explain the extension of this approach to feedforward communication networks.
• If the requested output port is free, then the packet is routed immediately to that output port. Once the packet is routed to the corresponding output port, the latter is immediately marked as busy until the last character of the packet has passed through the switch indicated by its end of packet tail.
• If the requested output port is busy then the input port ceases to send flow control tokens to the source node, and thus halts the incoming packet until the output port becomes free. During this time, the link connecting the source node to the routing switch is blocked.
Wormhole routing is characterized by two properties: message contiguity (bits of different messages cannot interleave) and minimal buffering (only few flits are buffered in intermediate nodes). Contiguity and minimal buffering properties make for simple hardware implementations, used in embedded systems such as satellites. For example, the bookkeeping at each node is simplified because bits of different messages cannot be interleaved. In addition, intermediate nodes can be made simple, small, and simpler because the queues at each intermediate node are only required to buffer few flits [23].

Network calculus
Network calculus is based on min-plus algebra and convex analysis [5,17,24]. Min-plus operators such as min-plus convolution and deconvolution are used to express and handle constraints on data arrivals and service. Two important notions in network calculus theory are arrival curves and service curves. One of the main objectives of this theory is to calculate bounds on end-to-end delays and data backlogs on servers. We give in this section a review on basic results of network calculus.
Let A(t), t ∈ N be a data arrival flow to a given server, such that A(t) is the cumulative arrival data up to time t. The map A is, by definition, non decreasing. We set, in addition, A(0) to 0. In network calculus theory, arrival and service curves express constraints on arrivals and services, and are used to determine performance bounds. A minimal (resp. maximal) arrival curve for a flow A(t), t ∈ N is any curve γ(t) (resp. Γ(t)), t ∈ N satisfying We can easily see that a curve Γ is a maximal arrival curve for A if and only if The operator * is called min-plus convolution or simply convolution operator. An interesting question is how one can chose a good maximal arrival curve among from a set of arrival curves. A maximal arrival curve is defined to bound arrivals of a given flow. Thus, a good maximum arrival curve must give tight bounds at every time. Therefore we can at least tell that if Γ 1 and Γ 2 are two maximum arrival curves for a flow A such that Γ 1 (t) ≤ Γ 2 (t), ∀t ∈ N, then Γ 1 is better than Γ 2 . Nevertheless, given a maximum arrival curve Γ, a standard way to find a better maximum arrival curve is to compute its sub-additive closure. Let Γ (n) denote the curve defined by: Γ (0) = I 0 , and Γ (n) = Γ * Γ (n−1) , where I 0 (t) = +∞, ∀t > 0 and I 0 (0) = 0. Then we denote by Γ * the curve Γ * = inf n≥0 Γ (n) . It is easy to check that Γ * (t) ≤ Γ(t), ∀t ∈ N; Γ * is sub-additive; and Γ * * = Γ * . The curve Γ * is called the sub-additive closure of Γ. Any maximum arrival curve Γ can be replaced by its sub-additive closure Γ * in the sense that Γ is a maximum arrival curve if and only if Γ * is a maximum arrival curve. Let Γ 1 and Γ 2 be two maximum arrival curves for a flow A, then Γ 1 * Γ 2 is also a maximum arrival curve for A. Actually, the best maximum arrival curve (i.e. the smallest one) for a flow A, is the curve A ⊘ A, defined by The operator * is called max-plus convolution.
Let A be an arrival flow to a given network node. We denote the output flow from the node byĀ. We say that the node offers a minimum service curve ω if ω(0) = 0, ω is wide-sense increasing, andĀ ≥ A * ω. The notion of minimum service curve has its roots in the work of Parekh and Gallager [22]. Service curves can model links, servers, propagation delays, schedulers, regulators and window based on throttles [4]. To give some intuition to the definition of a minimum service curve, let us consider the dynamics:Ā(t) = min{A(t),Ā(t − 1) + e(t)}, ∀t ≥ 0, where e(t) is given for all t ≥ 0. Then, if we denote by E(t) = t s=0 e(s) and ω = E ⊘ E, then, ω satisfiesĀ ≥ A * ω. A minimum service curve ω is strict if during any data backlog period of duration u of the flow, the output flow is at least equal to ω(u). It is not difficult to show that a minimum strict service curve is also a minimum service curve; see [8,9]. Maximum service curves, and maximum strict service curves are defined similarly.
Basic results of network calculus give bounds in the backlog, the delay and the output burstiness on a server as functions of a given maximum arrival curve Γ for the input flow A and a given minimum service curve ω for the server.
• We denote by d r (t) = inf{d ≥ 0 |Ā(t + d) ≥ A(t)} the virtual delay at time t. Then the maximum virtual delay d max satisfies: • Output burstiness: Γ ⊘ ω is a maximum arrival curve for the output flowĀ. If, in addition, a maximum service curve Ω is given, then the output flowĀ is constrained by the arrival curve (Γ * Ω) ⊘ ω; see [13].
Simple but practical arrival and service curves are (σ, ρ) arrivals and (R, T ) services. A (σ, ρ) arrival flow is an arrival flow constrained by the maximum arrival curve Γ(t) = σ + ρt. An (R, T ) server is a server that guarantees a minimum service curve ω(t) = R(t − T ) + . It is easy to check that for a (σ, ρ) arrival flow served in an (R, T ) server with R > ρ, one can guarantee a maximum delay d = T + σ/R, a maximum backlog b = σ + ρT , and a (σ + ρT, ρ) output burstiness. Arrivals to a given service node can be controlled using a window flow control. In practice, buffers with limited sizes are used to store data before serving it. The limit size of the buffers constrains the service, and thus modify it. In a window flow control server with window size z, data, once arrived, is allowed to be served at time t if the amount of data being in the buffer is less than z. It is known that if ω is a service curve for a server without buffering size limit constraints, then the constrained server by a buffer of size z guarantees a server curve ω * (I z * ω) * , where I z (t) = +∞, ∀t > 0, and I z (0) = z. For example, if ω(t) = R(t − T ) + , then [8,9], if z > RT , then ω * (I z * ω) * = ω. That is to say that the buffer is enough large not to constrain the server. In the case, where ω < RT , it is not difficult to check that (I z * ω) * (t) ≥ (z/T )t, ∀t ≥ 0, and thus ω * (I z * ω) * (t) ≥ (z/T )(t − T ) + ; see for example [8].

Packetization
In this section we introduce two new concepts: packet operators, and packet curves. We give a short review in packetization and some new results in non preemptive service, those we use in the next section. The objective of the new formulations we make here is to give a network calculus approach in calculating residual services (and by this, delay and backlog bounds) in the case of serving packet data flows under non preemptive packet service disciplines, where packets may have different lengths.
We are concerned here by data arrival flows that arrive in packets. Thus two flows can be distinguished: the flow of the amount of data (bits) itself, independent of how it is clustered in packets, which we call simply data flow, and the flow of the number of packets, which we call the packet flow. The idea here, is to define operators and minimum and maximum curves that allow us to switch from the data flow space to the packet flow space, and vice versa. This is similar to packetization, but we will go one step further here by introducing the constraints on packet lengths under the form of packet curves.
The procedure is the following: giving the service of a data flow, we deduce, first, the service of the packet flow, we serve packet flows (as serving flows of data with equi-sized packets) and deduce residual services of the packet flows, and finally, we deduce the residual services of the data flows. Packetizers describe how data is set in packets by an increasing sequence of packet lengths [8,9]. We replace this sequence by a minimum and/or a maximum curves that give the minimum and/or the maximum number of packets in a given amount of data. This new approach is more powerful than packetization and is more in line with the network calculus approach based on constraint curves.
For a wide-sense increasing function f : R → R, the wide-sense increasing functions f −1 − and f −1 + , called respectively left and right pseudo-inverses of f , are defined by: Proposition 1. If γ and Γ are respectively minimal and maximal arrival curves for A then Proof. We prove the first item and the proof is similar for the second one. Let 0 ≤ x ≤ y. Let s and t be defined by s = A −1 + (x) and t = A −1 − (y). Thus we have A(s) ≥ x and A(t) ≤ y.
Let A be an arrival data flow, with a maximum arrival curve Γ, served in a server with a minimum service curve ω. The output of A from the server is denoted byĀ. The virtual delay to the right at time t, d Similarly, the virtual delay to the left at time t,

Packet operators
Packet and data operators will allow us to work with both data flows and packet flows, and in particular to switch from the data flow context to the packet flow context or vice versa. Let A be an arrival flow, that is A(t) gives the cumulated arrival data up to time t. We define P as the operator applied on data as follows: For an amount x of arrival data, P(x) gives the number of entire packets in x. Thus the data contained in P(x) packets can eventually be less than x (that is . The cumulated number of entire packets arrived up to time t, denoted by P (t) is simply P • A(t). Then P = P • A is the arrival flow of the number of packets of A.
Let us define A over the domain N by A(n) = P −1 − (n) which is the data contained in n packets. Then A(n) n∈N is a sequence of cumulative packet lengths, and is wide-sense increasing. If we denote this sequence by M . Then the operator A • P = P −1 − • P is an M -packetizer [3,9,12].
By the same way as we bounded the service delay, where we have been placed on the time axis, we can now be placed on the data axis, and bound the maximum packet length L max associated to a given operator packet P, as follows: Let P be the packet flow associated to an arrival flow A, to a given server, and letĀ denote the output flow of A from the server. If the flow A is served with First Come First Served (FCFS) service 2 , then the packet operator associated toĀ is simply the packet operator associated to A. That is, if we denote byP the packet operator associated to the output A, then we haveP = P. That means that a FCFS server do not repacketize data. We call this assumption packetization invariance (PI) assumption under FCFS. This assumption is realistic only when one data flow is served and when the data is served with FCFS service. We will see below that when more than one flow are served, the server often repacketize data of the aggregate flow, depending on the applied service policy. In the following, we recall a well-known result on packetization, and rewrite it with our notations.

Packet curves
For a given arrival data flow A, one usually does not know the sequence A(t), t ∈ N for every t, but has some statistical information about A, namely the average in time of A, and the maximal variance of A. This provides maximal arrival curves used to compute performance bounds. Similarly, for an arrival data flow, we are not always able to know exactly the associated packet operator. However, we can have some information about the maximum length of packets, the average length, and the distribution of small and big packets on the data. With these informations we define minimum and maximum packet curves, that give minimum and maximum numbers of packets in a given amount of data.
For example, the maximum packet length l max and the average packet length L can be expressed using the minimum packet curve π as follows: π(l max ) = 1 and L = lim x→+∞ x/π(x). However, one can have additionnal information, for instance, telling that, in an amount x of data that is bigger than the maximum packet length (x > l max ), there are at least 2 We use the term FCFS to mean that the first arrived unit of data of one flow is the first served, while we use the term FIFO to mean that the first arrived data packet among from packets of two or several data flows is the first served. So FIFO is a non preemptive service policy. n packets with 1/l max < n/x < 1/L. A realistic example of a minimum packet curve π is π(x) = ⌊max i∈N R i (x − T i )⌋, ∀x ∈ R + , where R i , i ∈ N is a non decreasing real sequence, with R 0 = 1/l max , and T i , i ∈ N is a non decreasing real sequence, with T 0 = 0, and Here is a simple example that will be used throughout the paper for illustration purposes. Consider a data arrival flow that arrives in packets. The packets are of lengths equal either to 1 or 2 data units. In addition, in three successive packets, there is at least one packet of length 1, and at least one packet of length 2. The minimum and the maximum lengths are thus given by l min = 1 and L max = 2. In this case, The curves π, π ⋆ , Π and Π −1 − are shown in Figure 1. Figure 1: The curves π, π * , Π and Π −1 − . The continuous curves correspond to the piecewise affine curves that bound π, π * , Π and Π −1 − ; see (1)-(3).
The curves π and Π can be bounded respectively by piecewise affine curves. It is easy to check that: In the next sections, we will need the following results, whose proofs are direct consequences of the definitions.
Proposition 2. Let A be an arrival flow with packet operator P. We assume that P is rightcontinuous. If Π is a maximum packet curve for P, then ∀0 ≤ p ≤ q ∈ N, Since P is right-continuous, we get p = P(x) and q = P(y).
, which gives the result. The proof is similar of the second item.
Proposition 3. If Γ is a maximum arrival curve for A, and Π is a maximum packet curve for P, then Π • Γ is maximum arrival curve for P . If γ is a minimum arrival curve for A, and π is a minimum packet curve for P, then π • γ is minimum arrival curve for P .
The proof is similar for the second item.
As for service curves, the curve P⊘P is the best minimum packet curve for P, while P −1 − ⊘ P −1 − is the best maximum packet curve for A. Let A be a data arrival flow with packet operator P, and let π be a minimum packet curve for P. The maximum length l max satisfies

Minimum mean of service
Served packetized data from time zero to time t whenĀ(t) = x is given by We will be interested here in the mean µ(X), in data, of the guaranteed service after packetization, given, for a given level X of data: Theorem 1 bounds the guaranteed service after packetization: In the following, we give a result that bounds the mean µ(X).
Theorem 2. If π is a minimum packet curve for P, then the mean µ(X) of guaranteed service after packetization is bounded as follows: Proof. Let L i , i ∈ N be the lengths of the i-th arrival packets of A. That is: Similarly, we get: Now, let us order the packet lengths of A in a non decreasing order, and use the notations: .. By definition of the curve π, starting from zero, and going ahead, the packet lengths are ordered in non decreasing order, that is the order ... Thus, following the same steps as above, by replacing P with π, we get: and since 1 2X Theorem 2 is used when we do not have the packet operator P for A, but, instead, we have a minimum packet curve π for P. Note that if we do not have π either, then we can only guarantee that µ(X) ≥ 1

Non pre-emptive service
We explain here how packet curves are used in non preemptive service. Suppose arrival flows are served under a given service discipline and with a given service curve. The flows are assumed to arrive in packets of arbitrary lengths, and minimum and maximum packet curves are supposed to be given. First, we determine a service curve for the aggregate flow of packets arriving to the server, then we apply the service discipline to the flow of packets. By this, we deduce residual services for the flows of packets. Finally we get the residual services for data flows.
Minplus convolution, power operation, and sub-additive closure operation are defined differently for packet curves. Let A 1 and A 2 be two arrival flows with packet operators P 1 and P 2 respectively, and let π 1 and π 2 be minimal packet curves for P 1 and P 2 respectively. We define X 1 and X 2 the sets X 1 = (π 1 ) −1 − (N) and X 2 = (π 2 ) −1 − (N), and X = X 1 + X 2 . Operation ⋆ (minplus convolution for packet curves) is defined on packet curves as follows: Similarly, π n is defined by π 0 = I 0 and π n = π ⋆ π n−1 for n ≥ 1, and π ⋆ = n≥0 π n . It is easy to check that any packet curve π satisfies π ⋆ ≤ π, and that π ⋆ is sub-additive on X , that is π ⋆ (x + y) ≤ π ⋆ (x) + π ⋆ (y), ∀x, y ∈ X . For example, if π(x) = ⌊x/2⌋, then X = 2N, and π ⋆ π = π = π * . if π( We suppose that the server offers a service curve ω (minimum or strict). We denote by A the aggregate of arrival flows A = A 1 + A 2 , and by P the aggregate of packet flows P = P 1 + P 2 . The arrival flows of number of packets are denoted: P = P • A, P 1 = P 1 • A 1 and P 2 = P 2 • A 2 . The outputs from the server are denoted byĀ,P,P ,Ā 1 ,Ā 2 ,P 1 ,P 2 ,P 1 and P 2 for respectively A, P, P, A 1 , A 2 , P 1 , P 2 , P 1 and P 2 .
The packetization invariance (PI) assumption does not hold here because the service of the two flows do not necessarily preserve the order of arrived packets. Indeed, the order of served packets depends on the service discipline. To deal with this, we give the following result.

Service projectors
We introduce a new terminology that will ease the statement of the main theorem of this section (Theorem 3). Let P 1 , P 2 , . . . , P n be n arrival flows to a server with a service curve ω. We suppose that data is measured and served in non decomposable units. A service discipline involves residual services for the flows P i , 1 ≤ i ≤ n with associated service curves ω i , 1 ≤ i ≤ n respectively. Let us first note that strict service curves for packet flows are defined with respect to backlog periods of the corresponding data flows.

Definition 2.
A curve ω is a strict service curve for a packet flow P associated to a given data flow A, if in any backlog period (s, t), with respect to A, we haveP (t) −P (s) ≥ ω(t − s). Definition 3. The maps R i , 1 ≤ i ≤ n associating to the aggregate service curve ω, the residual service curves ω i , 1 ≤ i ≤ n are called service projectors on flows P i , 1 ≤ i ≤ n, associated to the service discipline. R i : ω → ω i , and we have ω i (t) = R i • ω(t), ∀t ≥ 0.
We note here that in some projections, even though ω is a strict service curve for A, ω i = R i • ω may be minimum (not strict) service curves for A i , 1 ≤ i ≤ n.

Theorem 3.
If ω is a strict service curve for A, and if π i and Π i , 1 ≤ i ≤ n are minimum and maximum packet curves for P i , 1 ≤ i ≤ n resp., then ( n i=1 π i ) ⋆ • ω is a strict service curve for P , R i • ( n i=1 π i ) ⋆ • ω, 1 ≤ i ≤ n are service curves (minimum or strict, depending on the projection) for P i , 1 ≤ i ≤ n resp., and • ω are service curves (minimum or strict, depending on the projection) for A i , respectively.
Proof. Let us prove the case where the projection does not preserve the service strictness. The other case is easier.
• By definition of R i , 1 ≤ i ≤ n, the curve (⊕ n i=1 π i ) ⋆ • ω being a strict service curve for P implies that R i • (⊕ n i=1 π i ) ⋆ • ω is a minimum service curve for P i .

FIFO routing policy
In wormhole routing, packets with different destination output ports may arrive in the same input port of a given switch. These packets are routed to their destination output ports following their arriving order. So FIFO (First In First Out) policy is applied on the level of input ports. Let us first recall a basic result on FIFO routing service. Let A 1 and A 2 be two arrival flows to a given server. We denote byĀ 1 andĀ 2 respectively the outputs of A 1 and A 2 from that server. Let Γ 2 be a maximal arrival curve for A 2 , and ω a minimum service curve for the aggregate flow. Let us denote by ω 1 θ the family of functions Theorem 4. FIFO minimum service curve [13] If A 1 and A 2 are served under FIFO service policy, then we haveĀ 1 ≥ A 1 * ω 1 θ for all θ, and if ω 1 θ is wide-sense increasing, then ω 1 θ is a minimum service curve for A 1 . Corollary 1. (R, T )-minimum service curve for FIFO. If A 1 and A 2 are served under FIFO service policy, with Γ i (t) = σ i + ρ i t, i = 1, 2, and if ω(t) = R(t − T ) + is a minimum service curves for the server, then the curve ω 1 (t) = (R−ρ 2 ) [t − (T + σ 2 /R)] + is a minimum service curve for A 1 , and thus the curveΓ 1 (t) = (σ 1 + ρ 1 T + σ 2 ρ 1 /R) + ρ 1 t is a maximum arrival curve forĀ 1 .
Proof. We can easily check that among from the service curves ω 1 θ for θ ≥ 0, the (R, T )minimum service curve that guarantees maximum of service, with respect to θ, is attained for θ = T + σ 2 /R. Now we consider the general case, where packets of one arrival flow may have different lengths. We suppose that minimum packet curves π i , 1 ≤ i ≤ n and maximum packet curves Π i , 1 ≤ i ≤ n are associated to the flows A i , 1 ≤ i ≤ n respectively.

Theorem 5.
If ω is a strict service curve for the aggregate flow, then a minimum service curve ω i for flow A i is: Proof. We just apply Theorem 3. Note that ( 1≤j≤n π j ) * (x) = ⌊x/L max ⌋, whenever π j , 1 ≤ j ≤ n are super-additive.
• In order to stay working with piecewise functions, θ is chosen as mentioned in Corol- • Then, applying Π −1 − , we get:

Link divergence
Let us consider two arrival flows A 1 and A 2 to a given server. The flows arrive in packets through a unique link, and the packets of both flows are served as one aggregate arrival flow, but the service guaranteed for packets of each flow differs. We denote by ω 1 and by ω 2 service curves for packets of A 1 and A 2 . Figure 2 gives an illustration. The question here is to determine a service curve for the aggregate flow A 1 + A 2 . As in Proposition 4, minplus convolution, power operation, and sub-additive closure operation are redefined again for service curves of packetized data. Let A 1 and A 2 be two arrival flows with packet operators P 1 and P 2 respectively, and let ω 1 and ω 2 be minimal service curves for A 1 and A 2 respectively. We define T 1 and T 2 the sets Similarly, ω n is defined by ω 0 = I 0 and ω n = ω ⋄ ω n−1 for n ≥ 1, and ω ⋄ = n≥0 ω n . Similarly ω ⋄ ≤ ω, and ω ⋄ is sub-additive on T .
In the other side, we denote by l min the minimum length of all packets, and we define T max = (ω 1 ⊕ ω 2 ) −1 − (l min ). We assume in addition that ω 1 and ω 2 are right-continuous, in such a way that we get (ω 1 ⊕ ω 1 )(T max ) = l min . Thus we have the following result.

Round-Robin service discipline
Round-robin is a service policy that assigns service to each flow in a circular order, without priority. The order is respected whenever possible; that is, if one flow is out of packets, the next flow, following the defined order, takes its place. A separate flow is considered for every data stream, and the server serves a packet from any non-empty queue encountered, following a cyclic order. When packets have variable sizes, flows with small packets may be penalized.
Let A 1 , A 2 , · · · A n be the n arrival flows to the server. Let Γ i , 1 ≤ i ≤ n be maximum arrival curves for A i , 1 ≤ i ≤ n, respectively. We assume that the flows arrive in packets with the same size u.

Proposition 6.
If ω is a strict service curve for the aggregate flow A, then a minimum service curve ω i for each flow Proof.
• Firstly, it is known [8] that if A i , 1 ≤ i ≤ n are served under ordered priority discipline, then the flow i with the lowest priority guarantees a strict service curve ω − j =i Γ j + . Secondly, it is trivial that under round-robin service, any flow A i guarantees a service better than the service it would guarantee if the flows are served under ordered priority, and if the flow has the lowest priority. Thus any flow A i guarantees a strict service at least equal to ω − j =i Γ j + .
• With round-robin discipline, if ω is a strict service curve for the aggregate flow then 1 n [ω(t)−nu] + is a strict service curve for A i . Indeed, in a given backlog period (s, t), the worst case for flow A i is when s corresponds to a time when a flow A i packet had just been served, and when t corresponds to a time when a flow A i packet will be served just after t. That is, we lose one round. Also, in the worst case, the flows A j for j = i are all backlogged in (s, t). That is that the lost round is backlogged. Thus we lose nu data. One round being lost, the flow A i guarantees 1/n times the remainder service. Now we consider the general case, where packets of one arrival flow may have different lengths. we suppose that minimum curves π i , 1 ≤ i ≤ n and maximum curves Π i , 1 ≤ i ≤ n are associated to the flows A i , 1 ≤ i ≤ n respectively. Theorem 6. If ω is a strict service curve for the aggregate flow, then a minimum service curve ω i for flow A i is: Proof. By applyin Theorem 3 we get: Then since (Π i ) −1 − , 1 ≤ i ≤ n are non decreasing, and ( n i=1 π i ) * • ω = ⌊ω(t)/L max ⌋ as long as π i , 1 ≤ i ≤ n are super-additive, we get the result.
Then we obtain

A wormhole binary switch model
In the following, we present a wormhole switch model, and determine residual services and delays of several flows passing through the switch. This work is done in the framework of a spacewire network study, where wormhole routing is applied. Therefore, our model will be based on spacewire switch characteristics. A spacewire switch comprises a number of spacewire link interface (encoder-decoders) and a routing matrix. The routing matrix enables the transfer of packets arriving at one link to another link interface on the routing switch.
In practice, each link interface can be considered as comprising an input port (link interface receiver) and an output port (link interface transmitter). In the model we present here, we separate receivers from transmitters in order to explain the modeling. In practice, either only path addressing, or a combination of several addressings are implemented. We suppose here that switches implement only path addressing. Flows are distinguished by their destination addresses, which are, in the case of path addressing, a sequence of output ports. When a packet arrives in a routing switch, the corresponding output port is determined. The output port does not transmit any other packet until the packet that is currently transmitted is sent. In our model, a routing switch is given by a number of input ports, a number of output ports, and a routing matrix. The routing matrix associates to each input port all possible output port destinations.

FIFO routing for input ports
Packets with different destination output ports arrive by one link to a given input port. There is no service delay on the input ports. The latter only provide the routing of packets to associated output ports. However, each packet must wait until its destination output port is available. Moreover, packets arriving to one input port are routed under the FIFO routing policy to their associated output ports. Therefore, if two packets with different destinations arrive in sequence in an input port, and if the first packet waits for its output port to be available, then the second packet must also wait.

Round Robin service in output ports
Routed packets to a given output port are served under the round-robin discipline. The discipline is used in all output ports. That is to say that connected input ports to a given output port are served following a given cyclic order.

Piecewise linear calculus
Although no service delay is considered in input ports, the arrival flows A ij are modified before arriving to the output ports. This is due to the FIFO routing imposed on the input ports. Indeed, when A 12 is being served on the output port O 2 , A 11 cannot be served by the outport O 1 even if the latter is free. So arrivals of A 11 to the output port O 1 are not the same as arrivals of A 11 to the input port I 1 . Here is how this is taken into account: Let Γ ij , i, j ∈ {1, 2} be maximum arrival curves for A ij , i, j ∈ {1, 2}, respectively, and let ω 1 and ω 2 be strict service curves for the servers of the output ports O 1 and O 2 ; see Figure 3. We assume that the arrivals Γ ′ ij , i, j ∈ {1, 2} to the output ports are given and are (σ, ρ) arrivals. We use the notations: Γ ′ ij (t) = σ ′ ij + ρ ij t (the rates ρ ij stay unchanged). Then the residual services ω ij , i, j ∈ {1, 2} are computed according to the round-robin discipline. After this, we deduce the output burstinessesΓ ij , i, j ∈ {1, 2}, which are (σ, ρ) arrival curves. We use the notationsΓ ij =σ ij + ρ ij t. Note that the variables here are σ ′ ij , i, j ∈ {1, 2}. We obtain:σ ij = f ij (σ ′ 11 , σ ′ 12 , σ ′ 21 , σ ′ 22 ), i, j ∈ {1, 2}. On the other side, the FIFO routing at the input ports is taken into account as follows. A 11 and A 12 arrive to the input port I 1 , and are served respectively with services ω 11 at the output port O 1 , and ω 12 at the output port O 2 . We apply the result from link divergence, and obtain a strict service curve ω ′ 1 for the aggregate flow A 11 + A 12 . Then we include the buffering limit constraint on the input port I 1 , and deduce a new minimum service curve of the aggregate flow A 11 + A 12 . Then we apply the result on FIFO routing to determine minimum service curves for flows A 11 and A 12 . These service curves are denoted byω 11 andω 12 . This gives the output burstinessesΓ 11 andΓ 12 . Similarly, the output burstinesses Γ 21 andΓ 22 can be computed. Thusσ ij , i, j ∈ {1, 2} are given as functions of the variables σ ′ ij , i, j{1, 2}:σ ij = g ij (σ ′ 11 , σ ′ 12 , σ ′ 21 , σ ′ 22 ), i, j ∈ {1, 2}. Finally we solve, in σ ′ , the system We give the details below.

Round-robin effect
Applying round-robin discipline, we obtain the residual services (strict service curves) ω ′ ij , i, j ∈ {1, 2} as follows (we apply formula (6)) : For example, ω ′ 11 is given by: Then the output burstinessesΓ ij , i, j ∈ {1, 2} are given by: Buffering limit effect A limited size buffer is considered on each input port. To take this constraint into account, we use window flow control results presented above. An illustration is given on Figure 4. Here, the curves ω ′ 1 and ω ′ 2 are used, since, only the aggregate flow on each input port counts. We denote byω 1 andω 2 the service curves of the aggregate flows A 11 + A 12 and A 21 +A 22 respectively, that takes into account the buffering limit size. The curves are obtained where z is the size of the buffers. The curves ω ′ 1 and ω ′ 2 are given as (R, T ) service curves, in equations (10) and (11). We consider here the non trivial case where z < l min . In this case, the curvesω 1 andω 2 are obtained as follows:ω

FIFO effect
The arrival flows A 11 and A 12 arrive, now, to a given server with a strict service curveω 1 , and are served under FIFO discipline. Similarly, the arrival flows A 21 and A 22 arrive to a server with a strict service curveω 2 , and are served under FIFO discipline. Then we can use Theorem 5 and Example 3 given in section 4.1. For example, the effective service curve ω 11 is given by: ω ij , i, j ∈ {1, 2} are given similarly: where R ijk and T ijk , i, j ∈ {1, 2}, k ∈ {1, 2, 3, 4} are obtained similarly. The output burstinessesΓ ij , i, j ∈ {1, 2} are then given again by: Finally, we have to solve, in σ ′ , the system {(9), (15)}, that is: This can be done by solving numerically the following fixed point problem: (17) Once the vector σ ′ is obtained, the effective services of the arrivals A ij , i, j ∈ {1, 2}, through the switch, are simply ω ij , i, j ∈ {1, 2}, given in formula (14). Maximum delays d ij for flows A ij , i, j ∈ {1, 2} are then obtained : Example 6. (Symmetric case) Let us consider the symmetric case, where the arrivals A ij , i, j ∈ {1, 2} are constrained by the same arrival curve Γ(t) = σ + ρt, and have the same maximum packet curve Π(x) = min(a 1 x, a 2 x + b); both output ports guarantees the same service R(t − T ) + , and the switches on the input ports have the same size z. For Π, we take the curve given in Example 1, that is a 1 = 1/10, a 2 = 3/40 and b = 1/20. We have also from the same example l min = 10 and L max = 20.

Feedforward networks
We show in this section how to extend this approach to feedforward networks composed of buffered nodes (source nodes, switches, and destination nodes), and links. The connection of different nodes by the links define several virtual paths. We are interested here in the calculation of the end-to-end delay through a given virtual path. For this we need to compute the service through the virtual path. A virtual path is defined simply by a sequence of a source node, zero, one or several switches, indicating the input and the output ports used, and a destination node. The procedure is to compute the service through each switch, without taking into account buffering limits, compose all the services of the switches corresponding to the path, and finally include the buffering limit available through the whole path, by adding the sizes of all the buffers through the path. The composition of services corresponding to the switches of the path, is done algebraically. That is, if ω 1 , ω 2 , . . . , ω n are minimum service curves of n successive servers, then ω 1 * ω 2 * . . . * ω n is a minimum service curve through the path [8,9]. Then, we simply apply the window flow control presented above to take into account the buffering limit. We show this on a small feedforward network.
Example 7. On Figure 5 we take a feedforward network with two source nodes A and B, four switches S 1 , S 2 , S ′ 1 and S ′ 2 and two destination nodes D 1 and D 2 . We denote by A ijk (respectively B ijk ) the flow of data going from the source node A (respectively B) to the destination node D k , through switches S i and S ′ j . We are interested in computing the maximum delay for the flow A 221 , that is for messages going from the source node A to the destination node D 1 through the switches S 2 and S ′ 2 . On Figure 6, we show the scheme of the calculation of the service through the buffered virtual path. Let us consider the symmetric case, where the arrivals A ijk and B ijk have the same maximum arrival curve Γ(t) = σ + ρt, and where the output ports of the switches S 1 , S 2 , S ′ 1 and S ′ 2 guarantees the same strict service curve ω(t) = R(t − T ) + . We follow the procedure explained above to compute the service of A 211 through a non buffered switch, then we compose the service through the switch S 2 with the service through the switch S ′ 2 (which are the same because of the symmetry), and finally, we take into account the buffering, by using the window flow control technic with a window size equal to 2z (two buffers of size z). In order to satisfy z < Rt, we have to chose z < 7.86. We took here z = 6. Finally we obtain the following results: