US 20030219028 A1
A Resource Reservation System includes a Token Generation Unit (TGU) which generates and circulates among nodes of a communications system a Slotted Token (SLT) message having sub-fields to carry identification number for each input port in a node and the resource available for each input port. On receiving the message the Resource Control Unit (RCU) in each node can write port identification number, available resource in appropriate sub-fields of the SLT message, and reserve resources in other nodes by adjusting information in the sub-field associated with the other nodes.
1. A method to reserve resources in a communications system comprising the acts of:
(a) receiving in a node a message having at least one sub-field to carry identifying indicia for at least one port and associated space for carrying information associated with resources available at said at least one port;
(b) examining the message with a resource control unit;
(c) if said sub-field carries an identifying indicia that matches an ID (identification number) of an input port in said node write in the associated space resources available at said at least one port, if the identifying indicia matches a port ID for a port to which the node wishes to communicate adjusting resource information recorded in the space to reflect resources reserved by said node.
2. The method of
3. The method of
4. A node for use in a communications network including:
at least one input port operatively coupled to the housing;
at least one output port operatively coupled to said housing; and
a Resource Control Unit operatively positioned within said housing, said Resource Control Unit monitoring the at least one input port and communicating to other nodes resources available at said at least one input port and reserving resources in other nodes to which data is forwarded.
5. The node of
6. The node of
7. A system comprising:
a plurality of nodes;
interconnect medium operatively interconnecting the plurality of nodes; and
a Resource Control Unit operatively positioned in each of said plurality of nodes, said Resource Control Unit communicating to other nodes' resources available at its associated node and reserving resources in other nodes to which data is forwarded.
8. The system of
9. The system of
10. The system of
11. The system of
12. The system of
13. The system of
14. The system of
second transmission medium interconnecting Resource Control Units in the nodes.
15. In a system having a plurality of nodes interconnected by communications media a method to reserve resources comprising the acts of:
(a) generating a message having a plurality of sub-fields with each sub-field associated with a single input port;
(b) receiving the message in one of the plurality of nodes;
(c) writing in the sub-field associated with at least one input port of said one of the plurality of nodes information indicating resources available at said at least one input port;
(d) forwarding the message to another node;
(e) repeating steps (b)-(d) until all nodes have written the resources available at all input ports into said message.
16. The method of
said receiving node examining the sub-field associated with said input port in another node; and
adjusting the resources recorded in the sub-field associated with said input port in another node to reflect resources to be used in said another node to process data received from the receiving node.
17. A program product including:
a medium on which a computer program is recorded, said computer program including a first code set operable to generate a message having at least a sub-field in which identification indicia of at least one input port in a node is to be recorded and an associated space to carry information identifying resources available at said at least one input port; and
a second code set that causes the message to be forwarded.
18. The program product of
19. The program product of
20. A program product including:
a medium on which a computer program is recorded, said computer program including a first code set for determining arrival of a message in a node, said message containing at least one sub-field partitioned into an identification sector and a resource availability sector;
a second code set to examine said message writing identification information and resource availability information in respective sectors if said sectors are blank and adjusting information in the resource availability sector if the information in the identification sector matches that of a port in a node to which communication is desired.
 a) Field of the Invention
 The present invention relates to communications systems in general and in particular to resource reservations within said communications systems.
 b) Prior Art
 A conventional communications system or network is comprised of a plurality of nodes coupled by an interconnect medium. Communication is effected by one node termed “Source Node” sending data to another node termed the “Destination Node”. In order to maintain a particular Qualify of Service (QoS) the Destination Node must reserve sufficient resources to process the data without undue delay. In fact, not only must the destination node reserve sufficient resources but any intermediate node that the data must traverse before reaching its destination must also reserve sufficient resources to ensure prompt processing of the data within these intermediate nodes. For example, the nodes must have enough storage space to buffer the data before processing. If adequate buffering is not available the node may have to discard the data. In this example storage is a resource. But, in general, a resource can be anything required to receive and process data. As a consequence a resource may include memory space, processor cycle, link, bandwidth etc.
 The prior art provides several flow control proposals for managing data flow within communications networks. Resource management is an integral part of the flow control method. The prior art flow control proposals include Braden et al; Resource Reservation Protocol (RSVP), IETF RFC 2205, September 1997. The RSVP provides for receiver-initiated setup of resource reservation. In other words the destination node reserves resources based on a message sent by a source node. The RSVP protocol can be used by a host to request bandwidth from the network for data flows. The RSVP is usually used by routers to deliver bandwidth requests to all nodes along the patch or paths of a flow. The node issuing the RSVP can also request confirmation assuring that the request has been installed in the network. One of the drawbacks is that the RSVP protocol reserves resources only for simpler flows. Stated another way, RSVP requests resources in only one direction. To this end RSVP treats a sender (source) as logically distinct from a receiver (destination) even though the same application process may act simultaneously as both a sender and receiver.
 In another flow control scheme termed “Rate Base” the rate at which data is permitted to be delivered from a source to a destination is controlled via a feedback signal from destination to source. If resources are available at the destination the source may transmit data without restriction. If resources at the destination are in short supply or unavailable the rate of transmission is restricted to the point of cut off altogether. One such rate base technique is described in an ATM document #94-0735 entitled “Enhanced Proportional Rate Control Algorithm” by Larry Roberts, August 1994.
 In yet another flow control scheme termed “Credit Base Control”, a destination node generates and forwards “credits” to the Source node which may only transfer data if it has credits outstanding. The credits reflect the ability of the destination node to handle data. One such credit base controlled system is described in an ATM Forum document #94-0632 entitled “Credit-Based Proposal for ATM Traffic Management by Hunt et al., July 1994.
 Because the above techniques treat the Source Node and Destination Node as separate entity when in fact they may not, a more dynamic system and method for managing data flow including Resource Reservation is required.
 The Resource Reservation System of the present invention includes a Token Generation Unit which generates a special message termed a “Slotted Token (SLT)” which is transmitted to all nodes in the network. The SLT includes a plurality of sub-fields with each sub-field relating to a node in the network. Each sub-field carries an identification (ID) for each input port at the node and a value indicating resources available at the port.
 Each node is provided with a Resource Control Unit (RCU) that monitors input ports in the node and communicates via the SLT, to other nodes the available resources for each of the input ports. The RCU also reserves resources in other nodes to which said RCU may wish to send data. The SLT may be circulated in a path dedicated to transmit the SLT or in the interconnecting path which transmits data between the nodes. On its first pass the RCU in each node enters (write) the available resources for the input port in the space reserved in the SLT for that input port. Upon writing the information for all of its input ports, the SLT is forwarded to another node which does the same. The process continues until all nodes in the network make entries in the SLT. On the first or subsequent pass of the SLT each RCU reserves the resource it needs in a particular input port by subtracting the resource from the value recorded in the space associated with the particular port.
FIG. 1 shows a block diagram of the Decentralized Out-of-Band Resource Reservation system according to the teachings of the present invention.
FIG. 2 shows a graphical representation of the Slotted Token (SLT) format according to the teachings of the present invention.
FIG. 3 shows a flowchart for logic in the Token Generation Unit (TGU).
FIG. 4 is a flowchart for logic in the Resource Control Unit (RCU).
FIG. 5 shows a block diagram of the Decentralized In-band Resource Reservation Unit according to the teachings of the present invention.
 To simplify the description common elements are identified by the same name, numeral or other symbols in the figures.
FIG. 1 shows a block diagram of a Resource Reservation Communications System according to teachings of the present invention. The Resource Reservation Communications System includes a communications subsystem and a resource reservation subsystem. The communications subsystem includes Node0, Node1 . . . NodeN−1. The nodes are coupled together by interconnect medium 12. The communications subsystem may take a plurality of different forms. For example, the communications subsystem can be a box such as a router with each node being a blade in the router. In such an embodiment the interconnecting medium 12 could be a backplane in the router carrying a bus or optical channel for transmitting data between the respective blades. Likewise, the communications subsystem could be a plurality of boxes, each box representing a node, interconnected by an interconnecting medium 12 such as a local are network (LAN) or other types of communications highway such as Internet, etc. Stated another way, the communications subsystem can be any network in which data has to be transferred from one unit to another unit in the network.
 Referring to FIGS. 1 and 5, each node in the communications subsystem has one or more input ports and one or more output ports. In particular, Node0 has an input port labelled InP0 and output ports labelled OP0 and OP1. In a similar manner Node1 and NodeN−1 have appropriate input and output ports labelled as shown in the figure. As a general principle the direction of data flow in the resource reservation communications system 10 is shown by the arrows. Data transmission between nodes such as Node0 and NodeN−1 is transported along the interconnecting medium 12. Each input port and output port is provided with a buffer shown as a 3-sided symbol in the figures. The horizontal lines in the 3-sided symbol represent a stack or queue of data which is placed in the buffer. Of course other types of symbols can be used to represent the buffering without departing from the spirit or teaching of the present invention.
 Still referring to FIGS. 1 and 5, the resource reservation subsystem includes a resource control unit embedded in each of the nodes and a token generation unit interconnected by communications media 14 (FIG. 1) or interconnect medium 12 (FIG. 5). The communications media 14 can be any transmission medium on which a message termed “Slotted Token” (to be discussed hereinafter) generated by the token generation unit is transmitted. It should be noted that in FIG. 1 the Slotted Token is transmitted on a dedicated transmission path such as communications media 14 whereas in FIG. 5 the Slotted Token is transmitted on the interconnect medium 12 which also transmits the data. The functions which are performed by the Resource Control Unit (RCU) includes monitoring the input ports in the node in which the RCU is embedded and communicates to other nodes the available resources for its input ports. The RCU is also in charge of reserving resources in other nodes to which it needs to send data for processing. The RCU reserves resources in another node by subtracting the desired amount from the value carried in the Slotted Token (SLT) for the particular node. The token generation unit (TGU) generates a special message termed “Slotted Token” which is transmitted in turn to all the resource control units in the system. Even though the token generation unit is shown as a separate unit in FIGS. 1 and 5 the function of the TGU can be integrated with the nodes RCU thereby eliminating the need for a separate TGU. The claims of the present invention intend to cover both embodiments.
 Referring now to FIGS. 1, 2 and 5, the Slotted Token 16 includes a plurality of sub-fields each of which carries information relative to a node in the system. Turning to FIG. 2 for the moment, the first sub-field labelled Node0 Info carries information relative to Node0. Likewise, the sub-field labelled Node1 Info carries information for Node, and so forth. The information which is in the sub-field includes indicia representing the identification (i.d.) of the input ports associated with that node and the resources available at that input port. With particular reference to FIG. 2 the first sub-field for Node0, has partition labelled InP0 which carries the identification of that port and the partition labelled AvResInP0 carries the resource available at that input port. Likewise, for Node1 there are three input ports labelled InP1InP2 InP3. With the available resources for each of the input ports recorded in space adjacent to the input port ID. With this Slotted Token message being circulated a resource control unit can enter the port number and associated resource in the space allotted for that port. Likewise, the resource control unit can reserve resources in other ports by adjusting the available resource to indicate the resource that the node wants another node to reserve in order to process data from the requesting node. The partitioning of NodeN−1 is similar to the other nodes and will not be described further.
FIG. 3 shows a flowchart illustrating the operation of the token generation unit. Block 18 is the entry point into the flowchart. In block 18 the program enters the process and descends into block 20 whereat a check is made to see if initialization needs to be performed. If initialization is to be performed, the process enters block 22 whereat the Slotted Token (SLT) with the format set forth in FIG. 2 is generated. The process then descends into block 24 whereat the input port's ID in each of the sub-fields is set to an initial value. The program then descends into block 26 whereat the space reserved for writing available resources of an input port is initialized to 0. The process then enters block 28 whereat the SLT is forwarded and the program loops back to block 20. If in block 20 the initialization process was successfully completed the program descends into block 30 whereat it tests for arrival of the SLT. If the SLT has arrived the program then descends into block 28. If the SLT has not arrived the process exits block 30 along the No path into block 20.
 In this operation, the Token Generation Unit (TGU) generates the Slotted Token which is in constant circulation as long as the system is up. It is assumed that the ring provides a reliable transport mechanism so that the Slotted Token does not get lost or corrupted. As stated previously, each slot in the Slotted Token is associated with a single input port and indicates the available resources for the input port. Therefore, for InPi the resource is shown as AvResInPi in the Slotted Token. Initially when the TGU generates the SLT the TGU sets AvResInPi to 0 for every InPi. It is further assumed that the amount of available resources for an input port can be represented with a scale value greater than or equal to 0 or any other quantitative expression selected by the designer. When a node's Resource Control Unit receives the Slotted Token the Resource Control Unit updates AvResInPi for every InPi that it has. For example, assume, Node1 (FIG. 1) has allocated 150 (units of resource) for InP1, 100 for InP2, and 200 for InP3. When the RCU for node 1 receives the SLT for the first time, it sets AvResInP1 to 150, AvResInP2 to 100 and AvResInP3 to 200.
 When a node's RCU receives the SLT it also uses that to reserve resources in other nodes to which it needs to send data for processing. For example, assume Node,) (FIG. 1) needs to send data, now or in the future, to InPk−2 or NodeN−1. So, when the RCU for Node0 receives the SLT it reserves resources in InPk−2 by deducting from AvResInP2 the amount that it needs. For example, if the RCU for Node0 wants to reserve 10 units in InPk−2 it deducts 10 from AvResInPk−2 before forwarding the SLT. It should be noted that the amount of resource reservation is limited to what is indicated as being available in the Slotted Token message.
FIG. 4 shows a flowchart for the operation of the Resource Control Unit. The Resource Control Unit could be implemented as a state machine, a program processor combinatorial logic or similar devices. The flowchart in FIG. 4 can be used to generate the Resource Control Unit as set forth in the specification.
FIG. 4 shows a flowchart illustrating the operation of the resource control unit (RCU). The flowchart can be used by one skilled in the art to design the Resource Control Unit. In block 28 the program enters the process and descends into block 30 whereat a check is made to see if the Slotted Token (SLT) has arrived. If the SLT has not arrived the process exits along the No path into block 52 whereat the process check to see if any data received at the input port (InP) has been processed. If the answer is No the process loops back into block 30. If the response is Yes the program enters block 50 whereat the resource released as a result of processing frames received at the port is added to the resource available for that particular port. The process then loops from block 50 to block 30.
 Still referring to FIG. 4, if at block 30 the answer is Yes the program enters block 32 where it checked to see if SLT has arrived for the first time. If the response from block 32 is No the process descends into block 36. In block 36 the total amount of released resource (ReResInPi) associated with the input port InPi since the last time the SLT was received is added to the amount of available resource for the input port InPi.
 From block 36 the program enters block 38. In block 38 the total amount of released resource (ReResInPi) associated with the input port InPi since the last time the SLT was received is reset to 0.
 With respect to block 32 if the SLT is being received for the first time in the RCU the program enters block 34 whereat the RCU inserts the value for the resources available at each of its input ports and descends into block 38.
 Still referring to FIG. 4, from block 38 the program descends into block 40 whereat the RCU checks to see if a reserve resource needs to be cancelled. If the response is Yes the program exits block 40 along the Yes path into block 42 whereat for every port's reservation to be cancelled the amount is added to the resources available for that particular port. From block 42 the program descends into block 44. With respect to block 40 if the RCU does not desire to cancel a reserved resource the program descends into block 44. In block 44 the RCU decides if it needs to reserve a resource. If the answer is Yes the program descends into block 46 whereat the Resource Control Unit deducts from every input port the amount it needs from the resource available at the particular input port and enters into block 48. In block 48 the SLT is forwarded and the program loops back to block 30 to repeat the described process.
 With respect to the invention described herein a node cannot use another node's resource unless it performs an explicit resource reservation as described herein. A node should not use another node's resource beyond what it has reserved. When a node “consumes” its reservation it needs to make a new reservation if more resources are required. In subsequent receipt of the SLT (that is, after the first time) the RCU updates the AvResInPi value in the SLT for every InPi that it has according to the following scheme: Let ResInPi be the total amount of release resource associated with InPi since the last time the SLT was received. For every InPi the RCU adds ResInPi to AvResInPi in the SLT before forwarding the SLT.
 For example, if Node1 releases five units of resource as a result of processing the data received at InPk−2, it adds five to ResInPk−2 which will be added to AvResInPk−2 the next time the RCU for NodeN−1 receives the SLT.
 A node may cancel its reservation for resources it has reserved in other nodes. When a node's RCU receives a SLT it also uses that to cancel any reserved resources in other nodes that it may not need. For example, assume Node0 (FIG. 1) has reserved ten units in InPk−2 and wants to cancel four units. When the RCU for Node0 receives the SLT it adds 4 to the value of AvResInPk−2.
 The invention provides a decentralized “Advertisement-based” scheme: Receivers advertise their resources and senders take what they need in a distributed fashion. The invention supports dynamic resource reservation for
 One sender one receiver,
 One sender many receivers,
 Many receivers one sender, and
 Many senders many receivers
 with one reservation message. Receivers need not know who the senders are when resource reservations are made. Can work inband or out-of-band.
 Based upon the above description and drawings, it will be understood by those skilled in the art that the particular embodiments shown and described herein are for purposes of illustration only and are not intended to limit the scope of the invention. Those skilled in the art will recognize that the invention may be embodied in other specific forms without departing from its spirit or central characteristics. References to details of particular embodiments are not intended to limit the scope of the claims.