Claims
- 1. A method of serving data units on a network, comprising:
queuing data units from a first application in a first buffer; queuing data units from a second application in a second buffer; moving data units from the second buffer to the first buffer following a predetermined delay; and serving data units from the first buffer.
- 2. The method of claim 1, wherein the data units from the first application have a higher priority for transmission on the network than the data units from the second application.
- 3. The method of claim 1, wherein the data units from the first application and the data units from the second application are served from the first buffer on a first-come-first-served basis.
- 4. The method of claim 1, further comprising:
discarding data units from the first application that exceed a first time delay; and discarding data units from the second application that exceed a second time delay.
- 5. The method of claim 4, wherein the second time delay exceeds the predetermined time delay.
- 6. The method of claim 1, wherein the data units from the second buffer are moved to an end of the first buffer after data units from the first application.
- 7. The method of claim 1, further comprising:
determining a time to move the data units from the second buffer to the first buffer.
- 8. The method of claim 7, wherein a circular buffer, a pointer and a timer are used to determine the time to move the data units from the second buffer to the first buffer.
- 9. The method of claim 1, further comprising:
serving data units from the second buffer when the first buffer is empty.
- 10. The method of claim 1, wherein the data units comprise Asynchronous Transfer Mode (ATM) cells and the network comprises an ATM network.
- 11. A computer program stored on a computer-readable medium for serving data units on a network, the computer program comprising instructions to:
queue data units from a first application in a first buffer; queue data units from a second application in a second buffer; move data units from the second buffer to the first buffer following a predetermined delay; and serve data units from the first buffer.
- 12. The computer program of claim 11, wherein the data units from the first application have a higher priority for transmission on the network than the data units from the second application.
- 13. The computer program of claim 11, wherein the data units from the first application and the data units from the second application are served from the first buffer on a first-come-first-served basis.
- 14. The computer program of claim 11, further comprising instructions to:
discard data units from the first application that exceed a first time delay; and discard data units from the second application that exceed a second time delay.
- 15. The computer program of claim 14, wherein the second time delay exceeds the predetermined time delay.
- 16. The computer program of claim 11, wherein the data units from the second buffer are moved to an end of the first buffer after data units from the first application.
- 17. The computer program of claim 11, further comprising instructions to:
determine a time to move the data units from the second buffer to the first buffer.
- 18. The computer program of claim 17, wherein a circular buffer, a pointer and a timer are used to determine the time to move the data units from the second buffer to the first buffer.
- 19. The computer program of claim 11, further comprising instructions to:
serve data units from the second buffer when the first buffer is empty.
- 20. The computer program of claim 11, wherein the data units comprise Asynchronous Transfer Mode (ATM) cells and the network comprises an ATM network.
- 21. An apparatus for serving data units on a network, comprising:
a first buffer to queue data units from a first application; a second buffer to queue data units from a second application; and a controller to (i) move data units from the second buffer to the first buffer following a predetermined delay, and (ii) serve data units from the first buffer.
- 22. The apparatus of claim 21, wherein the data units from the first application have a higher priority for transmission on the network than the data units from the second application.
- 23. The apparatus of claim 21, wherein the data units from the first application and the data units from the second application are served from the first buffer on a first-come-first-served basis.
- 24. The apparatus of claim 21, wherein the controller discards data units from the first application that exceed a first time delay, and discards data units from the second application that exceed a second time delay.
- 25. The apparatus of claim 24, wherein the second time delay exceeds the predetermined time delay.
- 26. The apparatus of claim 21, wherein the data units from the second buffer are moved to an end of the first buffer after data units from the first application.
- 27. The apparatus of claim 21, wherein the controller determines a time to move the data units from the second buffer to the first buffer.
- 28. The apparatus of claim 27, wherein the controller uses a circular buffer, a pointer and a timer to determine the time to move the data units from the second buffer to the first buffer.
- 29. The apparatus of claim 21, wherein the controller serves data units from the second buffer when the first buffer is empty.
- 30. The apparatus of claim 21, wherein the data units comprise Asynchronous Transfer Mode (ATM) cells and the network comprises an ATM network.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority to U.S. Provisional Patent Application No. 60/295,601, filed Jun. 4, 2001, entitled “Non-Copying Buffer Handling For Porting A Protocol Stack To Drivers”, the contents of which are hereby incorporated by reference into this application as if set forth herein in full.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60295601 |
Jun 2001 |
US |