Claims
- 1. A transmit scheduler for use in scheduling transmission of message packets by a source device over a network, each message packet being associated with one of a plurality of virtual circuits, the transmit scheduler comprising:
A. a virtual circuit task list configured to identify virtual circuits for which message packets are to be transmitted; and B. a transmit task control configured to sequence through the virtual circuit task list to identify successive virtual circuits for which message packets are to be transmitted and, for each identified virtual circuit, to enable data to be obtained for transmission by said transmitter in a respective message packet, thereby to facilitate transmission of message packets by the transmitter so that messages are transmitted in a round-robin manner as among ones of the virtual circuits for which the device is the source device:
- 2. A transmit scheduler as defined in claim 1 in which said virtual circuit task list is configured to-include a plurality of prioritized task lists, the transmit task control being configured to select among said prioritized task lists and, for each prioritized task list so selected, identify a virtual circuit for which message packets are to be transmitted.
- 3. A transmit scheduler as defined in claim 2 in which each virtual circuit is identified by a virtual circuit identifier, the virtual circuit identifiers each having a value within a range of virtual circuit identifier values, each of said prioritized task lists comprising a bit map including a bit associated with each virtual circuit identifier value in said range, transmit task control being configured to, for each virtual circuit for which a message packet is to be transmitted at the respective priority level, set the bit in the bit map of the respective prioritized task list associated with the virtual circuit's virtual circuit identifier value, the transmit task control using the set bits to identify virtual circuits for which message packets are to be transmitted.
- 4. A transmit scheduler as defined in claim 2 in which one or more message packets are associated with a message, each message having a beginning, one of said prioritized task lists being associated with virtual circuits for which data for message packets associated with the beginning of a message is to be obtained and another of said prioritized task lists being associated with virtual circuits for which data for message packets associated with the beginning of a message have been obtained, the transmit task control being configured to select from each of said prioritized task lists at a selected rate.
- 5. A transmit scheduler as defined in claim 4 in which the transmit task control alternates between said prioritized task lists.
- 6. A transmit scheduler as defined in claim 2 in which message packet transmission for said virtual circuits can be rate limited, one of said prioritized task list comprising a rate limited task list, the transmit task control being configured to select from said rate limited task list at a rate related to the rate limit.
- 7. A receive scheduler for use in scheduling processing in connection with message packets received by a destination device over a network, each message packet being associated with one of a plurality of virtual circuits, the receive scheduler comprising:
A. a virtual circuit task list configured to identify virtual circuits for which message packets have been received; and B. a receive task control configured to sequence through the virtual circuit task list to identify successive virtual circuits for which message packets have been received, and, for each identified virtual circuit, to enable the transfer of data associated with said message packets to a data store for use by a receive host in a round-robin manner.
- 8. A receive scheduler as defined in claim 7 in which said virtual circuit task list is configured to include a plurality of prioritized task lists, the receive task control being configured to select among said prioritized task lists and, for each prioritized task list so selected, identify a virtual circuit for which message packets are to be transmitted.
- 9. A receive scheduler as defined in claim 8 in which each virtual circuit is identified by a virtual circuit identifier, the virtual circuit identifiers each having a value within a range of virtual circuit identifier values, each of said prioritized task lists comprising a bit map including a bit associated with each virtual circuit identifier value in said range, the receive task control being configured to, for each virtual circuit for which a message packet has been received, provide that the bit in the bit map of an appropriate one of the respective prioritized task lists associated with the virtual circuit's virtual circuit identifier value be set, the receive task control using the set bits to identify virtual circuits for which message packets are to be transmitted.
- 10. A receive scheduler as defined in claim 8 in which said network interface of said destination device further includes a buffer for buffering received message packets, one of said prioritized task lists being associated with virtual circuits for which the buffer contains at least one message packet associated with a virtual circuit and another of said prioritized task lists being associated with virtual circuits for which the buffer contains message packets associated with a virtual circuit at a selected buffer congestion level, the receive task control being configured to select from each of said prioritized task lists at a selected rate.
- 11. A receive scheduler as defined in claim 8 in which one or more message packets are associated with a message, each message having an end, one of said prioritized task lists comprising an end of message task list.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application is a division of application Ser. No. 09/065,115 filed on Apr. 23, 1998, which application is specifically incorporated herein by reference, and which is related to previously filed U.S. patent application Ser. No. 09/065,118 (now U.S. Pat. No. 6,570,851) entitled “System and Method for Regulating Message Flow In A Digital Data Network”, both assigned to the same assignee as the present application.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09065115 |
Apr 1998 |
US |
Child |
10841009 |
May 2004 |
US |