numam-dpdk/drivers/vdpa/sfc/sfc_vdpa_ops.h
Abhimanyu Saini f2c0e63428 vdpa/sfc: support multi-queue
Increase the number of default Rx/Tx queue pairs to 8,
and add MQ feature flag to vDPA protocol features.

Signed-off-by: Abhimanyu Saini <absaini@amd.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
2022-10-04 17:23:58 +02:00

68 lines
1.4 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2020-2021 Xilinx, Inc.
*/
#ifndef _SFC_VDPA_OPS_H
#define _SFC_VDPA_OPS_H
#include <rte_vdpa.h>
#define SFC_VDPA_MAX_QUEUE_PAIRS 8
enum sfc_vdpa_context {
SFC_VDPA_AS_VF
};
enum sfc_vdpa_state {
SFC_VDPA_STATE_UNINITIALIZED = 0,
SFC_VDPA_STATE_INITIALIZED,
SFC_VDPA_STATE_CONFIGURING,
SFC_VDPA_STATE_CONFIGURED,
SFC_VDPA_STATE_CLOSING,
SFC_VDPA_STATE_CLOSED,
SFC_VDPA_STATE_STARTING,
SFC_VDPA_STATE_STARTED,
SFC_VDPA_STATE_STOPPING,
};
struct sfc_vdpa_vring_info {
uint64_t desc;
uint64_t avail;
uint64_t used;
uint64_t size;
uint16_t last_avail_idx;
uint16_t last_used_idx;
};
typedef struct sfc_vdpa_vq_context_s {
volatile void *doorbell;
uint8_t enable;
uint32_t pidx;
uint32_t cidx;
efx_virtio_vq_t *vq;
} sfc_vdpa_vq_context_t;
struct sfc_vdpa_ops_data {
void *dev_handle;
int vid;
struct rte_vdpa_device *vdpa_dev;
enum sfc_vdpa_context vdpa_context;
enum sfc_vdpa_state state;
pthread_t notify_tid;
bool is_notify_thread_started;
uint64_t dev_features;
uint64_t drv_features;
uint64_t req_features;
uint16_t vq_count;
struct sfc_vdpa_vq_context_s vq_cxt[SFC_VDPA_MAX_QUEUE_PAIRS * 2];
};
struct sfc_vdpa_ops_data *
sfc_vdpa_device_init(void *adapter, enum sfc_vdpa_context context);
void
sfc_vdpa_device_fini(struct sfc_vdpa_ops_data *ops_data);
#endif /* _SFC_VDPA_OPS_H */