Method and system for Infiniband host channel adapter multicast packet replication mechanism
First Claim
1. A method for multicast replication by a host channel adapter (HCA), comprising:
- receiving, by the HCA, a multicast packet, wherein the HCA comprises responder processing logic for processing packets through a receive pipeline in the HCA;
storing, in a payload random access memory (RAM) within the HCA, a multicast packet payload corresponding to a data portion of the multicast packet;
identifying, from a multicast header of the multicast packet, a plurality of destination underlying functions and a plurality of corresponding destination QPs within a multicast group to which the multicast packet is directed, wherein each destination underlying function of the plurality of destination underlying functions corresponds to a virtual machine located on a host operatively connected to the HCA;
identifying, from the multicast header, information to be replicated for each multicast packet destination;
injecting, by the HCA, a number of multicast packet descriptors corresponding to a number of the corresponding destination QPs into the receive pipeline of the HCA, wherein each multicast packet descriptor comprises the information to be replicated, wherein the multicast packet descriptors are processed in the receive pipeline of the HCA; and
copying, from the payload RAM, the multicast packet payload to each of the corresponding destination QPs in host memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for multicast replication by a host channel adapter (HCA) involving receiving a multicast packet, by a receive pipeline for processing packets of the HCA, storing, in a payload RAM within the HCA, a multicast packet payload corresponding to a data portion of the multicast packet, identifying, from a multicast header of the multicast packet, a plurality of destination underlying functions and a plurality of corresponding destination QPs to which the multicast packet is directed, wherein each destination underlying function of corresponds to a virtual machine located on a host, identifying, from the multicast header, information to be replicated for each multicast packet destination, injecting, by the HCA, a number of multicast packet descriptors corresponding to a number of the corresponding destination QPs into the receive pipeline of the HCA, and copying, from the payload RAM, the multicast packet payload to each of the corresponding destination QPs.
58 Citations
20 Claims
-
1. A method for multicast replication by a host channel adapter (HCA), comprising:
-
receiving, by the HCA, a multicast packet, wherein the HCA comprises responder processing logic for processing packets through a receive pipeline in the HCA; storing, in a payload random access memory (RAM) within the HCA, a multicast packet payload corresponding to a data portion of the multicast packet; identifying, from a multicast header of the multicast packet, a plurality of destination underlying functions and a plurality of corresponding destination QPs within a multicast group to which the multicast packet is directed, wherein each destination underlying function of the plurality of destination underlying functions corresponds to a virtual machine located on a host operatively connected to the HCA; identifying, from the multicast header, information to be replicated for each multicast packet destination; injecting, by the HCA, a number of multicast packet descriptors corresponding to a number of the corresponding destination QPs into the receive pipeline of the HCA, wherein each multicast packet descriptor comprises the information to be replicated, wherein the multicast packet descriptors are processed in the receive pipeline of the HCA; and copying, from the payload RAM, the multicast packet payload to each of the corresponding destination QPs in host memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A host channel adapter (HCA) comprising:
-
a plurality of underlying functions, wherein each of the plurality of underlying functions corresponds to a virtual machine in a host operatively connected to the HCA; a receive packet processing pipeline, the receive packet processing pipeline being configured to; receive a multicast packet comprising a multicast header and a payload corresponding to a data portion of the multicast packet; store, in a payload random access memory (RAM) within the HCA, the multicast packet payload; a multicast inspection engine configured to; identify, from the multicast header of the multicast packet, a subset of the plurality of destination underlying functions and a plurality of corresponding destination QPs within a multicast group to which the multicast packet is directed; and identify, from the multicast header, information to be replicated for each multicast packet destination, wherein the receive packet processing pipeline is further configured to; inject a number of multicast packet descriptors corresponding to a number of the plurality of corresponding destination QPs identified by the multicast inspection engine into the receive packet processing pipeline, wherein each multicast packet descriptor comprises the information to be replicated; and copy, from the payload RAM, the multicast packet payload to each of the corresponding destination QPs in host memory. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
a host comprising; a first virtual machine comprising a first destination queue pair (QP); and a second virtual machine comprising a second destination QP; and a host channel adapter (HCA) operatively connected to the host and comprising; a first underlying function corresponding to the first virtual machine; a second underlying function corresponding to the second virtual machine; a receive packet processing pipeline, the receive packet processing pipeline configured to; receive a multicast packet comprising a multicast header and a payload corresponding to a data portion of the multicast packet; store, in a payload random access memory (RAM) within the HCA, the multicast packet payload; a multicast inspection engine configured to; identify, from the multicast header of the multicast packet, the first and second underlying functions and corresponding first and second destination QPs within a multicast group to which the multicast packet is directed; and identify, from the multicast header, information to be replicated for each multicast packet destination; wherein the receive packet processing pipeline is further configured to; inject a multicast packet descriptor for each of the corresponding first and second destination QPs identified by the multicast inspection engine into the receive packet processing pipeline, wherein each multicast packet descriptor comprises the information to be replicated; and copy, from the payload RAM, the multicast packet payload to each of the first and second corresponding destination QPs in host memory. - View Dependent Claims (20)
-
Specification