Patent ID: 6693913
Filing Date: 2004-02-17
Classification: H04L

Abstract:
A method for servicing, at a predetermined service rate, a plurality of queues containing data packets, each of the queues being associated with a respective one of a plurality of connections, each of the connections traversing an associated communication switch, each of the connections being allocated a respective data transfer rate, the method comprising the steps of:responsive to receiving a request for establishing a new connection, determining whether the data transfer rate requested for the new connection matches one of a finite and discrete plurality of basic data transfer rates; responsive to a match of the data transfer rate requested for the new connection with one of the available basic data transfer rates, associating the new connection with the matched basic data transfer rate; responsive to a non-match of the data transfer rate requested for the new connection with any of the available basic data transfer rates, splitting the new connection into a plurality of sub-connections, the allocated rate of each of the sub-connections matching one of the basic data transfer rates, and associating each of the sub-connections with the respective matched basic data transfer rate; responsive to receiving a plurality of data packets via a plurality of data links, identifying for each received data packet the respective one of the allocated connections and identifying the one of the queues associated with the connection; storing each of the received data packets in the corresponding identified queue; responsive to storing each received data packet in a queue associated with one of those connections whose data transfer rate matches one of the available basic data transfer rates, determining whether the connection was previously idle and must be activated, and identifying the connection as an active connection; responsive to storing a received data packet in a queue associated with one of those connections whose data transfer rate does not mach any of the available basic data transfer rates, in which the connection is identified as a split connection, determining whether a previously idle sub-connection must be activated for the split connection, and identifying the sub-connection as an active sub-connection; responsive to the activation of a previously idle sub-connection, treating the sub-connection as an independent entity for the purpose of service distribution, the service distribution being regulated by a scheduling method capable of supporting the finite and discrete plurality of basic data transfer rates; scheduling the transmission of stored data packets on the available outputs according to the data transfer rates associated with respective ones of the allocated connections and sub-connections; responsive to the transmission of a data packet from a queue associated with one of those connections whose data transfer rate matches one of the available basic data transfer rates to an output, determining whether the queue associated with the connection has at least one more packet waiting therein, in which the connection is identified as an active connection, or whether the queue associated with the connection has no packets waiting therein, in which the connection is identified as an idle connection; and responsive to the transmission of a data packet from a queue associated with one of those connections whose data transfer rate does not match any of the available basic data transfer rates to an output, updating the state of the packet queue associated with the allocated split connection, and determining whether one of the currently active sub-connections of the allocated split connection must be deactivated, in which the deactivated sub-connection is identified as an idle sub-connection.