\ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 19 -LRB- one forward hop followed by a backward hop followed by another forward hop -RRB- exists . We proved earlier that this is not optimal . If the central sequence is longer than 1 hop but not greater than the other two sequences , there must be at least one value k such that X -LRB- i -RRB- = k for three different i0 , i1 and i2 . \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 18 in the final representation W -LRB- j -RRB- . It follows that if W -LRB- i -RRB- and W -LRB- j -RRB- have no common strings then it must be the case that max -LRB- hb ; hf -RRB- > = k. B Assertion 2 In the following , f represents a sequence of one or more forward hops while b represents a sequence of one or more backward hops . Theorem : Shortest paths in the bidirectional shufflenet topology are of the type f , b , fb , bf , fbf and bfb only . Any other sequence of hops would not be a shortest path . For every shortest path of kind fbf or bfb the longest sequence of hops in the same direction must be the middle one . Proof : -LRB- By Contradiction -RRB- Assume that a path of type fbfb is a shortest path of length h = hf1 + hb1 + hf2 + hb2 , where f1 , b1 , f2 and b2 are the number of hops in the sequences of forward and backward hops and hf1 ; hb1 ; hf2 and hb2 > 0 , between a source node in column ci -LRB- with representation W -LRB- i -RRB- -RRB- and a destination node in column cj -LRB- with representation W -LRB- j -RRB- -RRB- . Let < = d < = b -LRB- k ? 1 -RRB- = 2c be the distance between the two columns . Thus , h > = d. Consider the function X -LRB- i -RRB- defined earlier for i = ; 1 ; 2 ; : : : ; h. Assume X -LRB- 0 -RRB- = 0 . Consider first the case where one of either hb1 or hf2 equals 1 . Assume , without loss of generality , that it is the backward hop sequence which is of length one -LRB- i.e. hb1 = 1 -RRB- . We focus on the sequence : a forward hop followed by a backward hop followed by another forward hop . It is clear that the backward hop and the following forward hop can be eliminated and we would still get the same representation , W -LRB- j -RRB- , for the final node reached . Hence , such paths can not be shortest paths . X -LRB- h -RRB- = d. Assume now that hb1 and hf2 > 1 . Thus , there must be at least one value , say k , such that X -LRB- i -RRB- = k after i0 , i1 and i2 hops , where < i0 < i1 < i2 < h . It must be the case that i0 and i2 are hops in the same direction while i1 is a hop in the opposite direction . The symbols inserted at hop i0 and i1 are both shifted out and hence do not help form the final representation W -LRB- j -RRB- . Thus , a shorter path in which the two hops at i0 and i1 are not present exists . This contradicts our assumption that fbfb was a shortest path . The proof for bfbf is identical to the one above . Since all paths other than f , b , fb , bf , fbf and bfb , have either fbfb or bfbf as subsequences , it follows that none of them are shortest paths in the bi-directional shufflenet topology . Thus , we have proved that only paths of the type f , b , fb , bf , fbf and bfb provide shortest paths in this topology . Arguments similar to assertion 1 allow us to state that for each shortest path of the kind fbf or bfb , the longest sequence of hops in the same direction must be the middle one . If the central sequence -LRB- assumed to be b without loss in generality -RRB- is of unit size , then a sequence of hops fbf \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 17 -LSB- 14 -RSB- P. Palnati , E. Leonardi , and M. Gerla . Bidirectional Shufflenet : A Multihop Topology for Backpressure Flow Control . September 1995 . To appear in Proceedings of 4th International Conference on Computer Communications and Networks . -LSB- 15 -RSB- A. Pavan , S. Bhattacharya , and D. Du . Reverse Channel Augmented Multihop Lightwave Networks . In Proceedings of INFOCOM 94 , volume 3 , pages 1127 -LCB- 1134 , March 1994 . A Assertion 1 In the following , hf refers to the number of forward hops while hb refers to the number of backward hops . Assertion 1 : Starting from node i with representation W -LRB- i -RRB- , in h = hf + hb hops , it is possible to reach only those nodes whose representations W -LRB- j -RRB- contains at least one substring of length l = k ? max -LRB- hb ; hf -RRB- that is also a substring of W -LRB- i -RRB- . If W -LRB- i -RRB- and W -LRB- j -RRB- have no common substring then max -LRB- hb ; hf -RRB- > = k. Proof : We have already described how the representation of the node -LRB- s -RRB- reached by a single forward -LRB- backward -RRB- hop are obtained from the current representation -LRB- in a shift register -RRB- by shifting it left -LRB- right -RRB- ; discarding the most -LRB- least -RRB- significant digit and inserting a digit in the least -LRB- most -RRB- significant position . It is easy to see that a forward hop followed immediately by a backward hop -LRB- or vice-versa -RRB- results in a representation that differs from the original one in exactly one bit position . Let X -LRB- i -RRB- = Xf -LRB- i -RRB- ? Xb -LRB- i -RRB- , i = ; 1 ; 2 ; : : : ; h. X -LRB- i -RRB- represents the difference between the number of forward hops Xf -LRB- i -RRB- and backward hops Xb -LRB- i -RRB- after the first i hops of the h total hops . Let X -LRB- 0 -RRB- = 0 . X -LRB- i -RRB- can be negative , positive or zero . Define Xmin -LRB- i -RRB- to be the minimum value reached by X -LRB- i -RRB- during the first i hops . Define Xmax -LRB- i -RRB- to be the maximum value taken by X -LRB- i -RRB- during the first i hops . After each hop , X -LRB- i -RRB- could increase in value or decrease . If a symbol p0 is inserted into the shift register when X -LRB- i -RRB- = X0 , then p0 will be shifted out of the register the next time X -LRB- i -RRB- reaches the value X0 again -LRB- while shifting another symbol at the other end of the string -RRB- . After a hop if X -LRB- i -RRB- attains a value for the first time -LRB- i.e. a new minimum or maximum -RRB- , a new symbol is inserted into W -LRB- i -RRB- . On the other hand , if X -LRB- i -RRB- reaches a value that it has had earlier , then the number of symbols inserted in W -LRB- i -RRB- remains the same as before -LRB- one shifted out and one shifted in -RRB- . Thus , after j hops , j < = h , jXmax -LRB- j -RRB- ? Xmin -LRB- j -RRB- j equals the number of new symbols inserted into W -LRB- i -RRB- in the j hops . Note that jXmax -LRB- j -RRB- ? Xmin -LRB- j -RRB- j is not greater than the maximum number of hops made in one of the two possible directions in the first j hops . Thus , after h hops , max -LRB- hb ; hf -RRB- is the number of new symbols inserted into W -LRB- i -RRB- . W -LRB- j -RRB- then differs from W -LRB- i -RRB- by not more than max -LRB- hb ; hf -RRB- symbols . This implies that at least l = k?max -LRB- hb ; hf -RRB- symbols of W -LRB- i -RRB- are still present \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 16 GLOBECOM 87 , pages 1459 -LCB- 1467 , November 1987 . -LSB- 2 -RSB- F. Ayadi , J. Hayes , and M. Kavehrad . WDM Cross-Connected Star Topology for the Bilayered Shufflenet . Journal of Lightwave Technology , 12 -LRB- 9 -RRB- :1668 -LCB- 1678 , September 1994 . -LSB- 3 -RSB- C. A. Brackett . Dense Wavelength Division Multiplexing Networks : Principles and Applications . IEEE Journal on Selected Areas in Communications , 8:948 -LCB- 964 , August 1990 . -LSB- 4 -RSB- M. Eisenberg and N. Mehravari . On the Performance of Multihop , Multichannel Lightwave Networks and Non-uniform Traffic . IEEE Journal on Selected Areas in Communications , 6 -LRB- 7 -RRB- :1063 -LCB- 1078 , August 1988 . -LSB- 5 -RSB- M. Gerla , B. Kannan , and P. Palnati . Protocols for an Optical Star Interconnect for High Speed Mesh Networks . In Proceedings of INFOCOM 95 , pages 146 -LCB- 153 , April 1995 . -LSB- 6 -RSB- M. Hluchyj and M. Karol . Shufflenet : An Application of Generalized Perfect Shuffles to Multihop Lightwave Networks . IEEE/OSA Journal of Lightwave Technology , 9 -LRB- 10 -RRB- :1386 -LCB- 1397 , October 1993 . -LSB- 7 -RSB- M. Karol and S. Shaikh . A Simple Adaptive Routing Scheme for Shufflenet Multihop Lightwave Networks . In Proceedings of GLOBECOM 88 , pages 1640 -LCB- 1647 , 1988 . -LSB- 8 -RSB- P. Kermani and L. Kleinrock . Virtual Cut-through : A New Computer Communication Switching Technique . Computer Networks , 3 -LRB- 3 -RRB- :267 -LCB- 286 , September 1979 . -LSB- 9 -RSB- L. Kleinrock , N. Bambos , J. Cong , E. Gafni , M. Gerla , and L. Bergman . Optimic : A Scalable Distributed , All-Optical Terabit Network . Journal of High Speed Networks . To appear in Special Issue on All-Optical Networks . -LSB- 10 -RSB- L. Kleinrock et al. . The Supercomputer Supernet Testbed : A WDM Based Supercomputer Interconnect . IEEE JSAC/JLT . To appear in Special Issue on Multiple Wavelength Optical Technologies and Networks . -LSB- 11 -RSB- E. Leoanardi , F. Neri , P. Palnati , and M. Gerla . Congestion Control Techniques in Asynchronous Wormhole Routing Networks . Submitted for publication . -LSB- 12 -RSB- B. Mukherjee . WDM-based Local Lightwave Networks Part II : Multi-Hop Systems . IEEE Network , 6 -LRB- 4 -RRB- :20 -LCB- 32 , July 1992 . -LSB- 13 -RSB- P. Palnati , M. Gerla , and E. Leonardi . Deadlock-free Routing in a Hierarchical Supercomputer Interconnection Network . Submitted for publication . \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 15 2.00 4.00 6.00 8.00 10.00 12.00 14.00 16.00 18.00 1 10 100 1000 10000 100000 Average distance Number of nodes Bidirect . Unid . p = 2 Bilayered Unid . p = 4 Figure 6 : The average distance -LRB- in hops -RRB- for the following topologies : shufflenet with p = 2 , shufflenet with p = 4 , bidirectional shufflenet with p = 2 and bilayered shufflenet . 5 Conclusions The bidirectional shufflenet is a multihop topology derived from the traditional shufflenet topology . It provides a natural way to implement a hop-by-hop backpressure flow control mechanism . The need for such a mechanism arises due to worm loss caused by buffer overflow . The use of the bidirectional shufflenet topology along with the hop-by-hop backpressure flow control mechanism eliminates worm loss . Computation of shortest paths in the bidirectional shufflenet was presented . Also , the calculation of the average number of hops was shown . The average hop measure for the bidirectional shufflenet is comparable with that of the bilayered shufflenet . However , both these topologies have a greater average hop distance than a shufflenet that has the same number of transmitter/receiver pairs -LRB- 2p per node -RRB- . The bidirectional shufflenet has several features that make it attractive : flow control capability -LSB- 14 -RSB- , higher throughputs and capability to do deadlock-free routing -LSB- 13 -RSB- . This multihop topology fares very well in comparison with the traditional shufflenet . Besides , it also lends itself to design of practical networks that use the wormhole routing and backpressure flow control mechanisms such as the SSN project . References -LSB- 1 -RSB- A. S. Acampora . A Multichannel Multihop Local Lightwave Network . In Proceedings of \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 14 -LRB- 0,0 -RRB- -LRB- 0,5 -RRB- -LRB- 1,0 -RRB- -LRB- 1,1 -RRB- -LRB- 1,4 -RRB- -LRB- 1,5 -RRB- -LRB- 1,6 -RRB- -LRB- 1,7 -RRB- -LRB- 0,7 -RRB- -LRB- 0,6 -RRB- -LRB- 0,4 -RRB- -LRB- 0,3 -RRB- -LRB- 0,2 -RRB- -LRB- 0,1 -RRB- -LRB- 1,2 -RRB- -LRB- 1,3 -RRB- -LRB- 2,0 -RRB- -LRB- 2,1 -RRB- -LRB- 2,2 -RRB- -LRB- 2,3 -RRB- -LRB- 2,4 -RRB- -LRB- 2,5 -RRB- -LRB- 2,6 -RRB- -LRB- 2,7 -RRB- -LRB- 0,0 -RRB- -LRB- 0,1 -RRB- -LRB- 0,2 -RRB- -LRB- 0,3 -RRB- -LRB- 0,4 -RRB- -LRB- 0,5 -RRB- -LRB- 0,6 -RRB- -LRB- 0,7 -RRB- Figure 3 : A 24 node shufflenet with p = 2 , k = 3 . -LRB- 0,0 -RRB- -LRB- 0,5 -RRB- -LRB- 1,0 -RRB- -LRB- 1,1 -RRB- -LRB- 1,4 -RRB- -LRB- 1,5 -RRB- -LRB- 1,6 -RRB- -LRB- 1,7 -RRB- -LRB- 0,7 -RRB- -LRB- 0,6 -RRB- -LRB- 0,4 -RRB- -LRB- 0,3 -RRB- -LRB- 0,2 -RRB- -LRB- 0,1 -RRB- -LRB- 1,2 -RRB- -LRB- 1,3 -RRB- -LRB- 2,0 -RRB- -LRB- 2,1 -RRB- -LRB- 2,2 -RRB- -LRB- 2,3 -RRB- -LRB- 2,4 -RRB- -LRB- 2,5 -RRB- -LRB- 2,6 -RRB- -LRB- 2,7 -RRB- -LRB- 0,0 -RRB- -LRB- 0,1 -RRB- -LRB- 0,2 -RRB- -LRB- 0,3 -RRB- -LRB- 0,4 -RRB- -LRB- 0,5 -RRB- -LRB- 0,6 -RRB- -LRB- 0,7 -RRB- Figure 4 : A 24 node bidirectional shufflenet with p = 2 , k = 3 . -LRB- 0,0 -RRB- -LRB- 0,5 -RRB- -LRB- 1,0 -RRB- -LRB- 1,1 -RRB- -LRB- 1,4 -RRB- -LRB- 1,5 -RRB- -LRB- 1,6 -RRB- -LRB- 1,7 -RRB- -LRB- 0,7 -RRB- -LRB- 0,6 -RRB- -LRB- 0,4 -RRB- -LRB- 0,3 -RRB- -LRB- 0,2 -RRB- -LRB- 0,1 -RRB- -LRB- 1,2 -RRB- -LRB- 1,3 -RRB- -LRB- 2,0 -RRB- -LRB- 2,1 -RRB- -LRB- 2,2 -RRB- -LRB- 2,3 -RRB- -LRB- 2,4 -RRB- -LRB- 2,5 -RRB- -LRB- 2,6 -RRB- -LRB- 2,7 -RRB- -LRB- 0,0 -RRB- -LRB- 0,1 -RRB- -LRB- 0,2 -RRB- -LRB- 0,3 -RRB- -LRB- 0,4 -RRB- -LRB- 0,5 -RRB- -LRB- 0,6 -RRB- -LRB- 0,7 -RRB- Figure 5 : A 24 node bilayered shufflenet with p = 2 , k = 3 . \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 13 3.3 Flow Control Bidirectional shufflenet provides a natural way for implementing hop-by-hop backpressure flow control . For this purpose , a fixed size buffer , called slack buffer , is associated with each receiver in the nodes . Flow control signals stop and go are used to regulate the flow of traffic across the optical link . A stop/go signal is sent in the direction opposite to the one on which the traffic is being received -LRB- thus , the need for bidirectional links -RRB- . Suitable high-water and low-water marks are used to decide when to send a stop signal and when to send a go signal respectively . The study of flow control on the bidirectional shufflenet topology has been presented elsewhere -LSB- 14 -RSB- . 4 Performance Comparisons In this section , we compare the bidirectional shufflenet with the traditional shufflenet -LSB- 6 -RSB- and another variation of the shufflenet topology called the bilayered shufflenet -LSB- 2 -RSB- . The bilayered shufflenet uses the same number of resources as the bidirectional shufflenet -LRB- 2p transmitters and receivers per node -RRB- . In addition to the connectivity of the regular shufflenet , p links from each node are connected to the previous column to a \ mirror '' image of stations . Thus , the resulting topology is such that all stations are wrapped twice around the same cylinder -LRB- one shufflenet in one direction and another shufflenet in the opposite direction -RRB- . See Fig. 5 for a p = 2 , k = 3 , 24 node bilayered shufflenet . Figs. 3 and 4 show a 24 node unidirectional shufflenet and bidirectional shufflenet for comparison . In Table 6 , we show the average number of hops encountered by multihop traffic for three topologies : a bidirectional shufflenet , shufflenet and the bilayered shufflenet . In Fig. 6 , the average distances for the three topologies are plotted for comparison . As is evident , the average hop distance in the bilayered shufflenet and the bidirectional shufflenet are comparable . Both these topologies have a greater average hop distance than shufflenets when the same number of resources -LRB- transmitter/receiver pairs -RRB- are considered per node . However , bidirectional shufflenet provides support for hop-by-hop backpressure flow control thus avoiding worm loss and providing higher throughputs in the wormhole routing context -LSB- 14 -RSB- which is not possible in unidirectional shufflenets . Thus , it is clear that despite having a higher average hop distance , performance does not suffer . Also , bidirectional topologies , in general , have two further advantages : if deflection routing is used , the cost of deflection is two hops -LRB- for a unidirectional shufflenet , the cost would be k hops -RRB- -LSB- 11 -RSB- , and also , it is possible to place two nodes that exchange a lot of traffic next to each other , thus avoiding congestion in the rest of the network -LRB- for a unidirectional shufflenet , the traffic in at least one direction has to compete with other traffic -RRB- . \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 12 h N -LRB- h -RRB- d h < d d pd d < h < k ? d Sipd k ? d < = h < k Sipd + Sjpk?d ? SiSj k < = h < k + d -LRB- -LRB- Si ? Tz1 -RRB- pd + -LRB- Sj ? Tz2 -RRB- pk?d ? -LRB- Si ? Tz1 -RRB- -LRB- Sj ? Tz2 -RRB- h = k + d P k ? N -LRB- k + d ? 1 -RRB- Table 5 : Distribution of N -LRB- h -RRB- d p K N E -LSB- d -RSB- bs E -LSB- d -RSB- us E -LSB- d -RSB- bil p K N E -LSB- d -RSB- bs E -LSB- d -RSB- us E -LSB- d -RSB- bil 2 2 8 1.5 2.0 2.00 4 2 32 2.00 2.26 2.25 2 3 24 2.29 3.26 2.40 4 3 192 2.99 3.69 2.68 2 4 64 3.375 4.63 3.63 4 4 1024 4.22 5.17 4.17 2 5 160 4.312 6.069 4.22 4 5 5120 5.31 6.67 4.69 2 6 384 5.44 7.53 5.53 4 6 24576 6.53 8.20 6.17 2 7 896 6.45 9.017 6.14 8 2 128 2.25 2.37 2.38 2 8 2048 7.60 10.50 7.51 8 3 1536 3.33 3.86 2.80 2 9 4608 8.66 12.00 8.11 8 4 16384 4.62 5.36 4.35 2 10 10240 9.81 13.50 9.50 2 11 22528 10.90 15.00 10.05 2 12 49152 12.06 16.50 11.50 Table 6 : Average distances for bidirectional shufflenets -LRB- E -LSB- d -RSB- bs -RRB- , unidirectional shufflenets -LRB- E -LSB- d -RSB- us -RRB- and finally bilayered shufflenets -LRB- E -LSB- d -RSB- bil -RRB- . \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 11 zeros in the first k ? d positions is given by : Sipd 8h < k -LRB- 9 -RRB- -LRB- Si ? Tz1 -RRB- pd 8h > = k -LRB- 10 -RRB- -LRB- 11 -RRB- where Si , Ti , z1 are defined below : Si = 8i < -LRB- 12 -RRB- Si = -LRB- i + 1 -RRB- pi ? ip -LRB- i ? 1 -RRB- 8i > = -LRB- 13 -RRB- Ti = 8i < -LRB- 14 -RRB- Ti = i -LRB- p ? 1 -RRB- pi ? 1 + i -LRB- i ? 1 -RRB- 2 -LRB- p ? 1 -RRB- pi ? 2 8i > = -LRB- 15 -RRB- i = b -LSB- -LRB- h ? d -RRB- = 2 -RSB- c -LRB- 16 -RRB- j = b -LSB- -LRB- h ? k + d -RRB- = 2 -RSB- c -LRB- 17 -RRB- z1 = d + 2i ? k -LRB- 18 -RRB- z2 = k ? d + 2j ? k -LRB- 19 -RRB- For paths of length at least k ? d hops , approach B paths exist . Similar arguments allow us to evaluate the number of nodes reachable through approach B paths . N -LRB- h -RRB- d with h > = k ? d is given by the the sum of sets of nodes that can be reached through approach F and approach B . The final result is shown in table 5 . We now calculate L -LRB- d -RRB- , the sum total of all paths -LRB- in hops -RRB- from the node under observation to all the nodes belonging to a given column d columns away as : L -LRB- d -RRB- = i = lMAX X i = 0 -LSB- N -LRB- lMAX -RRB- d ? N -LRB- i -RRB- d -RSB- -LRB- 20 -RRB- where lmax is the length of the longest path linking the source node to the destination nodes d columns away . The average distance E -LSB- d -RSB- bs can now be obtained by summing over all values of d and dividing by the total number of nodes to which paths of non-zero length exist , i.e. , all nodes except for the source node . This gives us the following equation : E -LSB- d -RSB- bs = Pb -LSB- k = 2 -RSB- c w = ? b -LSB- -LRB- k ? 1 -RRB- = 2 -RSB- c L -LRB- w -RRB- kpk ? 1 -LRB- 21 -RRB- In Table 6 , we show the average number of hops -LRB- E -LSB- d -RSB- bs -RRB- in a bidirectional multihop topology for different values of p and k using the equation for E -LSB- d -RSB- bs . We also show values for the shufflenet and the bilayered shufflenet ; we discuss those in the next section . \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 10 h h + h ? d d d + 2 d + 1 1 d + 4 d + 2 2 ... ... ... k ? d ? 1 d + -LRB- k ? 2d ? 1 -RRB- = 2 -LRB- k ? 2d ? 1 -RRB- = 2 k ? d k ? d k ? d + 1 d + -LRB- k ? 2d + 1 -RRB- = 2 -LRB- k ? 2d + 1 -RRB- = 2 k ? d + 2 1 k ? d + 1 k ? d + 3 d + -LRB- k ? 2d + 3 -RRB- = 2 -LRB- k ? 2d + 3 -RRB- = 2 ... ... ... k + d k + d Table 3 : Decomposition of paths -LRB- in hops -RRB- for odd k to reach nodes d columns away from the source h h + h ? d d d + 2 d + 1 1 d + 4 d + 2 2 ... ... ... k ? d d + -LRB- k ? 2d -RRB- = 2 -LRB- k ? 2d -RRB- = 2 k ? d k ? d k ? d + 2 d + -LRB- k ? 2d -RRB- = 2 + 1 -LRB- k ? 2d -RRB- = 2 + 1 k ? d + 2 1 k ? d + 1 ... ... ... k + d k + d Table 4 : Decomposition of paths for even k to reach nodes d columns away from the source \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 9 solely of hops in the opposite direction exist . This is reflected in the tables . For odd k , the paths of the two different families have different length : k ? d ? 1 , k ? d + 1 , k ? d + 3 and so on for approach F paths ; k ? d , k ? d + 2 , k ? d + 4 and so on for approach B paths . For even k , we have paths belonging to the two approaches for the same k ? d , k ? d + 2 etc. . Paths due to approach B satisfy the following equations : h + + h ? = k ? d + 2i 8i > = -LRB- 3 -RRB- h + ? h ? = k ? d -LRB- 4 -RRB- We compute N -LRB- h -RRB- d as the number of nodes that can be reached with paths of length less than or equal to h given that the destination column is d away from the source column . In the following we assume , without loss of generality , that node 00 : : : 00 of column ci is the source , and we consider a destination column such that d0 = d < k ? d0 . If the minimal pathlength is d , the corresponding paths are approach F paths . Through these paths it is possible to reach all the nodes of the destination column whose representation contains zeros in the k ? d leftmost positions . The number of such nodes is pd . Paths of length d + 2 can be divided into two groups : G1d +2 paths in which a backward hop is followed by d + 1 forward hops and G2d +2 paths , in which d + 1 forward hops are followed by 1 backward hop . G1d +2 paths reach all the pd +1 nodes whose representation contains arbitrary symbols in the leftmost position and in the d rightmost positions , and zeros elsewhere . G2d +2 paths reach all the pd +1 nodes whose representations have zeros in the k ? d ? 1 left positions . An intersection between node reachable through G1d +2 and G2d +2 paths exists , it contains all those nodes whose representations have zeros in k ? d leftmost positions -LRB- the same nodes reachable through paths of d length -RRB- . Thus , N -LRB- d + 2 -RRB- d = 2 ? pd +1 ? pd . All approach F paths of length h = d + 2i reach nodes whose representation has at least k?d ? i consecutive zeros in the k ? d leftmost symbols . In fact for nodes satisfying this condition , and only for these nodes , the shortest path algorithm described in the previous section provides a path of length not greater than d + 2i . Assuming k = 10 , d = 2 , i = 3 , the only nodes reachable through approach F paths of length not greater than d + 2i = 8 are : p0p0p0p0p0 -LRB- 5 -RRB- p00 p0p0p0p0 -LRB- 6 -RRB- p0p00 p0p0p0 -LRB- 7 -RRB- p0p0p00 p0p0 -LRB- 8 -RRB- The first group of nodes is reached through paths along bbbfffff ; the second group through paths bbfffffb , etc. . The number of nodes whose representation contains at least k ? d ? i consecutive \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 8 Size of Direction of Number of String to shift jaj jbj hops hops into W -LRB- i -RRB- f d0 B0 > f d0 + jaj B0 , do n't care b jaj a > b jbj do n't care f jbj + d0 b , B0 > > b jbj do n't care f jbj + d0 + jaj b , B0 , do n't care b jaj a Table 1 : Shortest path routing from W -LRB- i -RRB- to W -LRB- j -RRB- using essentially forward hops -LRB- Approach F -RRB- . Size of Direction of Number of String to shift jaj jbj hops hops into W -LRB- i -RRB- b k ? d0 B > f jaj do n't care b jaj + k ? d0 a , B > b jbj + k ? d0 do n't care , B f jbj b > > f jaj do n't care b jaj + k ? d0 + jbj a , B , do n't care f jbj b Table 2 : Shortest path routing from W -LRB- i -RRB- to W -LRB- j -RRB- using essentially backward hops -LRB- Approach B -RRB- . \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 7 hf = d0 + jaj + jbj exists it will necessarily be a shortest path . Based upon the size of strings a and b , we can use Table 1 to decide the path -LRB- as sequence of hops -RRB- and the path length using approach F . It must be noted that every path in the table satisfies the condition hf = d0 + jaj + jbj and as a consequence is a shortest path among approach F paths . Now , consider approach B . This case is analogous to the one presented above with the substitution of k ? d wherever d was used and b where f was used . Thus , now we split the representations for nodes i and j , W -LRB- i -RRB- = A0A and W -LRB- j -RRB- = BB0 , where jAj = jBj = k ? d and jA0 j = jB0 j = d. Compare the substrings A0 and B0 digitwise . Let the result comp -LRB- A0 ; B0 -RRB- = amb . a , m and b have the same meaning as before . In this case , we can use Table 2 to decide the path and the path length using mainly backward hops . Apart from the two approaches discussed , another path exists in which k + d forward -LRB- if d0 < = k?d0 -RRB- or backward hops -LRB- if k ? d0 < = d0 -RRB- are made . The three paths so obtained are compared on the basis of their length and then the shortest one is chosen . The routing is derived from Tables 1 and 2 . 3.2 Average number of hops In order to calculate the average distance in the network , we pick a node at random and calculate the average distance from that node to every other node . In the previous section we provided an algorithm to find the shortest path between any pair of nodes . To evaluate the average distance in a bidirectional shuffle , we list all possible shortest paths obtained from the algorithm and count the length of each path thereby , getting the length distribution . Paths of several lengths are possible from the node i belonging to column ci to nodes belonging to a column ji + d0jk , as discussed earlier . In table 3 , we show the decomposition of such paths in terms of the number of forward hops and number of backward hops for the case when k is an odd integer . A corresponding table -LRB- Table 4 -RRB- is presented for the even k case . In both tables , h + represents the number of forward hops if d0 < = k?d0 , and the number of backward hops if k?d0 < = d0 . On the other hand , h ? represents the number of backward hops if d0 < = k ? d0 , and the number of forward hops if k ? d0 < = d0 . Paths shorter than k?d hops belonging to only one of the two approaches exist . Possible lengths for these paths are d -LRB- all the hops in the same direction -RRB- , d + 2 -LRB- d + 1 in one direction and 1 in the other -RRB- etc. . All the possible lengths can be obtained by solving the following equations when h < k ? d : h + + h ? = d + 2i 8i > = -LRB- 1 -RRB- h + ? h ? = d -LRB- 2 -RRB- When h = k?d , paths due to the other approach from node i to the destination column composed \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 6 hop . The nodes reached are those belonging ci whose representation is p0p0000 : : : 0 . The same set of nodes can be reached through paths of only four hops -LRB- instead of 8 -RRB- : ffbb . The previous example can be formalized in the following assertion whose proof is given in appendix : shortest paths in the bidirectional shufflenet topology are of the type f , b , fb , bf , fbf and bfb only , where f and b are sequences of one or more hops in the forward direction and the backward direction , respectively . If a path is of fbf or bfb type , the longest sequence of hops is the middle one . We consider only shortest paths for the rest of the paper . Let the source node i in column ci have a representation W -LRB- i -RRB- = xk ? 1xk ? 2 : : : x2x1x0 . Let the destination node j in column cj have a representation W -LRB- j -RRB- = yk ? 1yk ? 2 : : : y2y1y0 . Let d0 = -LRB- jcj ? cijk -RRB- . Let d = min -LRB- d0 ; k ? d0 -RRB- be the distance between source and destination columns . A node d0 columns away can be reached through paths of type f , b , fb , bf , fbf and bfb using two possible approaches -LCB- mainly by hops in the forward direction -LRB- Approach F -RRB- or mainly by hops in the backward direction -LRB- Approach B -RRB- -LRB- See Fig. 2 -RRB- . In approach F , at least d0 hops are made in the forward direction . In approach B , at least k ? d0 hops are made in the backward direction . Shortest paths have a length not greater than k + d hops , since through k + d hops in the same direction -LRB- an f or b path -RRB- , it is possible to reach all the nodes of the destination column . To discover the shortest path , we calculate the shortest path by each approach and then select the shorter one . Consider first approach F paths . In this case at least d0 leftmost symbols of the source address are discarded during the shifting process and the remaining digits are shifted left by d0 positions with respect to their original position . To find the shortest path from source to destination we evaluate the minimum number of new digits that should be inserted in order to get W -LRB- j -RRB- from W -LRB- i -RRB- . We split the representations for nodes i and j into two substrings : W -LRB- i -RRB- A0A and W -LRB- j -RRB- = BB0 . The substrings A and B are each of length k ? d0 and the substrings A0 and B0 are each of length d0 . Now , compare the substrings A and B digitwise . Let the result comp -LRB- A ; B -RRB- = amb , where a ; m and b are strings -LRB- possibly empty -RRB- . m is the maximal substring of B which matches digits in the same places of the string A. a and b are the strings to the left and right of m respectively , where B and A differ . For example , if A = 000110000 and B = 101111011 , then a = 101 , jaj = 3 , b = 1011 , jbj = 4 , m = 11 and jmj = 2 . The minimum number of new digits that should be inserted to get W -LRB- j -RRB- from W -LRB- i -RRB- is d0 + jaj + jbj . The digits in m are common to the source and destination representation and must not be replaced . Since the number of arbitrary symbols left after the shifting process in the destination address is not greater than max -LRB- hf ; hb -RRB- , and since approach F paths are considered , it follows that hf > = d0 + jaj + jbj . The number of backward hops is hf ? d0 since hf ? hb = d0 . If a path with \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 5 C11C10 C9C8 C0C1C2C3 C4C5C6C7 C14C15 C13C12 0,0 0,0 0,1 0,1 0,2 0,2 0,3 0,3 1,0 1,1 1,2 1,3 0,3 0,2 1,2 1,1 0,1 1,0 0,0 0,0 0,1 0,2 0,31,3 Figure 1 : An 8-node shufflenet and an 8-node bidirectional shufflenet multihop topology . The first and last columns represent the same nodes . ic c j 6 4 5 1 3 2 ColumnColumn BackwardHop HopForward Column Column k-1 d Figure 2 : Two types of paths to reach destination node in column cj from source node in column ci -LCB- Paths 1 -LRB- bfb -RRB- , 2 -LRB- fb -RRB- and 3 -LRB- f -RRB- are essentially composed of forward hops -LRB- Approach F -RRB- ; paths 4 -LRB- bfb -RRB- , 5 -LRB- bf -RRB- and 6 -LRB- b -RRB- are composed essentially of backward hops -LRB- Approach B -RRB- . \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 4 3 Properties of Bidirectional Shufflenet In this section , we examine some of the interesting properties of the bidirectional shufflenet . First , we show how to compute shortest paths for routing in this topology . The computation of shortest paths leads us to a derivation of the average number of hops taken by traffic sent through the multihop network . Then we discuss the natural support that the bidirectional shufflenet topology provides for hop-by-hop flow control . 3.1 Shortest Path Routing As the bidirectional shufflenet topology is a regular topology , for our analysis , we choose one node at random and describe how to compute the shortest paths from this node to all other nodes . Every path on a bidirectional shuffle is composed of sequences of forward hops and/or backward hops . Let us examine a sequence composed of hf forward hops followed by hb -LRB- hb < hf -RRB- backward hops . The only nodes reachable from a node i in column ci with representation W -LRB- i -RRB- = xk ? 1xk ? 2 : : : x2x1x0 , through a sequence of hf forward hops are those belonging to column jci + hf jk whose representation is W -LRB- x -RRB- = xk ? 1 ? hf xk ? 2 ? hf : : : x0P where P = p0p0 : : : p0 and jP j = hf . Taking hb backward hops from W -LRB- x -RRB- , it is possible to reach the nodes of column jci + hf ? hbjk whose representation is W -LRB- y -RRB- = P 00xk ? 1 ? hf xk ? 2 ? hf : : : x1x0P where P 00 = p00p00 : : : p00 , jP 00j = hb , P = p0p0 : : : p0 and jP j = hf ? hb . It is important to note that after the shifting process associated with the path of hf + hb hops , only hf digits are present in W -LRB- y -RRB- since hf > hb . In general , if after h + hops in one direction , h ? hops in the other direction are made , the arbitrary symbols inserted during the first part of the shifting process are in part or totally discarded during the second part of the shifting process , and the arbitrary number of symbols left in the shift register after the entire process is max -LRB- h + ; h ? -RRB- . This observation is formally proved in the Appendix . As a consequence , at least k hops in the same direction are necessary to reach a node whose representation has no common substring with the source representation . The maximum path length in the bidirectional shufflenet topology is b3k ? 1 2 c hops -LRB- k hops to reach any other node belonging to the source column and at most bk ? 12 c more hops are necessary to reach the destination column . -RRB- It is important to realize that paths composed of many sequences of forward hops and backward hops are not optimal since after the entire process of shifting only few inserted symbols are left in the shift register . The following example can help to clarify this concept . Let the node in column ci whose representation W -LRB- i -RRB- is 000 : : : 000 be the source of packets routed through paths composed by 8 hops : ffbbffbb , where f is a forward hop and b is a backward \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 3 rectional links . Thus , though a bidirectional shufflenet with parameters p and k has N = kpk nodes , each node has 2p transmitters and receivers i.e. the network connectivity is 2p . The N nodes -LRB- as in shufflenet -RRB- are arranged in k columns of pk nodes each ; each node thus has a unique tuple -LRB- c ; r -RRB- as before . Out of the 2p transmitters at each node , p are connected to nodes in the next column and p are connected to nodes in the previous column . An example of an eight node bidirectional shufflenet is shown in Fig. 1 . We define the following notation . The k nodes in the same position of the different columns are said to belong to the same \ row '' of the shuffle . A node i in row position ri of column ci is connected to 2p nodes of which p nodes are at positions jprijpk ; jpri + 1jpk ; ? ? ? ; jp -LRB- ri + 1 -RRB- ? 1jpk of column jci + 1jk and p nodes are at positions -LRB- jrijp -RRB- ; -LRB- jrijp + pk ? 1 -RRB- ? ? ? -LRB- jrijp + -LRB- p ? 1 -RRB- pk ? 1 -RRB- of column jci ? 1jk ; connections are wrapped around from the kth column to the first , i.e. , the topology ideally covers the lateral surface of a cylinder . Each node i in row ri has a representation W -LRB- i -RRB- that is a base p string of length k. W -LRB- i -RRB- is the representation of ri in base p . In order to distinguish between nodes at the same position in different columns , we also associate with each node a column identifier . Using W -LRB- i -RRB- , it is possible to derive the representations of the nodes to which node i is connected . A node i with representation W -LRB- i -RRB- belonging to column ci has bidirectional links to nodes belonging to column jci + 1jk whose representations are obtained from W -LRB- i -RRB- by shifting the string W -LRB- i -RRB- one position to the left -LRB- discarding the most significant digit of W -LRB- i -RRB- in the process -RRB- and inserting an arbitrary base p digit in the least significant position . For example , a node with representation xxx0 in column j has links to xx0p0 in the column jci + 1jk , where p0 is a base p digit -LRB- 0 < = p0 < = p ? 1 -RRB- .1 Bidirectional links also exist between i and the nodes belonging to column jci ? 1jk whose representations are obtained from W -LRB- i -RRB- by shifting the string W -LRB- i -RRB- one position to the right -LRB- discarding the least significant digit of W -LRB- i -RRB- in the process -RRB- and inserting an arbitrary base p digit in the most significant position . Starting from a node and carrying out the process of shifting representations and inserting symbols iteratively , it is possible to arrive at the representation of any node in the network . The sequence of right or left shifts define the direction -LRB- backward and forward , respectively -RRB- in which the hops are taken . The base p digit shifted in at each hop identifies the next transmitter on the route . 1For the rest of the paper , symbols like p0 , p00 , xi , yi etc denote arbitrary base p digits . \ Analysis of the Bidirectional Shufflenet ... '' Leonardi et al. 2 Examples of multihop virtual topologies include Shufflenet , Manhattan Street Networks and de Bruijn Graphs -LSB- 12 -RSB- . Multihop topologies are virtual topologies as they are built upon a physical topology -LRB- usually a star topology -RRB- . The ` links ' of the virtual topology are different wavelengths that the transmitters and the corresponding receivers -LRB- as defined by the topology -RRB- are tuned to . Optical fibers offer a vast bandwidth of about 25,000 gigahertz at the 1.55 ? m passband -LRB- as also at the 0.85 and 1.3 ? m passbands -RRB- . Throughputs higher than traditional electronic networks can be achieved by employing dense Wavelength Division Multiplexing -LRB- WDM -RRB- -LSB- 3 -RSB- to access this vast bandwidth offered by the optical fiber . In the context of wormhole routing -LSB- 8 -RSB- -LRB- as in the Supercomputer SuperNet project -LSB- 9 , 10 , 5 -RSB- -RRB- , losses are possible due to buffer overflows at the input of the nodes . A bidirectional topology allows us to support backpressure flow control in order to avoid such loss . The usefulness of the bidirectional shufflenet multihop topology in this regard was demonstrated elsewhere -LSB- 14 -RSB- . The bidirectional shufflenet also lends itself to several approaches for deadlock-free routing -LSB- 13 -RSB- . Other variations of the shufflenet , reverse channel augmented shufflenet -LRB- RC-shufflenet -RRB- -LSB- 15 -RSB- and bilayered shufflenet -LSB- 2 -RSB- have been explored earlier . Both variations have a shorter diameter than the traditional shufflenet . However , neither is as naturally suited to hop-by-hop flow control as the bidirectional shufflenet . Since there is no expression for the average hop distance in RC-shufflenet , we plot and compare the average hop distances for bidirectional shufflenet with the traditional shufflenet and the bilayered shufflenet only . In this paper , we describe the bidirectional shufflenet multihop topology -LRB- section 2 -RRB- and examine its properties in section 3 . We show how to compute the shortest paths and also calculate the average number of hops in this topology . We plot and compare the average hop distances for various topologies in section 4 . We present our conclusions in section 5 . 2 Bidirectional Shufflenet Bidirectional shufflenet is derived from the shufflenet multihop topology -LSB- 1 , 6 , 12 , 7 , 4 -RSB- . A recirculating perfect shuffle -LRB- shufflenet -RRB- with parameters p and k has N = kpk nodes . Each node has p transmitters and receivers . p is also called the connectivity of the network . The N nodes are arranged in k columns of pk nodes each . Thus , each node can be uniquely identified by a tuple -LRB- c ; r -RRB- where c 2 -LSB- 0 ; k ? 1 -RSB- and r 2 -LSB- 0 ; pk ? 1 -RSB- . Since each node in a shufflenet has p transmitters , it is connected to p nodes belonging to the next column . The maximum path length -LRB- in hops -RRB- for a shufflenet is 2k ? 1 . An example of an eight node shufflenet is shown in Fig. 1 . The bidirectional shufflenet replaces the unidirectional links of the shufflenet topology with bidi - Analysis of the Bidirectional Shufflenet Multihop Topology ? Emilio Leonardiy , Prasasth Palnati and Mario Gerla fleonardi,palnati,gerlag@cs.ucla.edu Computer Science Department , UCLA , 405 Hilgard Avenue , Los Angeles CA 90024 . Tel : -LRB-310-RRB- 825-1888 ; Fax : -LRB- 310 -RRB- UCLA CSD Abstract Bidirectional shufflenet is a virtual multihop topology for optical networks that has been motivated by a need to support backpressure flow control mechanism in the wormhole routing context -LSB- 14 -RSB- . The bidirectional shufflenet topology has several desirable features including low average hop distance , support for backpressure flow control , high throughput and deadlock-free routing . In this paper , we analyze the properties of this topology . More specifically , we show how to compute shortest paths and derive the average number of hops . We compare the average hop results with those of other virtual topologies -LRB- shufflenet and bilayered shufflenet -RRB- . 1 Introduction A multihop virtual topology is composed of stations -LRB- each with a fixed number of transmitters and receivers -RRB- and ` links ' between these stations such that any station can reach any other station by making one or more hops along the links . A ` link ' is a point-to-point channel established for communication between two stations . Stations on the path from source to destination act as intermediate nodes forwarding the traffic along the next link on the path to the destination . ? This work was supported by the USDOD ARPA/CSTO under Contract DABT63-93-C-0055 . The Distributed Supercomputer Supernet -LCB- A Multi Service Optical Intelligent Network . yDepartment of Electronics , Politecnico di Torino , Torino 10129

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

multihop virtual topology
shortest path routing