IP Library Granted Patent US 7,996,583
Granted Patent B2
US 7,996,583 · App. 11/469,462 · Granted Aug 9, 2011

Multiple context single logic virtual host channel adapter supporting multiple transport protocols

Assignee: Cisco Technology, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,996,583
App. No.
11/469,462
Granted
Aug 9, 2011
Kind
B2
Abstract

Various embodiments provide methods and systems operable to receive a work queue pair from one of a plurality of host nodes, to scan the work queue pair for known data formats corresponding to one of a plurality of transport protocols, to optionally convert the work queue pair to produce a standard work queue pair data format, to add the work queue pair to a scheduler queue for a virtual host channel adapter (HCA) scheduler, and to update a context associated with the work queue pair.

Claims (59)

1. A method comprising:

providing a plurality of input/output ports in a network switch, which provide a set of data channels for data communications between one of a plurality of host nodes and one of a plurality of target nodes;

providing a plurality of virtual host channel adapters (HCA's) in the network switch, any one of which may be assigned to a work queue pair received via any one of the plurality of input/output ports;

receiving a work queue pair via any one of the plurality of input/output ports;

scanning the work queue pair for known data formats corresponding to one of a plurality of transport protocols;

optionally converting the work queue pair to produce a standard work queue pair data format;

assigning the work queue pair to one of the plurality of virtual host channel adapters (HCA's);

activating a scheduler in the network switch to sequence processing performed by the plurality of virtual host channel adapters (HCA's), the scheduler being accessible to the plurality of virtual host channel adapters (HCA's); and

updating a context associated with the work queue pair, the context being stored in a shared memory of the network switch accessible to the plurality of virtual host channel adapters (HCA's).

2. The method as claimed in claim 1 wherein the context is associated with one of the plurality of virtual host channel adapters (HCA's).

3. The method as claimed in claim 1 further including activating a send engine to manage sending of data packets performed by the plurality of virtual host channel adapters (HCA's), the send engine being accessible to the plurality of virtual host channel adapters (HCA's).

4. The method as claimed in claim 1 further including:

creating at least one data packet corresponding to the work queue pair; and

sending the at least one data packet to one of the plurality of target nodes via one of the plurality of input/output ports.

5. The method as claimed in claim 4 further including:

requesting the scheduler to start a transfer timeout timer when the at least one data packet is sent.

6. The method as claimed in claim 4 further including receiving a send acknowledgement from one of the plurality of target nodes after the at least one data packet is sent.

7. The method as claimed in claim 1 further including:

receiving at least one data packet from one of the plurality of target nodes via one of the plurality of input/output ports.

8. The method as claimed in claim 1 further including activating a receive engine to manage receiving of data packets performed by the plurality of virtual host channel adapters (HCA's), the receive engine being accessible to the plurality of virtual host channel adapters (HCA's).

9. The method as claimed in claim 7 further including obtaining a buffer area for receiving the at least one data packet.

10. The method as claimed in claim 7 further including sending a receive acknowledgement to one of the plurality of target nodes after the at least one data packet is received.

11. An apparatus comprising:

means for providing a plurality of input/output ports in a network switch, which provide a set of data channels for data communications between one of a plurality of host nodes and one of a plurality of target nodes;

means for providing a plurality of virtual host channel adapters (HCA's) in the network switch, any one of which may be assigned to a work queue pair received via any one of the plurality of input/output ports;

means for receiving a work queue pair via any one of the plurality of input/output ports;

means for scanning the work queue pair for known data formats corresponding to one of a plurality of transport protocols;

means for assigning the work queue pair to one of the plurality of virtual host channel adapters (HCA's);

means for activating a scheduler in the network switch to sequence processing performed by the plurality of virtual host channel adapters (HCA's), the scheduler being accessible to the plurality of virtual host channel adapters (HCA's); and

means for updating a context associated with the work queue pair, the context being stored in a shared memory of the network switch accessible to the plurality of virtual host channel adapters (HCA's).

12. The apparatus as claimed in claim 11 wherein the context is associated with one of the plurality of virtual host channel adapters (HCA's).

13. The apparatus as claimed in claim 11 further including means for activating a send engine to manage sending of data packets performed by the plurality of virtual host channel adapters (HCA's), the send engine being accessible to the plurality of virtual host channel adapters (HCA's).

14. An apparatus comprising:

means for providing a plurality of input/output ports in a network switch, which provide a set of data channels for data communications between one of a plurality of host nodes and one of a plurality of target nodes;

means for providing a plurality of virtual host channel adapters (HCA's) in the network switch, any one of which may be assigned to a work queue pair received via any one of the plurality of input/output ports;

means for receiving a work queue pair via any one of the plurality of input/output ports;

means for scanning the work queue pair for known data formats corresponding to one of a plurality of transport protocols;

means for optionally converting the work queue pair to produce a standard work queue pair data format;

means for assigning the work queue pair to one of the plurality of virtual host channel adapters (HCA's);

means for activating a scheduler in the network switch to sequence processing performed by the plurality of virtual host channel adapters (HCA's), the scheduler being accessible to the plurality of virtual host channel adapters (HCA's); and

means for updating a context associated with the work queue pair, the context being stored in a shared memory of the network switch accessible to the plurality of virtual host channel adapters (HCA's).

15. The apparatus as claimed in claim 14 wherein the context is associated with one of the plurality of virtual host channel adapters (HCA's).

16. The apparatus as claimed in claim 14 further including activating a receive engine to manage receiving of data packets performed by the plurality of virtual host channel adapters (HCA's), the receive engine being accessible to the plurality of virtual host channel adapters (HCA's).

17. A virtual host channel adapter (HCA) engine comprising:

a virtual host channel adapter (HCA) scheduler in a network switch to receive a work queue pair from one of a plurality of host nodes via one of a plurality of input/output ports in the network switch, to scan the work queue pair for known data formats corresponding to one of a plurality of transport protocols, to optionally convert the work queue pair to produce a standard work queue pair data format, to assign the work queue pair to one of a plurality of virtual host channel adapters (HCA's) in the network switch, and to activate the scheduler in the network switch to sequence processing performed by the plurality of virtual host channel adapters (HCA's), the scheduler being accessible to the plurality of virtual host channel adapters (HCA's); and

a virtual send engine in the network switch to update a context associated with the work queue pair, to create at least one data packet corresponding to the work queue pair, and to send the at least one data packet to one of a plurality of target nodes via one of the plurality of input/output ports, the virtual send engine being accessible to the plurality of virtual host channel adapters (HCA's), the context being stored in a shared memory of the network switch accessible to the plurality of virtual host channel adapters (HCA's).

18. The virtual host channel adapter (HCA) engine as claimed in claim 17 wherein the context is associated with one of the plurality of virtual host channel adapters (HCA's).

19. The virtual host channel adapter (HCA) engine as claimed in claim 17 wherein the virtual send engine processes the work queue pair added to a virtual send engine queue.

20. The virtual host channel adapter (HCA) engine as claimed in claim 17 wherein the scheduler starts a transfer timeout timer when the at least one data packet is sent.

21. The virtual host channel adapter (HCA) engine as claimed in claim 17 further including a virtual receive engine to receive a send acknowledgement from one of the plurality of target nodes after the at least one data packet is sent, the virtual receive engine being accessible to the plurality of virtual host channel adapters (HCA's).

22. A system comprising:

a host including a host application;

a plurality of input/output ports in a network switch, which provide a set of data channels for data communications between the host application and one of a plurality of target nodes;

a plurality of virtual host channel adapters (HCA's) in the network switch, any one of which may be assigned to a work queue pair received via any one of the plurality of input/output ports; and

a virtual host channel adapter of the plurality of virtual host channel adapters (HCA's) being assigned to a work queue pair received from the host application, the virtual host channel adapter being operable to receive a work queue pair from the host application via any one of the plurality of input/output ports, to scan the work queue pair for known data formats corresponding to one of a plurality of transport protocols, to optionally convert the work queue pair to produce a standard work queue pair data format, to activate a scheduler in the network switch to sequence processing performed by the plurality of virtual host channel adapters (HCA's), the scheduler being accessible to the plurality of virtual host channel adapters (HCAs), to update a context associated with the work queue pair, the context being stored in a shared memory of the network switch accessible to the plurality of virtual host channel adapters (HCA's), to create at least one data packet corresponding to the work queue pair, and to send the at least one data packet to one of a plurality of target nodes via one of the plurality of input/output ports.

23. The system as claimed in claim 22 wherein the context is associated with one of the plurality of virtual host channel adapters (HCA's).

24. The system as claimed in claim 22 wherein a virtual send engine processes the work queue pair added to a virtual send engine queue, the virtual send engine being accessible to the plurality of virtual host channel adapters (HCA's).

25. The system as claimed in claim 22 wherein the scheduler starts a transfer timeout timer when the at least one data packet is sent.

26. The system as claimed in claim 22 further including a virtual receive engine to receive a send acknowledgement from one of a plurality of target nodes after the at least one data packet is sent, the virtual receive engine being accessible to the plurality of virtual host channel adapters (HCA's).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2006
From: WILKINSON, KEITH IAIN
To: CISCO TECHNOLOGY, INC.
Reel/Frame 018196/0818 →
Continuity (1)
Related Publication 20080126564A1 · May 29, 2008