On Sat, Oct 26, 2024 at 03:59:59PM +0800, Cindy Lu wrote: > When using a VDPA device, it's important to ensure that the MAC > address is correctly set. > Add a new parameter in qemu cmdline to enable this check, default value > is false > > The usage is: > .... > -netdev > type=vhost-vdpa,vhostdev=/dev/vhost-vdpa-0,id=vhost-vdpa0,macstrickcheck=true\
typos in command line are not welcome. you should also separate words e.g. by dashes. Are there more options than strict? Also if not strict, should we still warn? > -device virtio-net-pci,netdev=vhost-vdpa0\ > .... > > Signed-off-by: Cindy Lu <l...@redhat.com> > --- > include/net/net.h | 1 + > net/vhost-vdpa.c | 4 ++++ > qapi/net.json | 5 +++++ > 3 files changed, 10 insertions(+) > > diff --git a/include/net/net.h b/include/net/net.h > index c8f679761b..e00651a97b 100644 > --- a/include/net/net.h > +++ b/include/net/net.h > @@ -112,6 +112,7 @@ struct NetClientState { > bool is_netdev; > bool do_not_pad; /* do not pad to the minimum ethernet frame length */ > bool is_datapath; > + bool check_mac; > QTAILQ_HEAD(, NetFilterState) filters; > }; > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > index 46b02c50be..071c3ff065 100644 > --- a/net/vhost-vdpa.c > +++ b/net/vhost-vdpa.c > @@ -1860,6 +1860,8 @@ int net_init_vhost_vdpa(const Netdev *netdev, const > char *name, > iova_range, features, shared, errp); > if (!ncs[i]) > goto err; > + > + ncs[i]->check_mac = opts->macstrickcheck; > } > > if (has_cvq) { > @@ -1872,6 +1874,8 @@ int net_init_vhost_vdpa(const Netdev *netdev, const > char *name, > errp); > if (!nc) > goto err; > + > + nc->check_mac = opts->macstrickcheck; > } > > return 0; > diff --git a/qapi/net.json b/qapi/net.json > index 87fc0d0b28..7d75119858 100644 > --- a/qapi/net.json > +++ b/qapi/net.json > @@ -510,6 +510,10 @@ > # @queues: number of queues to be created for multiqueue vhost-vdpa > # (default: 1) > # > +# @macstrickcheck: Enable the check for whether the device's MAC address > +# and the MAC in QEMU command line are acceptable for booting. > +# (default: false) > +# > # @x-svq: Start device with (experimental) shadow virtqueue. (Since > # 7.1) (default: false) > # > @@ -524,6 +528,7 @@ > '*vhostdev': 'str', > '*vhostfd': 'str', > '*queues': 'int', > + '*macstrickcheck': 'bool', > '*x-svq': {'type': 'bool', 'features' : [ 'unstable'] } } } > > ## > -- > 2.45.0