Claims
- 1. Apparatus for receiving a sequence of Transmission Control Protocol (TCP) segments, comprising:
a parsing machine which is adapted to parse at least one TCP segment so as to recover an Internet Small Computer Systems Interface Protocol Data Unit (iSCSI PDU), the PDU including a header and at least part of a payload; and at least one analysis machine which is adapted to receive and evaluate the header and to receive and route the at least part of the payload for the iSCSI PDU, the parsing machine and the at least one analysis machine operating substantially autonomously.
- 2. Apparatus according to claim 1, wherein the TCP segments are generated by at least one of an iSCSI initiator and an iSCSI target.
- 3. Apparatus according to claim 1, wherein the parsing machine and the at least one analysis machine are implemented using at least two separate physical processors.
- 4. Apparatus according to claim 1, wherein the header is comprised in a plurality of incoming TCP segments.
- 5. Apparatus according to claim 1, wherein the payload is comprised in a plurality of incoming TCP segments.
- 6. Apparatus according to claim 1, and comprising a header-digest machine which is adapted to generate a computed-header-digest responsive to the header, the computed-header-digest being compared by the parsing machine to a header-segment-header-digest comprised in the header so as to verify error-free receipt of the header for the iSCSI PDU, the header-digest machine, the parsing machine, and the at least one analysis machine operating substantially autonomously.
- 7. Apparatus according to claim 1, and comprising a data-digest machine which is adapted to generate a computed-data-digest responsive to the payload, the computed-data-digest being compared by the at least one analysis machine to a header-segment-data-digest comprised in the header so as to verify error-free receipt of the payload of the iSCSI PDU, the data-digest machine, the parsing machine, and the at least one analysis machine operating substantially autonomously.
- 8. Apparatus according to claim 1, wherein the parsing machine is adapted to generate a computed-header-digest, and to compare the computed-header-digest to a header-segment-header-digest comprised in the header for the iSCSI PDU so as to verify error-free receipt of the header.
- 9. Apparatus according to claim 1, wherein the parsing machine is adapted to receive and route at least one parsing event and to execute parsing actions, responsive to the at least one parsing event.
- 10. Apparatus according to claim 9, wherein the at least one parsing event comprises at least one of a receive-TCP-segment event indicative of receipt of the TCP segment and a received-pass-PDU event indicative of acknowledgement by the at least one analysis machine of receipt of an initial part of the payload.
- 11. Apparatus according to claim 9, wherein the parsing actions comprise:
determining a starting header boundary and an ending header boundary so as to delineate the header; recovering the header from the at least one TCP segment; determining a starting payload boundary and an ending payload boundary so as to delineate the at least part of the payload; conveying the header and the at least part of the payload to the at least one analysis machine; identifying the at least part of the payload as an initial part of the payload for the iSCSI PDU; and receiving an acknowledgment of receipt of the initial part of the payload from the at least one analysis machine.
- 12. Apparatus according to claim 1, wherein the at least one analysis machine comprises:
a header-processing machine which evaluates the header; and a data-processing machine which routes the at least part of the payload, the header-processing machine and the data-processing machine operating substantially autonomously.
- 13. Apparatus according to claim 12, wherein the header-processing machine is adapted to receive and route at least one header event, and to execute header processing actions, responsive to the at least one header event.
- 14. Apparatus according to claim 13, wherein the at least one header event comprises at least one of a pass-PDU-data event indicative of receipt by the parsing machine of an initial part of the payload of the iSCSI PDU, a handle-PDU-header event indicative of receipt by the parsing machine of the header, and a data-digest-result event indicative of completion of a data digest calculation by the data-processing machine.
- 15. Apparatus according to claim 13, wherein the header processing actions comprise:
identifying the at least part of the payload as an initial part of the payload for the iSCSI PDU; determining a disposition of the initial part of the payload by computing a destination address in a system memory for the initial part of the payload; recovering iSCSI information from the header; and executing iSCSI actions responsive to the iSCSI information.
- 16. Apparatus according to claim 12, wherein the data-processing machine is adapted to generate a computed-data-digest, and to compare the computed-data-digest to a header-segment-data-digest comprised in the header of the iSCSI PDU so as to verify error-free receipt of the payload.
- 17. Apparatus according to claim 12, wherein the data-processing machine is adapted to receive and route at least one data event and to execute data processing actions responsive to the at least one data event.
- 18. Apparatus according to claim 17, wherein the data processing actions comprise computing a data digest responsive to the payload so as to verify error-free receipt of the payload for the iSCSI PDU.
- 19. Apparatus according to claim 17, wherein the at least one data event comprises at least one of a handle-initial-PDU-data event indicative of receipt of an initial part of the payload, and a handle-PDU-data event indicative of receipt of a subsequent part of the payload.
- 20. Apparatus according to claim 17, wherein the data processing actions comprise:
transferring data comprised in the at least part of the payload to a system memory; determining that the at least part of the payload is an initial part of the payload for the iSCSI PDU; and acknowledging receipt of the initial part of the payload.
- 21. Apparatus according to claim 20, wherein transferring the data comprises:
calculating a destination address in a system memory for the data, responsive to a disposition of the payload; moving a received-quantity-of-data from the at least part of the payload to the destination address; determining an expected-quantity-of-data for the iSCSI PDU; and evaluating a state of completion for the iSCSI PDU responsive to a comparison of the received-quantity-of-data to the expected-quantity-of-data.
- 22. Network interface apparatus, comprising:
a device interface, adapted to communicate with a computing device, which is adapted to receive and execute Small Computer Systems Interface (SCSI) operations and has a system memory; a network interface, adapted to receive from a network a sequence of Transmission Control Protocol (TCP) segments that contains an Internet Small Computer Systems Interface Protocol Data Unit (iSCSI PDU), the iSCSI PDU including a header and a payload; and an analysis machine, adapted to parse at least one TCP segment so as to recover the header and at least part of the payload of the iSCSI PDU, to evaluate the header so as to determine a disposition of the payload, and to route the at least part of the payload to the system memory for processing by the computing device responsive to the disposition, independent of recovering a remainder of the payload beyond the recovered at least part part of the payload.
- 23. Apparatus according to claim 22, wherein the TCP segments are generated by at least one of an iSCSI initiator and an iSCSI target.
- 24. Apparatus according to claim 22, wherein the analysis machine is implemented using at least two separate physical processors.
- 25. Apparatus according to claim 22, wherein the header is comprised in a plurality of incoming TCP segments.
- 26. Apparatus according to claim 22, wherein the payload is comprised in a plurality of incoming TCP segments.
- 27. Apparatus according to claim 22, and comprising a header-digest machine which is adapted to generate a computed-header-digest responsive to the header, the computed-header-digest being compared to a header-segment-header-digest comprised in the header so as to verify error-free receipt of the header for the iSCSI PDU.
- 28. Apparatus according to claim 22, and comprising a data-digest machine which is adapted to generate a computed-data-digest responsive to the payload, the computed-data-digest being compared to a header-segment-data-digest comprised in the header so as to verify error-free receipt of the payload for the iSCSI PDU.
- 29. Apparatus according to claim 22, wherein the analysis machine comprises:
a parsing machine which is adapted to parse at least one TCP segment so as to recover the header and the at least part of the payload of the iSCSI PDU; a header-processing machine which is adapted to evaluate the header so as to determine a disposition of the payload; and a data-processing machine which is adapted to route the at least part of the payload to the system memory for processing by the computing device responsive to the disposition, independent of recovering a remainder of the payload beyond the recovered part.
- 30. Apparatus according to claim 29, wherein the header-processing machine is adapted to receive and route at least one header event, and to execute header processing actions, responsive to the at least one header event.
- 31. Apparatus according to claim 30, wherein the at least one header event comprises at least one of a pass-PDU-data event indicative of receipt by the parsing machine of an initial part of the payload of the iSCSI PDU, a handle-PDU-header event indicative of receipt by the parsing machine of a header, and a data-digest-result event indicative of completion of a data digest calculation by the data-processing machine.
- 32. Apparatus according to claim 30, wherein the header processing actions comprise:
identifying the at least part of the payload as an initial part of the payload for each of the iSCSI PDU; determining a destination address in the system memory for the at least part of the payload; recovering iSCSI information from the header; and executing iSCSI actions responsive to the iSCSI information.
- 33. Apparatus according to claim 29, wherein the data-processing machine is adapted to generate a computed-data-digest, and to compare the computed-data-digest to a header-segment-data-digest comprised in the header for the iSCSI PDU so as to verify error-free receipt of the payload.
- 34. Apparatus according to claim 29, wherein the data-processing machine is adapted to receive and route at least one data event and to execute data processing actions responsive to the at least one data event.
- 35. Apparatus according to claim 34, wherein the at least one data event comprises at least one of a handle-initial-PDU-data event indicative of receipt of an initial part of the payload, and a handle-PDU-data event indicative of receipt of a subsequent part of the payload.
- 36. Apparatus according to claim 34, wherein the data processing actions comprise:
transferring data comprised in the at least part of the payload to the system memory; determining that the at least part of the payload is an initial part of the payload for the iSCSI PDU; and acknowledging receipt of the initial part.
- 37. Apparatus according to claim 36, wherein transferring the data comprises:
calculating a destination address in the system memory for the data, responsive to the disposition of the payload; moving a received-quantity-of-data from the at least part of the payload to the destination address; determining an expected-quantity-of-data for the iSCSI PDU; and evaluating a state of completion for the iSCSI PDU responsive to a comparison of the received-quantity-of-data to the expected-quantity-of-data.
- 38. Apparatus according to claim 34, wherein the data processing actions comprise computing a data digest responsive to the payload so as to verify error-free receipt of the payload for the iSCSI PDU.
- 39. Apparatus according to claim 29, wherein the parsing machine is adapted to receive and route at least one parsing event and to execute parsing actions, responsive to the at least one parsing event.
- 40. Apparatus according to claim 39, wherein the at least one parsing event comprises at least one of receive-TCP-segment event indicative of receipt of the TCP segment, and a received-pass-PDU event indicative of acknowledgement of receipt of an initial part of payload.
- 41. Apparatus according to claim 39, wherein the parsing actions comprise:
determining a starting header-segment boundary and an ending header-segment boundary so as to delineate the header; recovering the header from the at least one TCP segment; determining a starting payload boundary and an ending payload boundary so as to delineate the at least part of the payload; conveying the header to the header-processing machine and the at least part of the payload to the data-processing machine, independent of delineating an entire payload; identifying the at least part of the payload as an initial part of the entire payload for the iSCSI PDU; and receiving an acknowledgment of receipt of the initial part from the data-processing machine.
- 42. Apparatus according to claim 29, wherein the parsing machine is adapted to generate a computed-header-digest, and to compare the computed-header-digest to a header-segment-header-digest comprised in the header for the iSCSI PDU so as to verify error-free receipt of the header.
- 43. A method for receiving a sequence of Transmission Control Protocol (TCP) segments, comprising:
parsing in a parsing machine the at least one TCP segment into one or more Internet Small Computer Systems Interface Protocol Data Units (iSCSI PDUs), the parsing machine being adapted to recover a header and at least a part of a payload for the iSCSI PDU; and receiving and evaluating the header and receiving and routing the at least part of the payload for the iSCSI PDU in at least one analysis machine, so that the parsing machine and the at least one analysis machine operate substantially autonomously.
- 44. A method according to claim 43, wherein receiving the TCP segments comprises receiving TCP segments generated by at least one of an iSCSI initiator and an iSCSI target.
- 45. A method according to claim 43, and comprising implementing the parsing machine and the at least one analysis machine using at least two separate physical processors.
- 46. A method according to claim 43, wherein the header is comprised in a plurality of incoming TCP segments.
- 47. A method according to claim 43, wherein the payload is comprised in a plurality of incoming TCP segments.
- 48. A method according to claim 43, and comprising generating a computed-data-digest responsive to the payload in a data-digest machine and comparing the computed-data-digest to a header-segment-data-digest comprised in the header in the at least one analysis machine so as to verify error-free receipt of the payload for the iSCSI PDU.
- 49. A method according to claim 43, and comprising generating a computed-header-digest responsive to the header in a header-digest machine and comparing the computed-header-digest to a header-segment-header-digest comprised in the header in the parsing machine so as to verify error-free receipt of the header for the iSCSI PDU.
- 50. A method according to claim 43, wherein the parsing machine is adapted to receive and route at least one parsing event and to execute parsing actions, responsive to the at least one parsing event.
- 51. A method according to claim 50, wherein the parsing events comprise at least one of a receive-TCP-segment event indicative of receipt of the TCP segment, and a received-pass-PDU event indicative of acknowledgement by the at least one analysis machine of receipt of an initial part of the payload comprised in the at least part of the payload.
- 52. A method according to claim 50, wherein the parsing actions comprise:
determining a starting header boundary and an ending header boundary so as to delineate the header; recovering the header from the at least one TCP segment; determining a starting payload boundary and an ending payload boundary so as to delineate the at least part of the payload; conveying the header and the at least part of the payload to the at least one analysis machine; identifying the at least part of the payload as an initial part of the payload for the iSCSI PDU; and receiving an acknowledgment of receipt of the initial part of the payload from the at least one analysis machine.
- 53. A method according to claim 50, wherein the parsing actions comprise verifying error-free receipt of the header by comparing a computed-header-digest generated by the parsing machine to a header-segment-header-digest comprised in the header for the iSCSI PDU.
- 54. A method according to claim 43, wherein receiving and evaluating the header and receiving and routing the at least part of the payload comprises:
receiving and evaluating the header in a header-processing machine; and receiving and routing the at least part of the payload in a data-processing machine, the header-processing machine and the data-processing machine operating substantially autonomously.
- 55. A method according to claim 54, wherein the header-processing machine is adapted to receive and route at least one header event, and to execute header processing actions, responsive to the at least one header event.
- 56. A method according to claim 55, wherein the header events comprise at least one of a pass-PDU-data event indicative of receipt by the parsing machine of an initial part of the payload of the iSCSI PDU, a handle-PDU-header event indicative of receipt by the parsing machine of a header, and a data-digest-result event indicative of completion of a data digest calculation by the data-processing machine.
- 57. A method according to claim 55, wherein the header processing actions comprise:
identifying the at least part of the payload as an initial part of the payload for the iSCSI PDU; determining a destination address in a system memory for the at least part of the payload; recovering iSCSI information from the header; and executing iSCSI actions responsive to the iSCSI information.
- 58. A method according to claim 54, wherein the header processing actions comprise verifying error-free receipt of the payload by comparing a computed-data-digest generated by the data-processing machine to a header-segment-data-digest comprised in the header.
- 59. A method according to claim 54, wherein the data-processing machine is adapted to receive and route at least one data event and to execute data processing actions, responsive to the at least one data event.
- 60. A method according to claim 59, wherein the data events comprise at least one of a handle-initial-PDU-data event indicative of receipt of an initial part of the payload comprised in the at least part of the payload, and a handle-PDU-data event indicative of receipt of a subsequent part of the payload.
- 61. A method according to claim 59, wherein the data processing actions comprise:
transferring data comprised in the at least part of the payload to a system memory; determining that the at least part of the payload is an initial part of the payload; and acknowledging receipt of the initial part.
- 62. A method according to claim 61, wherein transferring the data comprises:
calculating a destination address in the system memory for the data; moving a received-quantity-of-data from the at least part of the payload to the destination address; determining an expected-quantity-of-data for the iSCSI PDU; and evaluating a state of completion for the iSCSI PDU responsive to a comparison of the received-quantity-of-data to the expected-quantity-of-data.
- 63. A method according to claim 59, wherein the data processing actions comprise computing a data digest responsive to the payload so as to verify error-free receipt of the payload for the iSCSI PDU.
- 64. A method for processing a sequence of Transmission Control Protocol (TCP) segments that contains an Internet Small Computer Systems Interface Protocol Data Unit (iSCSI PDU), the iSCSI PDU including a header and a payload, the method comprising:
parsing the TCP segments so as to recover the header and at least a part of the payload of the iSCSI PDU; evaluating the header so as to determine a disposition of the payload; and routing the at least part of the payload responsive to the disposition, independent of recovering a remainder of the payload beyond the recovered part.
- 65. A method according to claim 64, wherein routing the at least part of the payload comprises writing the payload to a memory of a computing device, for processing by the device in accordance with the header.
- 66. A method according to claim 64, wherein parsing the TCP segments and evaluating the header comprise parsing and evaluating using a network interface device that receives the TCP segments over a network, and wherein routing the at least part of the payload comprises transferring the payload from the network interface device to a memory of a computing device.
- 67. A method according to claim 64, and comprising implementing the parsing, recovering, receiving, and routing using at least two separate physical processors.
- 68. A method according to claim 64, wherein the header is comprised in a plurality of incoming TCP segments.
- 69. A method according to claim 64, wherein the payload is comprised in a plurality of incoming TCP segments.
- 70. A method according to claim 64, and comprising generating a computed-header-digest responsive to the header, and comparing the computed-header-digest to a header-segment-header-digest comprised in the header to verify error-free receipt of the header.
- 71. A method according to claim 64, and comprising generating a computed-data-digest responsive to the payload, and comparing the computed-data-digest to a header-segment-data-digest comprised in the header so as to verify error-free receipt of the payload for the iSCSI PDUs.
- 72. A method according to claim 64, wherein parsing the TCP segment comprises receiving and routing at least one parsing event and executing parsing actions, responsive to the at least one parsing event.
- 73. A method according to claim 72, wherein the parsing events comprise at least one of a receive-TCP-segment event indicative of receipt of the TCP segment, and a received-pass-PDU event indicative of acknowledgement of receipt of an initial part of the payload comprised in the at least part of the payload.
- 74. A method according to claim 72, wherein the parsing actions comprise:
determining a starting header boundary and an ending header boundary so as to delineate the header; recovering the header from the at least one TCP segment; determining a starting payload boundary and an ending payload boundary so as to delineate the part of the payload; conveying the header and the at least part of the payload for additional processing, independent of delineating an entire payload; identifying the at least part of the payload as an initial part of the entire payload; and receiving an acknowledgment of receipt of the initial part.
- 75. A method according to claim 64, wherein receiving and evaluating the header comprises receiving and routing at least one header event, and executing header processing actions responsive to the at least one header event.
- 76. A method according to claim 75, wherein the header events comprise at least one of a pass-PDU-data event indicative of receipt of an initial part of the payload of the iSCSI PDU, a handle-PDU-header event indicative of receipt of a header, and a data-digest-result event indicative of completion of a data digest calculation.
- 77. A method according to claim 75, wherein the header processing actions comprise:
identifying the at least part of the payload as an initial part of the payload; determining a disposition of the at least part of the payload by computing a destination address in a system memory for data comprised in the part; recovering iSCSI information from the header-segment; and executing iSCSI actions responsive to the iSCSI information.
- 78. A method according to claim 64, wherein receiving and routing the at least part of the payload comprises receiving and routing at least one data event and executing data processing actions, responsive to the at least one data event.
- 79. A method according to claim 78, wherein the data events comprise at least one of a handle-initial-PDU-data event indicative of receipt of an initial part of the payload comprised in the at least part of the payload, and a handle-PDU-data event indicative of receipt of a subsequent part of the payload.
- 80. A method according to claim 78, wherein the data processing actions comprise:
transferring data comprised in the at least part of the payload to a system memory; determining that the part of the payload is an initial part of the payload for the iSCSI PDU; and acknowledging receipt of the initial part.
- 81. A method according to claim 80, wherein transferring the data comprises:
calculating a destination address in the system memory for the data, responsive to a disposition of the payload; moving a received-quantity-of-data from the at least part of the payload to the destination address; determining an expected-quantity-of-data for the iSCSI PDU; and evaluating a state of completion for the iSCSI PDU responsive to a comparison of the received-quantity-of-data to the expected-quantity-of-data.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 60/317,620, filed Sep. 6, 2001, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60317620 |
Sep 2001 |
US |