On Fri, Feb 21, 2025 at 8:08 PM Konstantin Shkolnyy <k...@linux.ibm.com> wrote: > > Add .set_vnet_le() function that always returns success, assuming that > vDPA h/w always implements LE data format. Otherwise, QEMU disables vDPA and > outputs the message: > "backend does not support LE vnet headers; falling back on userspace virtio" >
Acked-by: Eugenio Pérez <epere...@redhat.com> > Signed-off-by: Konstantin Shkolnyy <k...@linux.ibm.com> > --- > Changes in V2: Add code comment. > > net/vhost-vdpa.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > index 231b45246c..6e7cec4d45 100644 > --- a/net/vhost-vdpa.c > +++ b/net/vhost-vdpa.c > @@ -270,6 +270,18 @@ static bool vhost_vdpa_has_ufo(NetClientState *nc) > > } > > +/* > + * FIXME: vhost_vdpa doesn't have an API to "set h/w endianness". But it's > + * reasonable to assume that h/w is LE by default, because LE is what > + * virtio 1.0 and later ask for. So, this function just says "yes, the h/w is > + * LE". Otherwise, on a BE machine, higher-level code would mistakely think > + * the h/w is BE and can't support VDPA for a virtio 1.0 client. > + */ > +static int vhost_vdpa_set_vnet_le(NetClientState *nc, bool enable) > +{ > + return 0; > +} > + > static bool vhost_vdpa_check_peer_type(NetClientState *nc, ObjectClass *oc, > Error **errp) > { > @@ -437,6 +449,7 @@ static NetClientInfo net_vhost_vdpa_info = { > .cleanup = vhost_vdpa_cleanup, > .has_vnet_hdr = vhost_vdpa_has_vnet_hdr, > .has_ufo = vhost_vdpa_has_ufo, > + .set_vnet_le = vhost_vdpa_set_vnet_le, > .check_peer_type = vhost_vdpa_check_peer_type, > .set_steering_ebpf = vhost_vdpa_set_steering_ebpf, > }; > -- > 2.34.1 >