]> git.ipfire.org Git - thirdparty/qemu.git/commit
net: Add get_vhost_net callback to NetClientInfo
authorLaurent Vivier <lvivier@redhat.com>
Wed, 9 Jul 2025 08:24:18 +0000 (10:24 +0200)
committerJason Wang <jasowang@redhat.com>
Mon, 14 Jul 2025 05:27:09 +0000 (13:27 +0800)
commit8f6e5c620a5b21c070eed93721236cad48b6f9d7
tree6665b71774b42435e4fa95d6c3cb7716d6c4765c
parent7136352b40631b058dd0fe731a0d404e761e799f
net: Add get_vhost_net callback to NetClientInfo

The get_vhost_net() function previously contained a large switch
statement to find the VHostNetState pointer based on the net
client's type. This created a tight coupling, requiring the generic
vhost layer to be aware of every specific backend that supported
vhost, such as tap, vhost-user, and vhost-vdpa.

This approach is not scalable and requires modifying a central function
for any new backend. It also forced each backend to expose its internal
getter function in a public header file.

This patch refactors the logic by introducing a new get_vhost_net
function pointer to the NetClientInfo struct. The central
get_vhost_net() function is now a simple, generic dispatcher that
invokes the callback provided by the net client.

Each backend now implements its own private getter and registers it in
its NetClientInfo.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
hw/net/vhost_net.c
include/net/net.h
include/net/tap.h
include/net/vhost-user.h
include/net/vhost-vdpa.h
net/tap-win32.c
net/tap.c
net/vhost-user.c
net/vhost-vdpa.c