From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: virtio-dev-return-4293-cohuck=redhat.com@lists.oasis-open.org Sender: List-Post: List-Help: List-Unsubscribe: List-Subscribe: Received: from lists.oasis-open.org (oasis-open.org [66.179.20.138]) by lists.oasis-open.org (Postfix) with ESMTP id 09B8758180F8 for ; Wed, 6 Jun 2018 11:53:26 -0700 (PDT) Date: Wed, 6 Jun 2018 21:53:14 +0300 From: "Michael S. Tsirkin" Message-ID: <20180606214728-mutt-send-email-mst@kernel.org> References: <1525734594-11134-1-git-send-email-sridhar.samudrala@intel.com> <8e411566-1146-03a2-5372-8f8134ee0ce6@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <8e411566-1146-03a2-5372-8f8134ee0ce6@intel.com> Subject: [virtio-dev] Re: [PATCH] qemu: Introduce VIRTIO_NET_F_STANDBY feature bit to virtio_net To: "Samudrala, Sridhar" Cc: Jason Wang , virtualization@lists.linux-foundation.org, virtio-dev@lists.oasis-open.org, jesse.brandeburg@intel.com, alexander.h.duyck@intel.com, qemu-devel@nongnu.org, laine@redhat.com, libvir-list@redhat.com List-ID: On Wed, Jun 06, 2018 at 11:17:36AM -0700, Samudrala, Sridhar wrote: > On 6/4/2018 7:06 PM, Jason Wang wrote: > > > > > > On 2018年06月05日 09:41, Samudrala, Sridhar wrote: > > > Ping on this patch now that the kernel patches are accepted into > > > davem's net-next tree. > > > https://patchwork.ozlabs.org/cover/920005/ > > > > > > > > > On 5/7/2018 4:09 PM, Sridhar Samudrala wrote: > > > > This feature bit can be used by hypervisor to indicate > > > > virtio_net device to > > > > act as a standby for another device with the same MAC address. > > > > > > > > I tested this with a small change to the patch to mark the > > > > STANDBY feature 'true' > > > > by default as i am using libvirt to start the VMs. > > > > Is there a way to pass the newly added feature bit 'standby' to > > > > qemu via libvirt > > > > XML file? > > > > > > > > Maybe you can try qemu command line passthrough: > > > > https://libvirt.org/drvqemu.html#qemucommand > > It looks like this can be used to pass command line arguments to qemu. > Is it possible to specify a virtio specific attribute via this method? > > For ex: to say mrg_rxbuf is off we can add the following line to virtio > section of the domain xml file. > > > I think libvirt needs to be extended to to support the new 'standby' attribute > via this mechanism. > Adding Liane Stump and libvirt to the CC list. > > Michael, > Can we start with getting this patch into Qemu and an update to libvirt to > support the 'standby' feature so that this feature can be enabled via > some scripts/orchestration layer for now. Unfortunately we don't give the hypothetical orchestration layer enough info about driver being bound, so it does not know when is it safe to add a primary. And a similar issue around reset. We could add events for that which would be a small patch, but the issue then is that guest can trigger a storm of these events. > We could improve this solution by enhancing Qemu to do automatic management of the > addition/deletion of the primary device based on feature negotiation as a later patch. I'm not sure what the point of the back and forth would be though. Typically after people invest in a specific config and get it working, it's very hard to move them to another solution. > > > > > The patch looks good to me. Let's see if Michael have any comment. > > > > Thanks > > > > > > Signed-off-by: Sridhar Samudrala > > > > --- > > > >   hw/net/virtio-net.c                         | 2 ++ > > > >   include/standard-headers/linux/virtio_net.h | 3 +++ > > > >   2 files changed, 5 insertions(+) > > > > > > > > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > > > > index 90502fca7c..38b3140670 100644 > > > > --- a/hw/net/virtio-net.c > > > > +++ b/hw/net/virtio-net.c > > > > @@ -2198,6 +2198,8 @@ static Property virtio_net_properties[] = { > > > >                        true), > > > >       DEFINE_PROP_INT32("speed", VirtIONet, net_conf.speed, > > > > SPEED_UNKNOWN), > > > >       DEFINE_PROP_STRING("duplex", VirtIONet, net_conf.duplex_str), > > > > +    DEFINE_PROP_BIT64("standby", VirtIONet, host_features, > > > > VIRTIO_NET_F_STANDBY, > > > > +                      false), > > > >       DEFINE_PROP_END_OF_LIST(), > > > >   }; > > > >   diff --git a/include/standard-headers/linux/virtio_net.h > > > > b/include/standard-headers/linux/virtio_net.h > > > > index e9f255ea3f..01ec09684c 100644 > > > > --- a/include/standard-headers/linux/virtio_net.h > > > > +++ b/include/standard-headers/linux/virtio_net.h > > > > @@ -57,6 +57,9 @@ > > > >                        * Steering */ > > > >   #define VIRTIO_NET_F_CTRL_MAC_ADDR 23    /* Set MAC address */ > > > >   +#define VIRTIO_NET_F_STANDBY      62    /* Act as standby for > > > > another device > > > > +                                         * with the same MAC. > > > > +                                         */ > > > >   #define VIRTIO_NET_F_SPEED_DUPLEX 63    /* Device set > > > > linkspeed and duplex */ > > > >     #ifndef VIRTIO_NET_NO_LEGACY > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH] qemu: Introduce VIRTIO_NET_F_STANDBY feature bit to virtio_net Date: Wed, 6 Jun 2018 21:53:14 +0300 Message-ID: <20180606214728-mutt-send-email-mst@kernel.org> References: <1525734594-11134-1-git-send-email-sridhar.samudrala@intel.com> <8e411566-1146-03a2-5372-8f8134ee0ce6@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <8e411566-1146-03a2-5372-8f8134ee0ce6@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: "Samudrala, Sridhar" Cc: alexander.h.duyck@intel.com, virtio-dev@lists.oasis-open.org, libvir-list@redhat.com, qemu-devel@nongnu.org, laine@redhat.com, virtualization@lists.linux-foundation.org List-Id: virtualization@lists.linuxfoundation.org T24gV2VkLCBKdW4gMDYsIDIwMTggYXQgMTE6MTc6MzZBTSAtMDcwMCwgU2FtdWRyYWxhLCBTcmlk aGFyIHdyb3RlOgo+IE9uIDYvNC8yMDE4IDc6MDYgUE0sIEphc29uIFdhbmcgd3JvdGU6Cj4gPiAK PiA+IAo+ID4gT24gMjAxOOW5tDA25pyIMDXml6UgMDk6NDEsIFNhbXVkcmFsYSwgU3JpZGhhciB3 cm90ZToKPiA+ID4gUGluZyBvbiB0aGlzIHBhdGNoIG5vdyB0aGF0IHRoZSBrZXJuZWwgcGF0Y2hl cyBhcmUgYWNjZXB0ZWQgaW50bwo+ID4gPiBkYXZlbSdzIG5ldC1uZXh0IHRyZWUuCj4gPiA+IGh0 dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvY292ZXIvOTIwMDA1Lwo+ID4gPiAKPiA+ID4gCj4g PiA+IE9uIDUvNy8yMDE4IDQ6MDkgUE0sIFNyaWRoYXIgU2FtdWRyYWxhIHdyb3RlOgo+ID4gPiA+ IFRoaXMgZmVhdHVyZSBiaXQgY2FuIGJlIHVzZWQgYnkgaHlwZXJ2aXNvciB0byBpbmRpY2F0ZQo+ ID4gPiA+IHZpcnRpb19uZXQgZGV2aWNlIHRvCj4gPiA+ID4gYWN0IGFzIGEgc3RhbmRieSBmb3Ig YW5vdGhlciBkZXZpY2Ugd2l0aCB0aGUgc2FtZSBNQUMgYWRkcmVzcy4KPiA+ID4gPiAKPiA+ID4g PiBJIHRlc3RlZCB0aGlzIHdpdGggYSBzbWFsbCBjaGFuZ2UgdG8gdGhlIHBhdGNoIHRvIG1hcmsg dGhlCj4gPiA+ID4gU1RBTkRCWSBmZWF0dXJlICd0cnVlJwo+ID4gPiA+IGJ5IGRlZmF1bHQgYXMg aSBhbSB1c2luZyBsaWJ2aXJ0IHRvIHN0YXJ0IHRoZSBWTXMuCj4gPiA+ID4gSXMgdGhlcmUgYSB3 YXkgdG8gcGFzcyB0aGUgbmV3bHkgYWRkZWQgZmVhdHVyZSBiaXQgJ3N0YW5kYnknIHRvCj4gPiA+ ID4gcWVtdSB2aWEgbGlidmlydAo+ID4gPiA+IFhNTCBmaWxlPwo+ID4gPiA+IAo+ID4gCj4gPiBN YXliZSB5b3UgY2FuIHRyeSBxZW11IGNvbW1hbmQgbGluZSBwYXNzdGhyb3VnaDoKPiA+IAo+ID4g aHR0cHM6Ly9saWJ2aXJ0Lm9yZy9kcnZxZW11Lmh0bWwjcWVtdWNvbW1hbmQKPiAKPiBJdCBsb29r cyBsaWtlIHRoaXMgY2FuIGJlIHVzZWQgdG8gcGFzcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRv IHFlbXUuCj4gSXMgaXQgcG9zc2libGUgdG8gc3BlY2lmeSBhIHZpcnRpbyBzcGVjaWZpYyBhdHRy aWJ1dGUgdmlhIHRoaXMgbWV0aG9kPwo+IAo+IEZvciBleDogdG8gc2F5IG1yZ19yeGJ1ZiBpcyBv ZmYgd2UgY2FuIGFkZCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gdmlydGlvCj4gc2VjdGlvbiBvZiB0 aGUgZG9tYWluIHhtbCBmaWxlLgo+ICAgPGhvc3QgbXJnX3J4YnVmPSdvZmYnLz4KPiAKPiBJIHRo aW5rIGxpYnZpcnQgbmVlZHMgdG8gYmUgZXh0ZW5kZWQgdG8gdG8gc3VwcG9ydCB0aGUgbmV3ICdz dGFuZGJ5JyBhdHRyaWJ1dGUKPiB2aWEgdGhpcyBtZWNoYW5pc20uCj4gQWRkaW5nIExpYW5lIFN0 dW1wIGFuZCBsaWJ2aXJ0IHRvIHRoZSBDQyBsaXN0Lgo+IAo+IE1pY2hhZWwsCj4gQ2FuIHdlIHN0 YXJ0IHdpdGggZ2V0dGluZyB0aGlzIHBhdGNoIGludG8gUWVtdSBhbmQgYW4gdXBkYXRlIHRvIGxp YnZpcnQgdG8KPiBzdXBwb3J0IHRoZSAnc3RhbmRieScgZmVhdHVyZSBzbyB0aGF0IHRoaXMgZmVh dHVyZSBjYW4gYmUgZW5hYmxlZCB2aWEKPiBzb21lIHNjcmlwdHMvb3JjaGVzdHJhdGlvbiBsYXll ciBmb3Igbm93LgoKVW5mb3J0dW5hdGVseSB3ZSBkb24ndCBnaXZlIHRoZSBoeXBvdGhldGljYWwg b3JjaGVzdHJhdGlvbiBsYXllcgplbm91Z2ggaW5mbyBhYm91dCBkcml2ZXIgYmVpbmcgYm91bmQs IHNvIGl0IGRvZXMgbm90IGtub3cKd2hlbiBpcyBpdCBzYWZlIHRvIGFkZCBhIHByaW1hcnkuICBB bmQgYSBzaW1pbGFyIGlzc3VlIGFyb3VuZCByZXNldC4KCldlIGNvdWxkIGFkZCBldmVudHMgZm9y IHRoYXQgd2hpY2ggd291bGQgYmUgYSBzbWFsbCBwYXRjaCwKYnV0IHRoZSBpc3N1ZSB0aGVuIGlz IHRoYXQgZ3Vlc3QgY2FuIHRyaWdnZXIgYSBzdG9ybSBvZgp0aGVzZSBldmVudHMuCgo+IFdlIGNv dWxkIGltcHJvdmUgdGhpcyBzb2x1dGlvbiBieSBlbmhhbmNpbmcgUWVtdSB0byBkbyBhdXRvbWF0 aWMgbWFuYWdlbWVudCBvZiB0aGUKPiBhZGRpdGlvbi9kZWxldGlvbiBvZiB0aGUgcHJpbWFyeSBk ZXZpY2UgYmFzZWQgb24gZmVhdHVyZSBuZWdvdGlhdGlvbiBhcyBhIGxhdGVyIHBhdGNoLgoKSSdt IG5vdCBzdXJlIHdoYXQgdGhlIHBvaW50IG9mIHRoZSBiYWNrIGFuZCBmb3J0aCB3b3VsZCBiZSB0 aG91Z2guClR5cGljYWxseSBhZnRlciBwZW9wbGUgaW52ZXN0IGluIGEgc3BlY2lmaWMgY29uZmln IGFuZCBnZXQgaXQgd29ya2luZywKaXQncyB2ZXJ5IGhhcmQgdG8gbW92ZSB0aGVtIHRvIGFub3Ro ZXIgc29sdXRpb24uCgo+IAo+ID4gCj4gPiBUaGUgcGF0Y2ggbG9va3MgZ29vZCB0byBtZS4gTGV0 J3Mgc2VlIGlmIE1pY2hhZWwgaGF2ZSBhbnkgY29tbWVudC4KPiA+IAo+ID4gVGhhbmtzCj4gPiAK PiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBTcmlkaGFyIFNhbXVkcmFsYSA8c3JpZGhhci5zYW11ZHJh bGFAaW50ZWwuY29tPgo+ID4gPiA+IC0tLQo+ID4gPiA+IMKgIGh3L25ldC92aXJ0aW8tbmV0LmPC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAyICsrCj4g PiA+ID4gwqAgaW5jbHVkZS9zdGFuZGFyZC1oZWFkZXJzL2xpbnV4L3ZpcnRpb19uZXQuaCB8IDMg KysrCj4gPiA+ID4gwqAgMiBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKPiA+ID4gPiAK PiA+ID4gPiBkaWZmIC0tZ2l0IGEvaHcvbmV0L3ZpcnRpby1uZXQuYyBiL2h3L25ldC92aXJ0aW8t bmV0LmMKPiA+ID4gPiBpbmRleCA5MDUwMmZjYTdjLi4zOGIzMTQwNjcwIDEwMDY0NAo+ID4gPiA+ IC0tLSBhL2h3L25ldC92aXJ0aW8tbmV0LmMKPiA+ID4gPiArKysgYi9ody9uZXQvdmlydGlvLW5l dC5jCj4gPiA+ID4gQEAgLTIxOTgsNiArMjE5OCw4IEBAIHN0YXRpYyBQcm9wZXJ0eSB2aXJ0aW9f bmV0X3Byb3BlcnRpZXNbXSA9IHsKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB0cnVlKSwKPiA+ID4gPiDCoMKgwqDCoMKgIERFRklORV9QUk9QX0lO VDMyKCJzcGVlZCIsIFZpcnRJT05ldCwgbmV0X2NvbmYuc3BlZWQsCj4gPiA+ID4gU1BFRURfVU5L Tk9XTiksCj4gPiA+ID4gwqDCoMKgwqDCoCBERUZJTkVfUFJPUF9TVFJJTkcoImR1cGxleCIsIFZp cnRJT05ldCwgbmV0X2NvbmYuZHVwbGV4X3N0ciksCj4gPiA+ID4gK8KgwqDCoCBERUZJTkVfUFJP UF9CSVQ2NCgic3RhbmRieSIsIFZpcnRJT05ldCwgaG9zdF9mZWF0dXJlcywKPiA+ID4gPiBWSVJU SU9fTkVUX0ZfU1RBTkRCWSwKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGZhbHNlKSwKPiA+ID4gPiDCoMKgwqDCoMKgIERFRklORV9QUk9QX0VORF9P Rl9MSVNUKCksCj4gPiA+ID4gwqAgfTsKPiA+ID4gPiDCoCBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9z dGFuZGFyZC1oZWFkZXJzL2xpbnV4L3ZpcnRpb19uZXQuaAo+ID4gPiA+IGIvaW5jbHVkZS9zdGFu ZGFyZC1oZWFkZXJzL2xpbnV4L3ZpcnRpb19uZXQuaAo+ID4gPiA+IGluZGV4IGU5ZjI1NWVhM2Yu LjAxZWMwOTY4NGMgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvaW5jbHVkZS9zdGFuZGFyZC1oZWFkZXJz L2xpbnV4L3ZpcnRpb19uZXQuaAo+ID4gPiA+ICsrKyBiL2luY2x1ZGUvc3RhbmRhcmQtaGVhZGVy cy9saW51eC92aXJ0aW9fbmV0LmgKPiA+ID4gPiBAQCAtNTcsNiArNTcsOSBAQAo+ID4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogU3RlZXJpbmcgKi8K PiA+ID4gPiDCoCAjZGVmaW5lIFZJUlRJT19ORVRfRl9DVFJMX01BQ19BRERSIDIzwqDCoMKgIC8q IFNldCBNQUMgYWRkcmVzcyAqLwo+ID4gPiA+IMKgICsjZGVmaW5lIFZJUlRJT19ORVRfRl9TVEFO REJZwqDCoMKgwqDCoCA2MsKgwqDCoCAvKiBBY3QgYXMgc3RhbmRieSBmb3IKPiA+ID4gPiBhbm90 aGVyIGRldmljZQo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIHdpdGggdGhlIHNh bWUgTUFDLgo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+ID4gPiA+IMKgICNk ZWZpbmUgVklSVElPX05FVF9GX1NQRUVEX0RVUExFWCA2M8KgwqDCoCAvKiBEZXZpY2Ugc2V0Cj4g PiA+ID4gbGlua3NwZWVkIGFuZCBkdXBsZXggKi8KPiA+ID4gPiDCoCDCoCAjaWZuZGVmIFZJUlRJ T19ORVRfTk9fTEVHQUNZCj4gPiA+IAo+ID4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFsaXph dGlvbkBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRh dGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35178) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fQdYe-0005d8-KJ for qemu-devel@nongnu.org; Wed, 06 Jun 2018 14:53:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fQdYa-0001K4-M8 for qemu-devel@nongnu.org; Wed, 06 Jun 2018 14:53:20 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:60038 helo=mx1.redhat.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fQdYa-0001Jp-GS for qemu-devel@nongnu.org; Wed, 06 Jun 2018 14:53:16 -0400 Date: Wed, 6 Jun 2018 21:53:14 +0300 From: "Michael S. Tsirkin" Message-ID: <20180606214728-mutt-send-email-mst@kernel.org> References: <1525734594-11134-1-git-send-email-sridhar.samudrala@intel.com> <8e411566-1146-03a2-5372-8f8134ee0ce6@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <8e411566-1146-03a2-5372-8f8134ee0ce6@intel.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH] qemu: Introduce VIRTIO_NET_F_STANDBY feature bit to virtio_net List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Samudrala, Sridhar" Cc: Jason Wang , virtualization@lists.linux-foundation.org, virtio-dev@lists.oasis-open.org, jesse.brandeburg@intel.com, alexander.h.duyck@intel.com, qemu-devel@nongnu.org, laine@redhat.com, libvir-list@redhat.com On Wed, Jun 06, 2018 at 11:17:36AM -0700, Samudrala, Sridhar wrote: > On 6/4/2018 7:06 PM, Jason Wang wrote: > >=20 > >=20 > > On 2018=E5=B9=B406=E6=9C=8805=E6=97=A5 09:41, Samudrala, Sridhar wrot= e: > > > Ping on this patch now that the kernel patches are accepted into > > > davem's net-next tree. > > > https://patchwork.ozlabs.org/cover/920005/ > > >=20 > > >=20 > > > On 5/7/2018 4:09 PM, Sridhar Samudrala wrote: > > > > This feature bit can be used by hypervisor to indicate > > > > virtio_net device to > > > > act as a standby for another device with the same MAC address. > > > >=20 > > > > I tested this with a small change to the patch to mark the > > > > STANDBY feature 'true' > > > > by default as i am using libvirt to start the VMs. > > > > Is there a way to pass the newly added feature bit 'standby' to > > > > qemu via libvirt > > > > XML file? > > > >=20 > >=20 > > Maybe you can try qemu command line passthrough: > >=20 > > https://libvirt.org/drvqemu.html#qemucommand >=20 > It looks like this can be used to pass command line arguments to qemu. > Is it possible to specify a virtio specific attribute via this method? >=20 > For ex: to say mrg_rxbuf is off we can add the following line to virtio > section of the domain xml file. > >=20 > I think libvirt needs to be extended to to support the new 'standby' at= tribute > via this mechanism. > Adding Liane Stump and libvirt to the CC list. >=20 > Michael, > Can we start with getting this patch into Qemu and an update to libvirt= to > support the 'standby' feature so that this feature can be enabled via > some scripts/orchestration layer for now. Unfortunately we don't give the hypothetical orchestration layer enough info about driver being bound, so it does not know when is it safe to add a primary. And a similar issue around reset. We could add events for that which would be a small patch, but the issue then is that guest can trigger a storm of these events. > We could improve this solution by enhancing Qemu to do automatic manage= ment of the > addition/deletion of the primary device based on feature negotiation as= a later patch. I'm not sure what the point of the back and forth would be though. Typically after people invest in a specific config and get it working, it's very hard to move them to another solution. >=20 > >=20 > > The patch looks good to me. Let's see if Michael have any comment. > >=20 > > Thanks > >=20 > > > > Signed-off-by: Sridhar Samudrala > > > > --- > > > > =C2=A0 hw/net/virtio-net.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 2 ++ > > > > =C2=A0 include/standard-headers/linux/virtio_net.h | 3 +++ > > > > =C2=A0 2 files changed, 5 insertions(+) > > > >=20 > > > > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > > > > index 90502fca7c..38b3140670 100644 > > > > --- a/hw/net/virtio-net.c > > > > +++ b/hw/net/virtio-net.c > > > > @@ -2198,6 +2198,8 @@ static Property virtio_net_properties[] =3D= { > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 true), > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 DEFINE_PROP_INT32("speed", VirtION= et, net_conf.speed, > > > > SPEED_UNKNOWN), > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 DEFINE_PROP_STRING("duplex", VirtI= ONet, net_conf.duplex_str), > > > > +=C2=A0=C2=A0=C2=A0 DEFINE_PROP_BIT64("standby", VirtIONet, host_= features, > > > > VIRTIO_NET_F_STANDBY, > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 false), > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 DEFINE_PROP_END_OF_LIST(), > > > > =C2=A0 }; > > > > =C2=A0 diff --git a/include/standard-headers/linux/virtio_net.h > > > > b/include/standard-headers/linux/virtio_net.h > > > > index e9f255ea3f..01ec09684c 100644 > > > > --- a/include/standard-headers/linux/virtio_net.h > > > > +++ b/include/standard-headers/linux/virtio_net.h > > > > @@ -57,6 +57,9 @@ > > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * Stee= ring */ > > > > =C2=A0 #define VIRTIO_NET_F_CTRL_MAC_ADDR 23=C2=A0=C2=A0=C2=A0 /*= Set MAC address */ > > > > =C2=A0 +#define VIRTIO_NET_F_STANDBY=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= 62=C2=A0=C2=A0=C2=A0 /* Act as standby for > > > > another device > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 * with the same MAC. > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 */ > > > > =C2=A0 #define VIRTIO_NET_F_SPEED_DUPLEX 63=C2=A0=C2=A0=C2=A0 /* = Device set > > > > linkspeed and duplex */ > > > > =C2=A0 =C2=A0 #ifndef VIRTIO_NET_NO_LEGACY > > >=20 > >=20