IB/hfi1: Virtual Network Interface Controller (VNIC) HW support
HFI1 HW specific support for VNIC functionality. Dynamically allocate a set of contexts for VNIC when the first vnic port is instantiated. Allocate VNIC contexts from user contexts pool and return them back to the same pool while freeing up. Set aside enough MSI-X interrupts for VNIC contexts and assign them when the contexts are allocated. On the receive side, use an RSM rule to spread TCP/UDP streams among VNIC contexts. Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> Signed-off-by: Andrzej Kacprowski <andrzej.kacprowski@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:

committed by
Doug Ledford

parent
d4829ea603
commit
2280740f01
@@ -61,6 +61,7 @@
|
||||
#include "qp.h"
|
||||
#include "verbs_txreq.h"
|
||||
#include "debugfs.h"
|
||||
#include "vnic.h"
|
||||
|
||||
static unsigned int hfi1_lkey_table_size = 16;
|
||||
module_param_named(lkey_table_size, hfi1_lkey_table_size, uint,
|
||||
@@ -1289,7 +1290,8 @@ static void hfi1_fill_device_attr(struct hfi1_devdata *dd)
|
||||
IB_DEVICE_BAD_QKEY_CNTR | IB_DEVICE_SHUTDOWN_PORT |
|
||||
IB_DEVICE_SYS_IMAGE_GUID | IB_DEVICE_RC_RNR_NAK_GEN |
|
||||
IB_DEVICE_PORT_ACTIVE_EVENT | IB_DEVICE_SRQ_RESIZE |
|
||||
IB_DEVICE_MEM_MGT_EXTENSIONS;
|
||||
IB_DEVICE_MEM_MGT_EXTENSIONS |
|
||||
IB_DEVICE_RDMA_NETDEV_OPA_VNIC;
|
||||
rdi->dparms.props.page_size_cap = PAGE_SIZE;
|
||||
rdi->dparms.props.vendor_id = dd->oui1 << 16 | dd->oui2 << 8 | dd->oui3;
|
||||
rdi->dparms.props.vendor_part_id = dd->pcidev->device;
|
||||
@@ -1772,6 +1774,8 @@ int hfi1_register_ib_device(struct hfi1_devdata *dd)
|
||||
ibdev->modify_device = modify_device;
|
||||
ibdev->alloc_hw_stats = alloc_hw_stats;
|
||||
ibdev->get_hw_stats = get_hw_stats;
|
||||
ibdev->alloc_rdma_netdev = hfi1_vnic_alloc_rn;
|
||||
ibdev->free_rdma_netdev = hfi1_vnic_free_rn;
|
||||
|
||||
/* keep process mad in the driver */
|
||||
ibdev->process_mad = hfi1_process_mad;
|
||||
|
Reference in New Issue
Block a user