mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
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>
48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (C) 2025 Intel Corporation. */
|
|
|
|
#ifndef _IIDC_RDMA_IDPF_H_
|
|
#define _IIDC_RDMA_IDPF_H_
|
|
|
|
#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,
|
|
IIDC_FUNCTION_TYPE_VF,
|
|
};
|
|
|
|
struct iidc_rdma_priv_dev_info {
|
|
struct msix_entry *msix_entries;
|
|
u16 msix_count; /* How many vectors are reserved for this device */
|
|
enum iidc_function_type ftype;
|
|
};
|
|
|
|
int idpf_idc_vport_dev_ctrl(struct iidc_rdma_core_dev_info *cdev_info, bool up);
|
|
int idpf_idc_request_reset(struct iidc_rdma_core_dev_info *cdev_info,
|
|
enum iidc_rdma_reset_type __always_unused reset_type);
|
|
int idpf_idc_rdma_vc_send_sync(struct iidc_rdma_core_dev_info *cdev_info,
|
|
u8 *send_msg, u16 msg_size,
|
|
u8 *recv_msg, u16 *recv_len);
|
|
|
|
#endif /* _IIDC_RDMA_IDPF_H_ */
|