idpf: implement RDMA vport auxiliary dev create, init, and destroy

Implement the functions to create, initialize, and destroy an RDMA vport
auxiliary device. The vport aux dev creation is dependent on the
core aux device to call idpf_idc_vport_dev_ctrl to signal that it is
ready for vport aux devices. Implement that core callback to either
create and initialize the vport aux dev or deinitialize.

RDMA vport aux dev creation is also dependent on the control plane to
tell us the vport is RDMA enabled. Add a flag in the create vport
message to signal individual vport RDMA capabilities.

Reviewed-by: Madhu Chittim <madhu.chittim@intel.com>
Signed-off-by: Joshua Hay <joshua.a.hay@intel.com>
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
Joshua Hay
2025-07-08 16:05:51 -05:00
committed by Tony Nguyen
parent f4312e6bfa
commit be91128c57
5 changed files with 207 additions and 1 deletions

View File

@@ -6,6 +6,25 @@
#include <linux/auxiliary_bus.h>
/* struct to be populated by core LAN PCI driver */
struct iidc_rdma_vport_dev_info {
struct auxiliary_device *adev;
struct auxiliary_device *core_adev;
struct net_device *netdev;
u16 vport_id;
};
struct iidc_rdma_vport_auxiliary_dev {
struct auxiliary_device adev;
struct iidc_rdma_vport_dev_info *vdev_info;
};
struct iidc_rdma_vport_auxiliary_drv {
struct auxiliary_driver adrv;
void (*event_handler)(struct iidc_rdma_vport_dev_info *vdev,
struct iidc_rdma_event *event);
};
/* struct to be populated by core LAN PCI driver */
enum iidc_function_type {
IIDC_FUNCTION_TYPE_PF,