On 9/22/25 2:55 PM, Michael S. Tsirkin wrote: > On Fri, Sep 12, 2025 at 03:07:00PM +0200, Paolo Abeni wrote: >> Extend the VirtioDeviceFeatures struct with an additional u64 >> to track unknown features in the 64-127 bit range and decode >> the full virtio features spaces for vhost and virtio devices. >> >> Also add entries for the soon-to-be-supported virtio net GSO over >> UDP features. >> >> Reviewed-by: Akihiko Odaki <[email protected]> >> Acked-by: Jason Wang <[email protected]> >> Signed-off-by: Paolo Abeni <[email protected]> >> --- >> v3 -> v4: >> - cleanup unknown features init >> - update QMP example and doc accordingly >> - use new virtio_features macro names >> >> v2 -> v3: >> - unknown-dev-features-dword2 -> unknown-dev-features2 >> - _array -> _ex >> - fixed typos in entries description >> >> v1 -> v2: >> - uint128_t -> uint64_t[] >> --- >> hw/virtio/virtio-hmp-cmds.c | 3 +- >> hw/virtio/virtio-qmp.c | 91 +++++++++++++++++++++++++------------ >> hw/virtio/virtio-qmp.h | 3 +- >> qapi/virtio.json | 9 +++- >> 4 files changed, 74 insertions(+), 32 deletions(-) >> >> diff --git a/hw/virtio/virtio-hmp-cmds.c b/hw/virtio/virtio-hmp-cmds.c >> index 7d8677bcf0..1daae482d3 100644 >> --- a/hw/virtio/virtio-hmp-cmds.c >> +++ b/hw/virtio/virtio-hmp-cmds.c >> @@ -74,7 +74,8 @@ static void hmp_virtio_dump_features(Monitor *mon, >> } >> >> if (features->has_unknown_dev_features) { >> - monitor_printf(mon, " unknown-features(0x%016"PRIx64")\n", >> + monitor_printf(mon, " >> unknown-features(0x%016"PRIx64"%016"PRIx64")\n", >> + features->unknown_dev_features2, >> features->unknown_dev_features); >> } >> } >> diff --git a/hw/virtio/virtio-qmp.c b/hw/virtio/virtio-qmp.c >> index 3b6377cf0d..502c9ae930 100644 >> --- a/hw/virtio/virtio-qmp.c >> +++ b/hw/virtio/virtio-qmp.c >> @@ -325,6 +325,20 @@ static const qmp_virtio_feature_map_t >> virtio_net_feature_map[] = { >> FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ >> "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " >> "negotiation supported"), >> + FEATURE_ENTRY(VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO, \ >> + "VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO: Driver can receive GSO over >> " >> + "UDP tunnel packets"), >> + FEATURE_ENTRY(VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_CSUM, \ >> + "VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO: Driver can receive GSO over >> " > > This really should be VIRTIO_NET_F_GUEST_UDP_TUNNEL_GSO_CSUM. > > Given they all seem to start with repeating the feature name, > why not just add it to the string automatically by the macro?
UHmm... let me keep the things simple and just fix the string; macro refactoring could be a follow-up, I hope? Thanks, Paolo
