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

vanhempi
d4829ea603
commit
2280740f01
@@ -53,6 +53,7 @@
|
||||
#include "mad.h"
|
||||
#include "trace.h"
|
||||
#include "qp.h"
|
||||
#include "vnic.h"
|
||||
|
||||
/* the reset value from the FM is supposed to be 0xffff, handle both */
|
||||
#define OPA_LINK_WIDTH_RESET_OLD 0x0fff
|
||||
@@ -650,9 +651,11 @@ static int __subn_get_opa_portinfo(struct opa_smp *smp, u32 am, u8 *data,
|
||||
OPA_PI_MASK_PORT_ACTIVE_OPTOMIZE : 0);
|
||||
|
||||
pi->port_packet_format.supported =
|
||||
cpu_to_be16(OPA_PORT_PACKET_FORMAT_9B);
|
||||
cpu_to_be16(OPA_PORT_PACKET_FORMAT_9B |
|
||||
OPA_PORT_PACKET_FORMAT_16B);
|
||||
pi->port_packet_format.enabled =
|
||||
cpu_to_be16(OPA_PORT_PACKET_FORMAT_9B);
|
||||
cpu_to_be16(OPA_PORT_PACKET_FORMAT_9B |
|
||||
OPA_PORT_PACKET_FORMAT_16B);
|
||||
|
||||
/* flit_control.interleave is (OPA V1, version .76):
|
||||
* bits use
|
||||
@@ -701,7 +704,8 @@ static int __subn_get_opa_portinfo(struct opa_smp *smp, u32 am, u8 *data,
|
||||
buffer_units |= (dd->vl15_init << 11) & OPA_PI_MASK_BUF_UNIT_VL15_INIT;
|
||||
pi->buffer_units = cpu_to_be32(buffer_units);
|
||||
|
||||
pi->opa_cap_mask = cpu_to_be16(OPA_CAP_MASK3_IsSharedSpaceSupported);
|
||||
pi->opa_cap_mask = cpu_to_be16(OPA_CAP_MASK3_IsSharedSpaceSupported |
|
||||
OPA_CAP_MASK3_IsEthOnFabricSupported);
|
||||
|
||||
/* HFI supports a replay buffer 128 LTPs in size */
|
||||
pi->replay_depth.buffer = 0x80;
|
||||
|
Viittaa uudesa ongelmassa
Block a user