[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 12/21] vhost_net: Add NetClientInfo start callback
From: |
Jason Wang |
Subject: |
[PULL 12/21] vhost_net: Add NetClientInfo start callback |
Date: |
Fri, 2 Sep 2022 14:41:29 +0800 |
From: Eugenio Pérez <eperezma@redhat.com>
This is used by the backend to perform actions before the device is
started.
In particular, vdpa net use it to map CVQ buffers to the device, so it
can send control commands using them.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
hw/net/vhost_net.c | 7 +++++++
include/net/net.h | 2 ++
2 files changed, 9 insertions(+)
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index ccac5b7..2e0baeb 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -244,6 +244,13 @@ static int vhost_net_start_one(struct vhost_net *net,
struct vhost_vring_file file = { };
int r;
+ if (net->nc->info->start) {
+ r = net->nc->info->start(net->nc);
+ if (r < 0) {
+ return r;
+ }
+ }
+
r = vhost_dev_enable_notifiers(&net->dev, dev);
if (r < 0) {
goto fail_notifiers;
diff --git a/include/net/net.h b/include/net/net.h
index 523136c..ad9e800 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -44,6 +44,7 @@ typedef struct NICConf {
typedef void (NetPoll)(NetClientState *, bool enable);
typedef bool (NetCanReceive)(NetClientState *);
+typedef int (NetStart)(NetClientState *);
typedef ssize_t (NetReceive)(NetClientState *, const uint8_t *, size_t);
typedef ssize_t (NetReceiveIOV)(NetClientState *, const struct iovec *, int);
typedef void (NetCleanup) (NetClientState *);
@@ -71,6 +72,7 @@ typedef struct NetClientInfo {
NetReceive *receive_raw;
NetReceiveIOV *receive_iov;
NetCanReceive *can_receive;
+ NetStart *start;
NetCleanup *cleanup;
LinkStatusChanged *link_status_changed;
QueryRxFilter *query_rx_filter;
--
2.7.4
- [PULL 00/21] Net patches, Jason Wang, 2022/09/02
- [PULL 01/21] vdpa: Skip the maps not in the iova tree, Jason Wang, 2022/09/02
- [PULL 03/21] util: accept iova_tree_remove_parameter by value, Jason Wang, 2022/09/02
- [PULL 02/21] vdpa: do not save failed dma maps in SVQ iova tree, Jason Wang, 2022/09/02
- [PULL 05/21] vdpa: Make SVQ vring unmapping return void, Jason Wang, 2022/09/02
- [PULL 06/21] vhost: Always store new kick fd on vhost_svq_set_svq_kick_fd, Jason Wang, 2022/09/02
- [PULL 07/21] vdpa: Use ring hwaddr at vhost_vdpa_svq_unmap_ring, Jason Wang, 2022/09/02
- [PULL 08/21] vhost: stop transfer elem ownership in vhost_handle_guest_kick, Jason Wang, 2022/09/02
- [PULL 10/21] vhost: Delete useless read memory barrier, Jason Wang, 2022/09/02
- [PULL 12/21] vhost_net: Add NetClientInfo start callback,
Jason Wang <=
- [PULL 09/21] vhost: use SVQ element ndescs instead of opaque data for desc validation, Jason Wang, 2022/09/02
- [PULL 11/21] vhost: Do not depend on !NULL VirtQueueElement on vhost_svq_flush, Jason Wang, 2022/09/02
- [PULL 13/21] vhost_net: Add NetClientInfo stop callback, Jason Wang, 2022/09/02
- [PULL 16/21] vdpa: extract vhost_vdpa_net_cvq_add from vhost_vdpa_net_handle_ctrl_avail, Jason Wang, 2022/09/02
- [PULL 15/21] vdpa: Move command buffers map to start of net device, Jason Wang, 2022/09/02
- [PULL 14/21] vdpa: add net_vhost_vdpa_cvq_info NetClientInfo, Jason Wang, 2022/09/02
- [PULL 18/21] vdpa: Add virtio-net mac address via CVQ at start, Jason Wang, 2022/09/02
- [PULL 17/21] vhost_net: add NetClientState->load() callback, Jason Wang, 2022/09/02
- [PULL 04/21] vdpa: Remove SVQ vring from iova_tree at shutdown, Jason Wang, 2022/09/02
- [PULL 19/21] vdpa: Delete CVQ migration blocker, Jason Wang, 2022/09/02