From nobody Wed Apr 2 13:32:03 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1742995317; cv=none; d=zohomail.com; s=zohoarc; b=doQBIgGSuXDHuh358VQRFtCLNcGALcKc6ao6hHYx+s0kpc6IokUSEGrnQukPvbllHxVI1uezpol3l+iAAmsJJaRKLO37iB9BeI7/JKGQqz9TrGNN+bpE54MgEwtYXTYFLn7tyfm35ASOiz0qcEghbZRQPOC+TK2Mm+q1bvndVYw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742995317; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=CDklKuC5L3JF0nZoxxdQAyPqUBGCqrBeyCpp179htLk=; b=hdYqzbeVEmLPLLfz9nTUmibu38qi0jRp2XfUwJc+V+hygx+KugS0ZRk37wFjk8r3XIieQ4BKggALI+P0LLDi871PfohA3Z3oRqS4Urf95JeYHthNk+qiAqziYHUiS3DGzi836SlO8qgpt60OmJwUqiLdhRKGd/gX/JrjpCxXl6k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1742995317624333.970994663061; Wed, 26 Mar 2025 06:21:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1txQgc-0008Qm-6r; Wed, 26 Mar 2025 09:20:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1txQgY-0008Pj-Vj for qemu-devel@nongnu.org; Wed, 26 Mar 2025 09:20:47 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1txQgX-0006zy-DS for qemu-devel@nongnu.org; Wed, 26 Mar 2025 09:20:46 -0400 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-207-f--zVQavMda1ntyJxu0LLA-1; Wed, 26 Mar 2025 09:20:40 -0400 Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 59D101800257 for ; Wed, 26 Mar 2025 13:20:39 +0000 (UTC) Received: from server.redhat.com (unknown [10.72.112.11]) by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 959481956095; Wed, 26 Mar 2025 13:20:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742995244; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CDklKuC5L3JF0nZoxxdQAyPqUBGCqrBeyCpp179htLk=; b=XL1RN+gs5gLFk9oR865L0wumkaD1Bi7hr0/cQII07QllYL8UMn1vO8L4KqtscYxOYfRqwS rhIqiEVafrFyt1huR8BF565TAb3ymmWf/vwnDQJxYjNkDV0drBZZx+piaONG3JkrmETMkh w7/m9NhB57yCudk+9BvdgQn0jX+80fg= X-MC-Unique: f--zVQavMda1ntyJxu0LLA-1 X-Mimecast-MFC-AGG-ID: f--zVQavMda1ntyJxu0LLA_1742995239 From: Cindy Lu To: lulu@redhat.com, mst@redhat.com, jasowang@redhat.com, qemu-devel@nongnu.org Subject: [PATCH v5 1/4] vhost_vdpa : Add a new parameter to enable check mac address Date: Wed, 26 Mar 2025 21:19:30 +0800 Message-ID: <20250326132021.1215568-2-lulu@redhat.com> In-Reply-To: <20250326132021.1215568-1-lulu@redhat.com> References: <20250326132021.1215568-1-lulu@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=lulu@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1742995319728019000 Content-Type: text/plain; charset="utf-8" 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=3Dvhost-vdpa,vhostdev=3D/dev/vhost-vdpa-0,id=3Dvhost-vdpa0,che= ck-mac=3Dtrue\ -device virtio-net-pci,netdev=3Dvhost-vdpa0\ .... Signed-off-by: Cindy Lu --- 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 cdd5b109b0..fac1951b6e 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; }; =20 diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 7ca8b46eee..ba1da31741 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -1870,6 +1870,8 @@ int net_init_vhost_vdpa(const Netdev *netdev, const c= har *name, iova_range, features, shared, errp); if (!ncs[i]) goto err; + + ncs[i]->check_mac =3D opts->check_mac; } =20 if (has_cvq) { @@ -1882,6 +1884,8 @@ int net_init_vhost_vdpa(const Netdev *netdev, const c= har *name, errp); if (!nc) goto err; + + nc->check_mac =3D opts->check_mac; } =20 return 0; diff --git a/qapi/net.json b/qapi/net.json index 310cc4fd19..a5c70d1df8 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) # +# @check-mac: 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', + '*check-mac': 'bool', '*x-svq': {'type': 'bool', 'features' : [ 'unstable'] } } } =20 ## --=20 2.45.0 From nobody Wed Apr 2 13:32:03 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1742995317; cv=none; d=zohomail.com; s=zohoarc; b=ds95ZKC592ncsaw2q/68/2Hf+8OUm7XWg1yiiSWRI2S6S1QzYnFKxukdlb0T/NkhrSlznef5LWZcb+IXHcaV6wDdK+1sB80sRrW86+uZyyx+aubYVxbd1EVcNCmREi1cDP9vquxA1dVx6BBRBmknkProYN3jl1EjxiPefpho+ro= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742995317; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=8GMDLKVArVG1fcUKB+sYhePHWyGMH2kXaND/YejbAJk=; b=LoZFT9bLNQL4Fxu/j7QWikfB9dDmjMq8ShqQrmFWFF7G47n++/+88Yy8w4FvQ0lvm3xmeQQgb3OCobbgvlGg8y1eR1X18YeewJlYe3s1xAsH0wTjXI9O5g2ofJk0J9h0AweqbCXhN2ix69bC1RfZqVJqhYiquAi5/DvYehawtsI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1742995317626571.8677603588202; Wed, 26 Mar 2025 06:21:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1txQgd-0008RR-4i; Wed, 26 Mar 2025 09:20:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1txQgb-0008Q6-Rw for qemu-devel@nongnu.org; Wed, 26 Mar 2025 09:20:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1txQga-00070C-9x for qemu-devel@nongnu.org; Wed, 26 Mar 2025 09:20:49 -0400 Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-601-QOmdSMj9MRGnkoL5bA0uGg-1; Wed, 26 Mar 2025 09:20:45 -0400 Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7ECA71933B48 for ; Wed, 26 Mar 2025 13:20:43 +0000 (UTC) Received: from server.redhat.com (unknown [10.72.112.11]) by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id AAE041956095; Wed, 26 Mar 2025 13:20:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742995246; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8GMDLKVArVG1fcUKB+sYhePHWyGMH2kXaND/YejbAJk=; b=NEkNQd2TypKyALkUuC3JHfhk4y2Gxm8Qrza/zL32WbS1f+tKxhvd3IKMqaf6GdZZ8aQp3t bMSrfOm4532DuLqrO43f8EMJ2gNZg+70fExd3cQDurHyWRhYOSkaHYZCP6hoaVPvTBCcug y4Ctb903d/KlaI0jw93et1FiB2E8+n8= X-MC-Unique: QOmdSMj9MRGnkoL5bA0uGg-1 X-Mimecast-MFC-AGG-ID: QOmdSMj9MRGnkoL5bA0uGg_1742995244 From: Cindy Lu To: lulu@redhat.com, mst@redhat.com, jasowang@redhat.com, qemu-devel@nongnu.org Subject: [PATCH v5 2/4] virtio_net: Add the check for vdpa's mac address Date: Wed, 26 Mar 2025 21:19:31 +0800 Message-ID: <20250326132021.1215568-3-lulu@redhat.com> In-Reply-To: <20250326132021.1215568-1-lulu@redhat.com> References: <20250326132021.1215568-1-lulu@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=lulu@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1742995319672019000 Content-Type: text/plain; charset="utf-8" When using a VDPA device, it is important to ensure that the MAC address is correctly set. The MAC address in the hardware should match the MAC address from the QEMU command line. This is a recommended configuration and will allow the system to boot. Signed-off-by: Cindy Lu Tested-by: Lei Yang --- hw/net/virtio-net.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index de87cfadff..a3b431e000 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -3749,12 +3749,43 @@ static bool failover_hide_primary_device(DeviceList= ener *listener, /* failover_primary_hidden is set during feature negotiation */ return qatomic_read(&n->failover_primary_hidden); } +static bool virtio_net_check_vdpa_mac(NetClientState *nc, VirtIONet *n, + MACAddr *cmdline_mac, Error **errp) +{ + struct virtio_net_config hwcfg =3D {}; + static const MACAddr zero =3D { .a =3D { 0, 0, 0, 0, 0, 0 } }; + + vhost_net_get_config(get_vhost_net(nc->peer), (uint8_t *)&hwcfg, ETH_A= LEN); + + /*For VDPA device following situations are acceptable:*/ + + if (memcmp(&hwcfg.mac, &zero, sizeof(MACAddr)) !=3D 0) { + /* + * 1.The hardware MAC address is the same as the QEMU command line= MAC + * address, and both of them are not 0. + */ + if ((memcmp(&hwcfg.mac, cmdline_mac, sizeof(MACAddr)) =3D=3D 0)) { + return true; + } + } =20 + error_setg(errp, + "vDPA device's mac %02x:%02x:%02x:%02x:%02x:%02x" + "not same with the cmdline's mac %02x:%02x:%02x:%02x:%02x:%= 02x," + "Please check.", + hwcfg.mac[0], hwcfg.mac[1], hwcfg.mac[2], hwcfg.mac[3], + hwcfg.mac[4], hwcfg.mac[5], cmdline_mac->a[0], cmdline_mac-= >a[1], + cmdline_mac->a[2], cmdline_mac->a[3], cmdline_mac->a[4], + cmdline_mac->a[5]); + + return false; +} static void virtio_net_device_realize(DeviceState *dev, Error **errp) { VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); VirtIONet *n =3D VIRTIO_NET(dev); NetClientState *nc; + MACAddr macaddr_cmdline; int i; =20 if (n->net_conf.mtu) { @@ -3862,6 +3893,7 @@ static void virtio_net_device_realize(DeviceState *de= v, Error **errp) virtio_net_add_queue(n, 0); =20 n->ctrl_vq =3D virtio_add_queue(vdev, 64, virtio_net_handle_ctrl); + memcpy(&macaddr_cmdline, &n->nic_conf.macaddr, sizeof(n->mac)); qemu_macaddr_default_if_unset(&n->nic_conf.macaddr); memcpy(&n->mac[0], &n->nic_conf.macaddr, sizeof(n->mac)); n->status =3D VIRTIO_NET_S_LINK_UP; @@ -3908,7 +3940,13 @@ static void virtio_net_device_realize(DeviceState *d= ev, Error **errp) nc =3D qemu_get_queue(n->nic); nc->rxfilter_notify_enabled =3D 1; =20 - if (nc->peer && nc->peer->info->type =3D=3D NET_CLIENT_DRIVER_VHOST_VDP= A) { + if (nc->peer && (nc->peer->info->type =3D=3D NET_CLIENT_DRIVER_VHOST_V= DPA)) { + if (nc->peer->check_mac) { + if (!virtio_net_check_vdpa_mac(nc, n, &macaddr_cmdline, errp))= { + virtio_cleanup(vdev); + return; + } + } struct virtio_net_config netcfg =3D {}; memcpy(&netcfg.mac, &n->nic_conf.macaddr, ETH_ALEN); vhost_net_set_config(get_vhost_net(nc->peer), --=20 2.45.0 From nobody Wed Apr 2 13:32:03 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1742995291; cv=none; d=zohomail.com; s=zohoarc; b=Cex451JAlzVNzXniQ14GV6MgmbuT9frVNfXXtvj6GavA77LXQRd5JHiIptQpTI9rL7vECVMRsG2gqw5yrY20+Q/pJsgFCraRJYpW09yt0+xeEKhaltEtEJowAUgmz1pP6nOiDNaaFr3dcVNBteW5K5S0Sc8/XcNLjaE8trKCxBU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742995291; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=+dC+AiPaMgFsw+tPI4Vesk91t1xTDFBFSya1ekpSSiU=; b=khoPDiJOBJnmmq0NaGhX5GcQNza9xzK/Jux/SW+tz0UgR5lAlx25AYI0crVFlGhC362FftNkSCwrc4ERFUiqpN01F38UPd7VLdy+szM8QYz9RigO3sycx8+MHoDNg3qhcMhFmJigr5OOEmKdfIunKk58ztKQwFolAqfrZdKr8Qw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1742995291930901.2823294806963; Wed, 26 Mar 2025 06:21:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1txQgg-0008Sx-2m; Wed, 26 Mar 2025 09:20:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1txQge-0008SI-BG for qemu-devel@nongnu.org; Wed, 26 Mar 2025 09:20:52 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1txQgc-00070V-Gd for qemu-devel@nongnu.org; Wed, 26 Mar 2025 09:20:51 -0400 Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-671-H8Gp0-LdO9SE3Xj8zPP3VQ-1; Wed, 26 Mar 2025 09:20:48 -0400 Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 08F6F196DF03 for ; Wed, 26 Mar 2025 13:20:47 +0000 (UTC) Received: from server.redhat.com (unknown [10.72.112.11]) by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 5BD7A1955BC1; Wed, 26 Mar 2025 13:20:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742995249; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+dC+AiPaMgFsw+tPI4Vesk91t1xTDFBFSya1ekpSSiU=; b=FCP4qXpoADrETMwNTxN8occP5c4q/OxdEWSSCEigAgsuAQ5BzB2m8IsqmiRWl3MGzK8M4I 1grIzNl1j/15968k9iUVQcY1yy+aBlim3fRD6Q5hcXSWNrOpQ/pmIPRmie45InHFY4J4Ie jgZ+LjSYzPJGluv/11b4dCq0qp3R0yM= X-MC-Unique: H8Gp0-LdO9SE3Xj8zPP3VQ-1 X-Mimecast-MFC-AGG-ID: H8Gp0-LdO9SE3Xj8zPP3VQ_1742995247 From: Cindy Lu To: lulu@redhat.com, mst@redhat.com, jasowang@redhat.com, qemu-devel@nongnu.org Subject: [PATCH v5 3/4] virtio_net: Add second acceptable configuration for MAC setup Date: Wed, 26 Mar 2025 21:19:32 +0800 Message-ID: <20250326132021.1215568-4-lulu@redhat.com> In-Reply-To: <20250326132021.1215568-1-lulu@redhat.com> References: <20250326132021.1215568-1-lulu@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=lulu@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1742995294631019100 Content-Type: text/plain; charset="utf-8" For VDPA devices, Allow configurations where the hardware MAC address is non-zero while the MAC address in the QEMU command line is zero. Signed-off-by: Cindy Lu --- hw/net/virtio-net.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index a3b431e000..1fd0403d5d 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -3767,6 +3767,20 @@ static bool virtio_net_check_vdpa_mac(NetClientState= *nc, VirtIONet *n, if ((memcmp(&hwcfg.mac, cmdline_mac, sizeof(MACAddr)) =3D=3D 0)) { return true; } + /* + * 2.The hardware MAC address is NOT 0, + * and the MAC address in the QEMU command line is 0. + * In this situation, Here we use the hardware MAC address overwr= ite + * the QEMU command line address(is 0) in VirtIONet->mac[0]. + * in the follwoing process, QEMU will use this mac in VirtIONet = and + * finish the bring up + */ + if (memcmp(cmdline_mac, &zero, sizeof(MACAddr)) =3D=3D 0) { + /* overwrite the mac address with hardware address*/ + memcpy(&n->mac[0], &hwcfg.mac, sizeof(n->mac)); + memcpy(&n->nic_conf.macaddr, &hwcfg.mac, sizeof(n->mac)); + return true; + } } =20 error_setg(errp, --=20 2.45.0 From nobody Wed Apr 2 13:32:03 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1742995353; cv=none; d=zohomail.com; s=zohoarc; b=E/GE4OKx+zsW1BqqRE+P1bNNpoVSiPgAR6/NUjtVPdm3SIdGeN1jnXW1kEt6/HFuaY4AAVHzSeszP1zCH/S8LAYmbR5N+aI10wrS7zjiri5vvlO8O/VvP+zlMktGVDqundPkAqVykWO+N2xdAlBfs2z6h2srUKWFFasu6HRPP+I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742995353; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=U89MM7M/56L3tH8cXinYMHM+hVk7yAP1ONUFxWtbKg8=; b=hJDUsT9M76z/XxAJp/I+C4UBgtUFsp/tRUItkUiZYN1UM0VgJVPU51XBP5i0o0IK6yERPcyr1q/2W45MqfU7tMV3mzzFonFMU8UxE2UjZ93iNYfeZE3zOqJ+7hPqoImuNM6pXWGJ+wOxHqn17+te8L3X85yPD5k8TKhaegGIjmE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1742995353580847.6433684681431; Wed, 26 Mar 2025 06:22:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1txQh8-00007z-6C; Wed, 26 Mar 2025 09:21:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1txQh6-00007c-LH for qemu-devel@nongnu.org; Wed, 26 Mar 2025 09:21:20 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1txQh5-00074f-26 for qemu-devel@nongnu.org; Wed, 26 Mar 2025 09:21:20 -0400 Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-271-sczHHhRFOK6mRuVaOeV2lA-1; Wed, 26 Mar 2025 09:21:14 -0400 Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3783A196B344 for ; Wed, 26 Mar 2025 13:21:13 +0000 (UTC) Received: from server.redhat.com (unknown [10.72.112.11]) by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 16DB51956095; Wed, 26 Mar 2025 13:21:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742995276; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=U89MM7M/56L3tH8cXinYMHM+hVk7yAP1ONUFxWtbKg8=; b=CFHpp1Mt/aUlTa3q8OggqeJPuKWPPFAUVP3HqCHy0QEiNRmT6farxJML3fYjvhkzuXAtHp J1HV9kqMEld0N4SnCS/wTu1fMQO+gswUpJdzmJhZZXmUK2i+OP1qII/UDdQbS5wS04VvMI C/G9oBxES/XAH9Z77Imuk+YrtpBHO4o= X-MC-Unique: sczHHhRFOK6mRuVaOeV2lA-1 X-Mimecast-MFC-AGG-ID: sczHHhRFOK6mRuVaOeV2lA_1742995274 From: Cindy Lu To: lulu@redhat.com, mst@redhat.com, jasowang@redhat.com, qemu-devel@nongnu.org Subject: [PATCH v5 4/4] virtio_net: Add third acceptable configuration for MAC setup. Date: Wed, 26 Mar 2025 21:19:33 +0800 Message-ID: <20250326132021.1215568-5-lulu@redhat.com> In-Reply-To: <20250326132021.1215568-1-lulu@redhat.com> References: <20250326132021.1215568-1-lulu@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=lulu@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1742995354472019000 Content-Type: text/plain; charset="utf-8" For VDPA devices, Allow configurations where both the hardware MAC address and QEMU command line MAC address are zero. Signed-off-by: Cindy Lu --- hw/net/virtio-net.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 1fd0403d5d..d1f44850d5 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -3782,6 +3782,19 @@ static bool virtio_net_check_vdpa_mac(NetClientState= *nc, VirtIONet *n, return true; } } + /* + * 3.The hardware MAC address is 0, + * and the MAC address in the QEMU command line is also 0. + * In this situation, qemu will generate a random mac address + * QEMU will try to use CVQ/set_config to set this address to + * device + */ + if ((memcmp(&hwcfg.mac, &zero, sizeof(MACAddr)) =3D=3D 0) && + (memcmp(cmdline_mac, &zero, sizeof(MACAddr)) =3D=3D 0)) { + memcpy(&n->mac[0], &n->nic_conf.macaddr, sizeof(n->mac)); + + return true; + } =20 error_setg(errp, "vDPA device's mac %02x:%02x:%02x:%02x:%02x:%02x" --=20 2.45.0