linux/drivers/vdpa/vdpa_sim/vdpa_sim_net.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * VDPA simulator for networking device.
 *
 * Copyright (c) 2020, Red Hat Inc. All rights reserved.
 *     Author: Jason Wang <[email protected]>
 *
 */

#include <linux/init.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/etherdevice.h>
#include <linux/vringh.h>
#include <linux/vdpa.h>
#include <net/netlink.h>
#include <uapi/linux/virtio_net.h>
#include <uapi/linux/vdpa.h>

#include "vdpa_sim.h"

#define DRV_VERSION
#define DRV_AUTHOR
#define DRV_DESC
#define DRV_LICENSE

#define VDPASIM_NET_FEATURES

/* 3 virtqueues, 2 address spaces, 2 virtqueue groups */
#define VDPASIM_NET_VQ_NUM
#define VDPASIM_NET_AS_NUM
#define VDPASIM_NET_GROUP_NUM

struct vdpasim_dataq_stats {};

struct vdpasim_cq_stats {};

struct vdpasim_net{};

static struct vdpasim_net *sim_to_net(struct vdpasim *vdpasim)
{}

static void vdpasim_net_complete(struct vdpasim_virtqueue *vq, size_t len)
{}

static bool receive_filter(struct vdpasim *vdpasim, size_t len)
{}

static virtio_net_ctrl_ack vdpasim_handle_ctrl_mac(struct vdpasim *vdpasim,
						   u8 cmd)
{}

static void vdpasim_handle_cvq(struct vdpasim *vdpasim)
{}

static void vdpasim_net_work(struct vdpasim *vdpasim)
{}

static int vdpasim_net_get_stats(struct vdpasim *vdpasim, u16 idx,
				 struct sk_buff *msg,
				 struct netlink_ext_ack *extack)
{}

static void vdpasim_net_get_config(struct vdpasim *vdpasim, void *config)
{}

static int vdpasim_net_set_attr(struct vdpa_mgmt_dev *mdev, struct vdpa_device *dev,
				const struct vdpa_dev_set_config *config)
{}

static void vdpasim_net_setup_config(struct vdpasim *vdpasim,
				     const struct vdpa_dev_set_config *config)
{}

static void vdpasim_net_free(struct vdpasim *vdpasim)
{}

static void vdpasim_net_mgmtdev_release(struct device *dev)
{}

static struct device vdpasim_net_mgmtdev =;

static int vdpasim_net_dev_add(struct vdpa_mgmt_dev *mdev, const char *name,
			       const struct vdpa_dev_set_config *config)
{}

static void vdpasim_net_dev_del(struct vdpa_mgmt_dev *mdev,
				struct vdpa_device *dev)
{}

static const struct vdpa_mgmtdev_ops vdpasim_net_mgmtdev_ops =;

static struct virtio_device_id id_table[] =;

static struct vdpa_mgmt_dev mgmt_dev =;

static int __init vdpasim_net_init(void)
{}

static void __exit vdpasim_net_exit(void)
{}

module_init();
module_exit(vdpasim_net_exit);

MODULE_VERSION();
MODULE_LICENSE();
MODULE_AUTHOR();
MODULE_DESCRIPTION();