qemu-cr16/net
Paolo Abeni a5289563ad net: implement UDP tunnel features offloading
When any host or guest GSO over UDP tunnel offload is enabled the
virtio net header includes the additional tunnel-related fields,
update the size accordingly.

Push the GSO over UDP tunnel offloads all the way down to the tap
device extending the newly introduced NetFeatures struct, and
eventually enable the associated features.

As per virtio specification, to convert features bit to offload bit,
map the extended features into the reserved range.

Finally, make the vhost backend aware of the exact header layout, to
copy it correctly. The tunnel-related field are present if either
the guest or the host negotiated any UDP tunnel related feature:
add them to the kernel supported features list, to allow qemu
transfer to the backend the needed information.

Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Tested-by: Lei Yang <leiyang@redhat.com>
Acked-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-ID: <093b4bc68368046bffbcab2202227632d6e4e83b.1758549625.git.pabeni@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2025-10-04 10:51:09 -04:00
..
can qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
af-xdp.c net/af-xdp: Support pinned map path for AF_XDP sockets 2025-07-15 10:26:55 +08:00
announce.c qapi net: Elide redundant has_FOO in generated C 2022-12-14 20:04:47 +01:00
checksum.c net: checksum: Convert data to void * 2024-11-25 13:59:50 +08:00
clients.h net: Add passt network backend 2025-07-14 13:27:09 +08:00
colo-compare.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
colo-compare.h Add the function of colo_compare_cleanup 2021-06-11 10:30:13 +08:00
colo-stubs.c colo: move stubs out of stubs/ 2024-04-18 11:17:27 +02:00
colo.c net/colo.c: Fix the pointer issue reported by Coverity. 2022-09-02 10:22:39 +08:00
colo.h net/colo.c: Fix the pointer issue reported by Coverity. 2022-09-02 10:22:39 +08:00
dgram.c util: drop qemu_socket_try_set_nonblock() 2025-09-19 12:46:07 +01:00
dump.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
eth.c net/eth: Clean up local variable shadowing 2023-09-29 10:07:16 +02:00
filter-buffer.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
filter-mirror.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
filter-replay.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
filter-rewriter.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
filter.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
hub.c net: Add passt network backend 2025-07-14 13:27:09 +08:00
hub.h net: Remove deprecated [hub_id name] tuple of 'hostfwd_add' / 'hostfwd_remove' 2020-03-09 18:44:04 +00:00
l2tpv3.c util: drop qemu_socket_set_nonblock() 2025-09-19 12:46:07 +01:00
meson.build net: Add passt network backend 2025-07-14 13:27:09 +08:00
net-hmp-cmds.c qapi: Move include/qapi/qmp/ to include/qobject/ 2025-02-10 15:33:16 +01:00
net.c net: implement UDP tunnel features offloading 2025-10-04 10:51:09 -04:00
netmap.c net: bundle all offloads in a single struct 2025-10-04 10:50:36 -04:00
passt.c net/passt: Initialize "error" variable in net_passt_send() (CID 1612368) 2025-07-21 10:23:03 +08:00
queue.c net: Remove deadcode 2024-10-03 17:26:05 +03:00
slirp.c net/slirp: Clean up error reporting 2025-09-30 14:43:53 +02:00
socket.c util: drop qemu_socket_try_set_nonblock() 2025-09-19 12:46:07 +01:00
stream.c util: drop qemu_socket_try_set_nonblock() 2025-09-19 12:46:07 +01:00
stream_data.c util: drop qemu_socket_try_set_nonblock() 2025-09-19 12:46:07 +01:00
stream_data.h net: Refactor stream logic for reuse in '-net passt' 2025-07-14 13:27:09 +08:00
tap-bsd.c net: implement tunnel probing 2025-10-04 10:51:02 -04:00
tap-linux.c net: implement UDP tunnel features offloading 2025-10-04 10:51:09 -04:00
tap-linux.h net: implement tunnel probing 2025-10-04 10:51:02 -04:00
tap-solaris.c net: implement tunnel probing 2025-10-04 10:51:02 -04:00
tap-stub.c net: implement tunnel probing 2025-10-04 10:51:02 -04:00
tap-win32.c net: Add get_vhost_net callback to NetClientInfo 2025-07-14 13:27:09 +08:00
tap.c net: implement UDP tunnel features offloading 2025-10-04 10:51:09 -04:00
tap_int.h net: implement tunnel probing 2025-10-04 10:51:02 -04:00
trace-events vdpa: add trace event for vhost_vdpa_net_load_mq 2024-03-12 17:56:55 -04:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
util.c net: Clean up includes 2016-02-04 17:41:30 +00:00
util.h Replace config-time define HOST_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
vde.c net: introduce qemu_set_info_str() function 2022-10-28 13:28:52 +08:00
vhost-user-stub.c net: Add save_acked_features callback to vhost_net 2025-07-14 13:27:09 +08:00
vhost-user.c net/vhost-user: Remove unused "err" from chr_closed_bh() (CID 1612365) 2025-07-21 10:23:17 +08:00
vhost-vdpa-stub.c vhost-net-vdpa: add stubs for when no virtio-net device is present 2022-07-20 16:58:08 +08:00
vhost-vdpa.c net/vdpa: fix potential fd leak in net_init_vhost_vdpa() 2025-08-01 10:23:50 -04:00
vmnet-bridged.m net/vmnet: Drop ifdef for macOS versions older than 12.0 2024-07-02 06:58:48 +02:00
vmnet-common.m error: Strip trailing '\n' from an error string argument 2025-03-19 07:53:26 +01:00
vmnet-host.c net/vmnet: Drop ifdef for macOS versions older than 12.0 2024-07-02 06:58:48 +02:00
vmnet-shared.c net/vmnet: Drop ifdef for macOS versions older than 12.0 2024-07-02 06:58:48 +02:00
vmnet_int.h vmnet: stop recieving events when VM is stopped 2023-02-17 13:31:33 +08:00