IP Library › Granted Patent US 7,133,405
Granted Patent B2
US 7,133,405 · App. 09/942,747 · Granted Nov 7, 2006

IP datagram over multiple queue pairs

Assignee: International Business Machines Corporation
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,133,405
App. No.
09/942,747
Granted
Nov 7, 2006
Kind
B2
Abstract

An apparatus and method for an advanced multiplexing technique to allow a single host to support multiple Internet Protocol (IP) queue pairs with little or no overhead are provided. With the apparatus and method, after a queue pair is created, Internet Protocol filter attributes and values are set up for the queue pair through value added features to the standard InfiniBand “QP Modify” method. The IP filters are used during normal operations to determine which queue pair is associated with an incoming packet. During normal operations, when a channel adapter receives an Internet Protocol (IP) over InfiniBand (IB) packet, it uses one or more of several fields in the packet's transport and/or network header to determine which queue pair shall receive the packet. Thus, the host channel adapter uses the IP filters to route incoming packets to the appropriate queue pair and thereby allow more than one queue pair to be used to support IP.

Claims (57)

1. A method of routing data packets to a queue pair, comprising:

receiving a data packet having a header in which one or more Internet Protocol filter values are identified;

identifying a queue pair in a plurality of queue pairs based on the one or more Internet Protocol filter values in the header of the data packet, wherein a single channel adapter supports the plurality of queue pairs; and

routing the data packet to the identified queue pair.

2. The method of claim 1 , wherein identifying the queue pair includes:

generating a hash value based on the one or more Internet Protocol filter values; and

retrieving a hash table entry based on the hash value.

3. The method of claim 2 , further comprising:

determining if a collision bit in the hash table entry is set; and

retrieving a collision table entry corresponding to the hash table entry if the collision bit is set.

4. The method of claim 3 , further comprising:

comparing the one or more Internet Protocol filter values in the header of the data packet to filter values in the collision table entry; and

identifying the queue pair based on the comparison of the one or more Internet Protocol filter values in the header of the data packet to the filter values in the collision table entry.

5. The method of claim 1 , wherein the method is implemented in a host channel adapter set up to support filtering.

6. The method of claim 5 , wherein the host channel adapter is set up to support filtering by using a Modify HCA verb to enable filtering in the host channel adapter.

7. The method of claim 1 , wherein the queue pair is a queue pair that is set up to support filtering by using a Modify QP verb to enable filtering.

8. The method of claim 7 , wherein the Modify QP verb identifies the filter value for each filter type enabled from filter types supported by a corresponding host channel adapter.

9. The method of claim 1 , wherein the one or more Internet Protocol filter values are Internet Protocol over InfiniBand transport and/or network layer filter values.

10. The method of claim 1 , wherein identifying the queue pair in a plurality of queue pairs based on the one or more Internet Protocol filter values in the header of the data packet includes using a content addressable memory.

11. A computer program product in a computer readable medium comprising instructions for executions by a computer for routing data packets to a queue pair, comprising:

first instructions for receiving a data packet having a header in which one or more Internet Protocol filter values are identified;

second instructions for identifying a queue pair in a plurality of queue ours based on the one or more Internet Protocol filter values in the header of the data packet, wherein a single channel adapter supports the plurality of queue pairs; and

third instructions for routing the data packet to the identified queue pair.

12. The computer program product of claim 11 , wherein the second instructions for identifying the queue pair include:

instructions for generating a hash value based on the one or more Internet Protocol filter values; and

instructions for retrieving a hash table entry based on the bash value.

13. The computer program product of claim 12 , further comprising:

instructions for determining if a collision bit in the hash table entry is set; and

instructions for retrieving a collision table entry corresponding to the hash table entry if the collision bit is set.

14. The computer program product of claim 13 , further comprising:

instructions for comparing the one or more Internet Protocol filter values in the header of the data packet to filter values in the collision table entry; and

instructions for identifying the queue pair based on the comparison of the one or more Internet Protocol filter values in the header of the data packet to the filter values in the collision table entry.

15. The computer program product of claim 11 , wherein the computer program product is executed in a host channel adapter set up to support filtering.

16. The computer program product of claim 15 , wherein the host channel adapter is set up to support filtering by using a Modify HCA verb to enable filtering in the host channel adapter.

17. The computer program product of claim 11 , wherein the queue pair is a queue pair that is set up to support filtering by using a Modify QP verb to enable filtering.

18. The computer program product of claim 17 , wherein the Modify QP verb identifies the filter value for each filter type enabled from filter types supported by a corresponding host channel adapter.

19. The computer program product of claim 11 , wherein the one or more Internet Protocol filter values are Internet Protocol over InfiniBand transport and/or network filter values.

20. The computer program product of claim 11 , wherein the second instructions for identifying the queue pair in a plurality queue pairs based on the one or more Internet Protocol filter values in the header of the data packet include instructions for using a content addressable memory.

21. An apparatus for routing data packets to a queue pair, comprising:

means for receiving a data packet having a header in which one or more Internet Protocol filter values are identified;

means for identifying a queue pair in a plurality of queue pairs based on the one or more Internet Protocol filter values in the header of the data packet, wherein a single channel adapter supports the plurality of queue pairs; and

means for routing the data packet to the identified queue pair.

22. The apparatus of claim 21 , wherein the means for identifying the queue pair includes:

means for generating a hash value based on the one or more Internet Protocol filter values; and

means for retrieving a hash table entry based on the hash value.

23. The apparatus of claim 22 , further comprising:

means for determining if a collision bit in the hash table entry is set; and

means for retrieving a collision table entry corresponding to the hash table entry if the collision bit is set.

24. The apparatus of claim 23 , further comprising:

means for comparing the one or more Internet Protocol filter values in the header of the data packet to filter values in the collision table entry; and

means for identifying the queue pair based on the comparison of the one or more Internet Protocol filter values in the header of the data packet to the filter values in the collision table entry.

25. The apparatus of claim 21 , wherein the apparatus is part of a host channel adapter set up to support filtering.

26. The apparatus of claim 25 , wherein the host channel adapter is set up to support filtering by using a Modify HCA verb to enable filtering in the host channel adapter.

27. The apparatus of claim 21 , wherein the queue pair is a queue pair that is set up to support filtering by using a Modify QP verb to enable filtering.

28. The apparatus of claim 27 , wherein the Modify QP verb identifies the filter value for each filter type enabled from filter types supported by a corresponding host channel adapter.

29. The apparatus of claim 21 , wherein the one or more Internet Protocol filter values are Internet Protocol over infiniBand transport and/or network filter values.

30. The apparatus of claim 21 , wherein the means for identifying the queue pair in a plurality of queue pairs based on the one or more Internet Protocol filter values in the header of the data packet includes means for using a content addressable memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2001
From: GRAHAM, CHARLES SCOTT; KASHYAP, VIVEK; NEAL, DANNY MARVIN; RECIO, RENATO JOHN; SENDELBACH, LEE ANTON
To: INTERNATIONAL BUSINESS MACHINES CORPORAITON
Reel/Frame 012154/0393 →
Continuity (1)
Related Publication 20030043805A1 · Mar 6, 2003