mirror-linux/include/linux/mlx5
Eran Ben Elisha 87175120de net/mlx5: Add HV VHCA infrastructure
HV VHCA is a layer which provides PF to VF communication channel based on
HyperV PCI config channel. It implements Mellanox's Inter VHCA control
communication protocol. The protocol contains control block in order to
pass messages between the PF and VF drivers, and data blocks in order to
pass actual data.

The infrastructure is agent based. Each agent will be responsible of
contiguous buffer blocks in the VHCA config space. This infrastructure will
bind agents to their blocks, and those agents can only access read/write
the buffer blocks assigned to them. Each agent will provide three
callbacks (control, invalidate, cleanup). Control will be invoked when
block-0 is invalidated with a command that concerns this agent. Invalidate
callback will be invoked if one of the blocks assigned to this agent was
invalidated. Cleanup will be invoked before the agent is being freed in
order to clean all of its open resources or deferred works.

Block-0 serves as the control block. All execution commands from the PF
will be written by the PF over this block. VF will ack on those by
writing on block-0 as well. Its format is described by struct
mlx5_hv_vhca_control_block layout.

Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-08-22 00:25:12 -07:00
..
accel.h net/mlx5: Kconfig, Better organize compilation flags 2019-07-05 16:29:19 -07:00
cmd.h
cq.h net/mlx5: Report EQE data upon CQ completion 2019-07-03 21:00:20 +03:00
device.h net/mlx5: kTLS, Fix wrong TIS opmod constants 2019-08-08 13:01:19 -07:00
doorbell.h
driver.h net/mlx5: Add HV VHCA infrastructure 2019-08-22 00:25:12 -07:00
eq.h net/mlx5: Use event mask based on device capabilities 2019-07-03 20:55:45 +03:00
eswitch.h net/mlx5: E-switch, Removed unused hwid 2019-08-09 14:54:10 -07:00
fs.h net/mlx5e: Protect mod_hdr hash table with mutex 2019-08-09 14:54:09 -07:00
fs_helpers.h
mlx5_ifc.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
mlx5_ifc_fpga.h
port.h net/mlx5e: ethtool, Add support for EEPROM high pages query 2019-05-01 14:39:16 -07:00
qp.h IB/mlx5: Support set qp counter 2019-07-05 10:22:55 -03:00
transobj.h net/mlx5: Introduce new TIR creation core API 2019-04-24 12:33:37 -07:00
vport.h net/mlx5: Introduce and use mlx5_eswitch_get_total_vports() 2019-07-03 12:50:42 -07:00