Method of responding to I/O request and associated reply descriptor
First Claim
1. A reply descriptor for transmission over an I/O message passing medium in response to a corresponding request message, comprising:
- at least one indication field that identifies type of the reply descriptor, and a content field; and
whereby a reply message is generated only if at least one predefined condition is not met and said content field comprises information of said reply message'"'"'s storage location, if so generated.
9 Assignments
0 Petitions
Accused Products
Abstract
A reply descriptor for transmission over an I/O message passing medium in response to a corresponding request message, the descriptor comprises at least one indication field that can function as a ‘flag’ to identify its type, and a content field; whereby a reply message is generated only if at least one predefined condition is not met and the content field will, accordingly, comprise information of that reply message'"'"'s storage location. The content field to comprise data copied from the I/O request message if each predefined condition is met. A method of responding over an I/O message passing medium to a request message comprising the steps of: generating a reply message to the request message only if at least one predefined condition is not met; generating a reply descriptor having at least one indication field and a content field; whereby the content field comprises information of the reply message'"'"'s storage location if so generated. Also, a program code on a computer readable storage medium comprising: a first program sub-code for generating a reply message to a corresponding I/O request message only if at least one predefined condition is not met. The first program sub-code comprising instructions for generating a reply descriptor having at least one indication field and a content field that comprises information of the reply message'"'"'s storage location if said reply message is so generated.
-
Citations
25 Claims
-
1. A reply descriptor for transmission over an I/O message passing medium in response to a corresponding request message, comprising:
-
at least one indication field that identifies type of the reply descriptor, and a content field; and
whereby a reply message is generated only if at least one predefined condition is not met and said content field comprises information of said reply message'"'"'s storage location, if so generated. - View Dependent Claims (2, 3, 4, 5, 7, 8, 9, 10)
the message passing medium comprises a bus operational with a hardware interface type selected from the group consisting of SCSI (Small Computer System Interface), Fibre Channel, PCI (Peripheral Component Interconnect), PCI-X, ISA (Industry Standard Architecture), InfiniBand, IDE (Integrated Drive Electronics), USB (Universal Serial Bus), RS-232, EISA (Extended ISA), Local Bus, and Micro Channel; and
the message passing medium utilizes a communications protocol selected from the group consisting of SCSI, ATM (Asynchronous Transfer Mode), IPI (Intelligent Peripheral Interface), HiPPI (Hlgh Performance Parallel Interface), IP (Internet Protocol), InfiniBand, SSA (Serial Storage Architecture), and IEEE P1394.
-
-
3. The reply descriptor of claim 1 wherein:
- upon the writing of the reply descriptor to a reply-post buffer, an interrupt is transmitted for a host-based driver to read the reply descriptor; and
once so read, said host-based driver correlates the reply descriptor with the request message and sends a notification message to an originating-caller.
- upon the writing of the reply descriptor to a reply-post buffer, an interrupt is transmitted for a host-based driver to read the reply descriptor; and
-
4. The reply descriptor of claim 1 wherein:
-
said indication field comprises an address bit;
if each said predefined condition is met, said indication field further comprises a type field, and said content field comprises data copied from and unique to the request message as generated by a host-based driver;
butif said reply message is so generated, said reply message comprises data regarding said at least one predefined condition not met.
-
-
5. The reply descriptor of claim 4 wherein:
-
if each said predefined condition is met, said content field further comprises a receiving port identifier; and
said data unique to the request message comprises an identifier selected from the group consisting of;
an address to a storage space in a memory, an index value to a table, an index value to a list, an index value to a register, an index value to a stack, an index value to an array, and content-data associated with a hardware assisted CAM; and
said reply-post buffer is a FIFO (First-In-First-Out) type buffer.
-
-
7. The reply descriptor of claim 1 wherein:
- said at least one predefined condition is not met and said content field comprises said information, said information to comprise an address to an available reply frame buffer located in a host memory; and
said address is one from a plurality of addresses, each of which identifies a location of a corresponding reply frame buffer.
- said at least one predefined condition is not met and said content field comprises said information, said information to comprise an address to an available reply frame buffer located in a host memory; and
-
8. The reply descriptor of claim 7 wherein said at least one predefined condition is not met because execution of at least one command included in the request message was not completed, said corresponding reply frame buffers reside in said host memory, and said plurality of addresses resides on a reply-free FIFO buffer.
-
9. The reply descriptor of claim 8 wherein:
-
once said address to said available reply frame buffer is removed from said reply-free FIFO buffer, said reply message is generated by an I/O controller (IOC) and copied into said available reply frame buffer; and
the reply descriptor is written to a reply-post buffer for a host-based driver to read.
-
-
10. The reply descriptor of claim 1 wherein:
-
the request message comprises at least one command; and
said at least one predefined condition is not met upon the occurrence of an event selected from the group consisting of;
execution of said command is not completed, execution of said command is not completed after a retry, said command is made at an improper time, an allotted time for execution of said command is exceeded, unsuccessful data transfer of any portion of the request message, quantity of data transferred exceeds byte count specifications, quantity of data transferred is less-than byte count specifications, processor resources are insufficient to execute said command, at least one field of the request message comprises invalid data, at least one value from the request message is out of range, any data transferred is insufficient to execute said command, hardware interface of the message passing medium is incompatible with a target device, communications protocol utilized by the message passing medium is incompatible with a target device, an unrecoverable bus parity error has occurred, a task management function has failed, a host processor aborts the request message, and a target device node has logged-off.
-
-
6. A reply descriptor for transmission over an I/O message passing medium in response to a corresponding request message, comprising:
-
at least one indication field comprising an address bit, and a content field;
whereby a reply message is generated only if at least one predefined condition is not met and said content field comprises information of said reply message'"'"'s storage location, if so generated;
wherein each said predefined condition is met;
said indication field further comprises a type field, said content field comprises data copied from and unique to the request message as generated by a host-based driver, said data unique to the request message comprises a host-specified index value;
an alert signal for said host-based driver is transmitted upon the writing of both the reply descriptor and a second reply descriptor to a reply-post buffer, said second reply descriptor comprising a second content field having second data copied from a second request message, and once said reply descriptors have been read by said host-based driver, said host-based driver correlates each said reply descriptor with a respective request message and notifies an originating-caller of completion of both of said request messages.
-
-
11. A method of responding over an I/O message passing medium, to a request message, the method comprising the steps of:
-
generating a reply message to the request message only if at least one predefined condition is not met;
generating a reply descriptor having at least one indication field that identifies type of said reply descriptor, and a content field;
whereby said content field comprises information of said reply message'"'"'s storage location if said reply message is so generated.- View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
the message passing medium comprises a bus operational with a hardware interface type selected from the group consisting of SCSI (Small Computer System Interface), Fibre Channel, PCI (Peripheral Component Interconnect), PCI-X, ISA (Industry Standard Architecture), InfiniBand, IDE (Integrated Drive Electronics), USB (Universal Serial Bus), RS-232, EISA (Extended ISA), Local Bus, and Micro Channel; and
the message passing medium utilizes a communications protocol selected from the group consisting of SCSI, ATM (Asynchronous Transfer Mode), IPI (Intelligent Peripheral Interface), HiPPI (HIgh Performance Parallel Interface), IP (Internet Protocol), InfiniBand, SSA (Serial Storage Architecture), and IEEE P1394.
-
-
14. The method of claim 12 wherein said indication field comprises an address bit, and further comprising the steps of:
-
if each said predefined condition is met, generating said indication field to further comprise a type field and generating said data copied to comprise data unique to the request message;
butsaid at least one predefined condition is not met, generating said reply message to comprise data regarding said at least one predefined condition not met.
-
-
15. The method of claim 14 further comprising the steps of:
-
upon the writing of said reply descriptor to a reply-post buffer, transmitting an alert signal for said host-based driver to read said reply descriptor; and
once so read, correlating said reply descriptor with the request message and notifying an originating-caller of a completion results.
-
-
16. The method of claim 12 further comprising the steps of initially receiving an I/O request comprising at least one command from an operating system, and generating the request message to include said one command;
- and wherein said at least one predefined condition is not met upon occurrence of an event selected from the group consisting of;
execution of said command is not completed, execution of said command is not completed after a retry, said command is made at an improper time, an allotted time for execution of said command is exceeded, unsuccessful data transfer of any portion of the request message, quantity of data transferred exceeds byte count specifications, quantity of data transferred is less-than byte count specifications, processor resources are insufficient to execute said command, at least one field of the request message comprises invalid data, at least one value from the request message is out of range, any data transferred is insufficient to execute said command, hardware interface of the message passing medium is incompatible with a target device, communications protocol utilized by the message passing medium is incompatible with a target device, an unrecoverable bus parity error has occurred, a task management function has failed, a host processor aborts the request message, and a target device node has logged-off.
- and wherein said at least one predefined condition is not met upon occurrence of an event selected from the group consisting of;
-
17. The method of claim 12 wherein said predefined condition is met, and said step of generating said reply descriptor further comprises writing said content field to a reply-post buffer, said content field to further comprise a receiving port identifier and a request-initiator identifier;
- and further comprising the step of transmitting a system interrupt for a host-based driver to read said reply descriptor.
-
18. The method of claim 17 further comprising the steps of:
- reading said reply descriptor;
correlating a request message identifier of said reply descriptor with the request message; and
notifying an originating-caller to confirm completion of the request message.
- reading said reply descriptor;
-
19. The method of claim 17 wherein said step of generating said reply descriptor is performed with an I/O controller (IOC);
- and said step of transmitting a system interrupt is performed with said IOC; and
further comprising a reply queue register located in an IOC memory, said register to comprise said reply-post buffer and a reply free buffer on which a plurality of addresses, each of which identifies a location of a corresponding reply frame buffer, reside.
- and said step of transmitting a system interrupt is performed with said IOC; and
-
20. The method of claim 12 wherein said at least one predefined condition is not met, and said step of generating said reply descriptor further comprises writing said content field to a reply-post buffer, said content field to further comprise said information including an address to an available reply frame buffer located in a host memory, said address having been taken from a reply-free on which a plurality of addresses also reside;
- and further comprising the step of;
generating said reply message with said IOC and copying said reply message into said available reply frame buffer.
- and further comprising the step of;
-
21. A computer executable program code on a computer readable storage medium, the program code comprising:
-
a first program sub-code for generating a reply message to a corresponding I/O request message only if at least one predefined condition is not met; and
said first program sub-code comprising instructions for generating a reply descriptor having at least one indication field and a content field that comprises information of said reply message'"'"'s storage location if said reply message is so generated, but said content field to comprise data copied from said I/O request message if each said predefined condition is met. - View Dependent Claims (22, 23, 24, 25)
a second sub-code for transmitting a system interrupt over an I/O message passing medium for a host-based driver to read said reply descriptor;
a third sub-code for reading said reply descriptor; and
a fourth sub-code for correlating said reply descriptor with said corresponding I/O request message and notifying an originating-caller of a completion results.
-
-
23. The program code of claim 22 wherein each said predefined condition is met and said content field comprises data copied from said I/O request message including an identifier selected from the group consisting of:
- an address to a storage space in a memory, an index value to a table, an index value to a list, an index value to a register, an index value to a stack, an index value to an array, and content-data associated with a hardware assisted CAM;
said third sub-code comprises instructions for reading into a host-based memory; and
said fourth program sub-code comprises instructions for correlating said request message identifier of said reply descriptor with the I/O request message.
- an address to a storage space in a memory, an index value to a table, an index value to a list, an index value to a register, an index value to a stack, an index value to an array, and content-data associated with a hardware assisted CAM;
-
24. The program code of claim 22 wherein said at least one predefined condition is not met because execution of at least one command included in said I/O request message was not completed and said content field comprises said information, said information to comprise an address to an available reply frame buffer located in a host memory;
- and said address is one from a plurality of addresses, each of which identifies a location of a corresponding reply frame buffer residing in said host memory.
-
25. The program code of claim 24 wherein said third sub-code comprises instructions for reading said reply descriptor from a reply-post buffer.
Specification