From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2F3B2A052B; Tue, 28 Jul 2020 09:45:15 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A4B241150; Tue, 28 Jul 2020 09:45:12 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 73C921023; Tue, 28 Jul 2020 09:45:09 +0200 (CEST) IronPort-SDR: dUb7hOdRsUM7fkaiAGlKM/mTKqaaFhmyYW4+llvpc6LAbqQZav8B5laS1Fq3/QLKskvRvFqIdJ wrnDLpZbKbkw== X-IronPort-AV: E=McAfee;i="6000,8403,9695"; a="138682626" X-IronPort-AV: E=Sophos;i="5.75,405,1589266800"; d="scan'208";a="138682626" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jul 2020 00:45:07 -0700 IronPort-SDR: TF2wRX9qVKN6JU3FOuU5hKSoYyU6RhGrYjJXlLl5Na4ZTZvvqN6yins1lAenywKsfqGpynULrg U6bWW6rJiafg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,405,1589266800"; d="scan'208";a="464364864" Received: from orsmsx103.amr.corp.intel.com ([10.22.225.130]) by orsmga005.jf.intel.com with ESMTP; 28 Jul 2020 00:45:07 -0700 Received: from orsmsx151.amr.corp.intel.com (10.22.226.38) by ORSMSX103.amr.corp.intel.com (10.22.225.130) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 28 Jul 2020 00:45:07 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by ORSMSX151.amr.corp.intel.com (10.22.226.38) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 28 Jul 2020 00:45:07 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 28 Jul 2020 00:45:06 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lPotfEHIwuFy5P+nWUnaBKMaYXs16KKVWrgoG/d468btljpuhL/6CnktPWHv3d/1TH2wbOY6lER7zVXeC1vdazkhqoiY74TV+o/2v/lmXln3ern+3h10oyX03z1nowbAPhIQ7V0L5ZQ0hrvjfFLOcHIXKhFnaFV4Nn+UXvkxH7M+Vcia70cdmkT/y1Ut4LAiAScrsH8TJva2WC/1hHV0MvXzXVr9qjZWDdIp9UL9cJQ+Z/xhHfIa1jJPTwKesvZQR3lmI2YmoZBh1FLZCvxCm0HBewMhqEj/mCNQ/joxjHX087LD5188HdX40HqvQQmlX0kfYTk2ypt1NMGQMQ77vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0pZPiyqpatPkxj3M/bCR5a7Tt+yVrcli/9utj0582Wc=; b=fGw9eXHKlKNLXzobPEnmB/RwIqH4qoObOzI9XIq+ESNP7h17u7iTuqdwWV6fUKxCCKy0uTWL7t1Vh7cU5mpAWqmVVxri5+TiIcalrqZXF6Ufr1dP3lbYnccAC3LRCIS39vyInzk1B5pl4uDushHWxEPFAU5nkITMwMXLPRKKlAP3rffRug3ZlETGtBNmJFDfP/p1lSBytRFKkimWufOwrxd7XvozJR98pBfpX5zgsZbaMj1i1ONmSoimG8nWREkGoNoFQFjAdDZZwOsi4JUYIukvUapgHv38qlEm0glYIRhupZhYkDNHE9kWzASziYfT+6Fpo/G8CmSpIJPpS7Zvow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0pZPiyqpatPkxj3M/bCR5a7Tt+yVrcli/9utj0582Wc=; b=ie0lLvj21Fz0OHsHdiYfokY9ZWu6P2xPRqicb/Rs01qB1T1LwjqLHvP55pLdbO768zXEbA35h8ul7Y+8bsV1VSqmD/LZ+6ucI9F/BXNtn58zwsBu1nmw4iLQQKCywuitiD8nPDFE+Zt8z0MBdTyHaOXrh4eX1+efUYsneqm9kWs= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB4062.namprd11.prod.outlook.com (2603:10b6:208:150::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.25; Tue, 28 Jul 2020 07:45:05 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::b898:36f5:61cb:42ca]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::b898:36f5:61cb:42ca%7]) with mapi id 15.20.3216.033; Tue, 28 Jul 2020 07:45:05 +0000 From: "Xia, Chenbo" To: "Wang, Xiao W" , "maxime.coquelin@redhat.com" CC: "dev@dpdk.org" , "Wang, Zhihong" , "stable@dpdk.org" Thread-Topic: [PATCH] net/virtio-user: fix virtio net status management Thread-Index: AQHWZKynkLDy7gLaMkC5ki1isJ2aPqkcnErQ Date: Tue, 28 Jul 2020 07:45:05 +0000 Message-ID: References: <20200728065212.16703-1-xiao.w.wang@intel.com> In-Reply-To: <20200728065212.16703-1-xiao.w.wang@intel.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.45] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a285b1e1-8148-461c-85d5-08d832ca24c4 x-ms-traffictypediagnostic: MN2PR11MB4062: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3383; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gI+wLmI6qdp8cRnY8TOGtblOubgy/AhPvtFsWYfYhN7o0xYmUBFLAG2OkZaZiV5Ly+dyWP5rDVQDZNx9a6rHTbgngjw2Lggh6tXRgtiXgFy6VhcDaPwhGv/CKLlIE2B8bslM1qQByDBcjcyig9w0FVDXNtf1ztSU9CXMitZZ++SNFfEiw6eEvQjwl/n3RPtLFZ3gN/OpMbKEtYHazwkdoMx1yAsQBwnrEUrlJCtuevju75xJNDY9arEJr0muMCxxiwKB1S0kAN1oURzGxAx+vIbTFBA41MQiumJmxwx7K4YSEbN2cLIdw5Ysf9iY8QwF3llcWM+z+mW2/uhPqUId7g== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(39860400002)(136003)(376002)(346002)(396003)(83380400001)(478600001)(5660300002)(52536014)(64756008)(66556008)(66476007)(76116006)(71200400001)(66446008)(66946007)(8936002)(4326008)(7696005)(53546011)(86362001)(33656002)(2906002)(316002)(110136005)(54906003)(55016002)(9686003)(186003)(8676002)(26005)(6506007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: fbtGXkp3WIvP4htvCErssxP7P4DdLYfGvncNarCQqgwWtYbnPMWN3SMuRMjbT8ZhTEO54+SfE5eYAM7WalGXCRvIG6vSUZFVsQY13GAn0zMR8DwZrD4WthlAGi4vF66TQfxEVVKlgWzgYpp7AcH/OG2REz8l6zESi3e55C9etKB6PqVnsq3oeLApXCjZn3xoqDsrh3yp/KSK1kQcIL+Oer6RE4K0VIcnO1oNsrf92QCa9jaJrY795iG9HGwac4BFgweVAaZSZiuTbfUdQGiDl4Yeu0qWh5NVkTkWdWq1FtgUfQm9Qk7NnL2H7LdXbEWZXuosHWLLMhCdkkzq19DX1dgBfwBtFjByuINYfezB6WWlvMQ/9vN1/jDLvkjjkuf9xvIQkHFGz2GGPkwJFRWmzRG2IXOAJhuKhOjgsJ6SPSQcHm2COPyhRP9HGDHe5k0jzTnP3CdsVYniWCNG2Hx9S79rwzWTKRBWscvgi9+Wz+GjSZstlgsWRAcTk648SewK Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a285b1e1-8148-461c-85d5-08d832ca24c4 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jul 2020 07:45:05.2428 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: H7BlXnsctJreJt9qf9PevVG4jPjMLIvTrkQWPcUID7/PinZaio3Qo+ar+JnIfIddvF8xlOfBv22Ym+BRNPVgVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4062 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] net/virtio-user: fix virtio net status management X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Wang, Xiao W > Sent: Tuesday, July 28, 2020 2:52 PM > To: maxime.coquelin@redhat.com > Cc: dev@dpdk.org; Wang, Zhihong ; Xia, Chenbo > ; Wang, Xiao W ; > stable@dpdk.org > Subject: [PATCH] net/virtio-user: fix virtio net status management >=20 > Apart from the virtio status, there should be also a network related stat= us for > link status management, current implementation mixes up these two statuse= s. >=20 > One issue caused by this mixup is when virtio-user running in server mode= and > vhost as a client connects to it, a RARP packet will be generated by virt= io-user > due to VIRTIO_NET_S_ANNOUNCE bit is detected in the "status" > in interrupt handler. >=20 > VIRTIO_NET_S_LINK_UP and VIRTIO_NET_S_ANNOUNCE should be managed by > a separated field. This patch adds a "net_status" field for this purpose. >=20 > Fixes: e9efa4d93821 ("net/virtio-user: add new virtual PCI driver") > Cc: stable@dpdk.org >=20 > Signed-off-by: Xiao Wang > --- > drivers/net/virtio/virtio_user/virtio_user_dev.h | 1 + > drivers/net/virtio/virtio_user_ethdev.c | 10 +++++----- > 2 files changed, 6 insertions(+), 5 deletions(-) >=20 > diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.h > b/drivers/net/virtio/virtio_user/virtio_user_dev.h > index 56e638f8a..554174e81 100644 > --- a/drivers/net/virtio/virtio_user/virtio_user_dev.h > +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.h > @@ -44,6 +44,7 @@ struct virtio_user_dev { > * (Vhost-user only) > */ > uint8_t status; > + uint16_t net_status; > uint16_t port_id; > uint8_t mac_addr[RTE_ETHER_ADDR_LEN]; > char path[PATH_MAX]; > diff --git a/drivers/net/virtio/virtio_user_ethdev.c > b/drivers/net/virtio/virtio_user_ethdev.c > index e51425c4f..6003f6d50 100644 > --- a/drivers/net/virtio/virtio_user_ethdev.c > +++ b/drivers/net/virtio/virtio_user_ethdev.c > @@ -205,7 +205,7 @@ virtio_user_read_dev_config(struct virtio_hw *hw, > size_t offset, > } > r =3D recv(dev->vhostfd, buf, 128, MSG_PEEK); > if (r =3D=3D 0 || (r < 0 && errno !=3D EAGAIN)) { > - dev->status &=3D (~VIRTIO_NET_S_LINK_UP); > + dev->net_status &=3D (~VIRTIO_NET_S_LINK_UP); > PMD_DRV_LOG(ERR, "virtio-user port %u is > down", > hw->port_id); >=20 > @@ -217,7 +217,7 @@ virtio_user_read_dev_config(struct virtio_hw *hw, > size_t offset, > virtio_user_delayed_handler, > (void *)hw); > } else { > - dev->status |=3D VIRTIO_NET_S_LINK_UP; > + dev->net_status |=3D VIRTIO_NET_S_LINK_UP; > } > if (fcntl(dev->vhostfd, F_SETFL, > flags & ~O_NONBLOCK) =3D=3D -1) { > @@ -225,12 +225,12 @@ virtio_user_read_dev_config(struct virtio_hw *hw, > size_t offset, > return; > } > } else if (dev->is_server) { > - dev->status &=3D (~VIRTIO_NET_S_LINK_UP); > + dev->net_status &=3D (~VIRTIO_NET_S_LINK_UP); > if (virtio_user_server_reconnect(dev) >=3D 0) > - dev->status |=3D VIRTIO_NET_S_LINK_UP; > + dev->net_status |=3D VIRTIO_NET_S_LINK_UP; > } >=20 > - *(uint16_t *)dst =3D dev->status; > + *(uint16_t *)dst =3D dev->net_status; > } >=20 > if (offset =3D=3D offsetof(struct virtio_net_config, max_virtqueue_pair= s)) > -- > 2.15.1 Reviewed-by: Chenbo Xia