Patent ID: 6963537

Claim:
A method for routing a data flow from a source node to a destination node among a plurality of nodes mutually linked in a ring by segments of a communication network, configured so that the data flow can traverse the ring in either of first and second, mutually-opposing directions of communication, the method comprising: maintaining at each of the nodes a record of respective levels of use of a network resource on the segments in the ring for both the first and second directions of communication; selecting at the source node, responsive to the respective levels of use, one of the directions in which to route the data flow to the destination node; sending a notification from the source node to the other nodes in the ring of an additional allocation of the resource required by the source node in order to convey the data flow to the destination node in the selected direction on the segments in the ring; and updating the record of the levels of use of the resource at each of the nodes, responsive to the notification from the source node, wherein sending the notification comprises sending a data packet from node to node in succession around the ring in the selected direction, and receiving the data packet back at the source node after the packet has traversed the ring, and wherein updating the record comprises, after receiving the data packet back at the source node, sending an additional data packet from the source node around the ring in the selected direction so as to notify the other nodes that the additional allocation of the resource has been made, and wherein sending the data packet comprises sending a lock packet, so as to prevent the nodes other than the source node from allocating the resource, and wherein sending the additional data packet comprises sending an unlock packet, so that the nodes other than the source node can resume allocating the resource after the additional allocation by the source node has been completed.