On Wed, Nov 6, 2024 at 5:25 PM Michael S. Tsirkin <m...@redhat.com> wrote:
>
> 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?
>
There is no other check for this, Thank you, Michael. I will change
this to a new name.
Thanks
Cindy
>
> > -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
>