From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43012) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z29OW-0002PU-Co for qemu-devel@nongnu.org; Mon, 08 Jun 2015 22:36:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z29OT-0003Hi-7y for qemu-devel@nongnu.org; Mon, 08 Jun 2015 22:36:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35100) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z29OT-0003HV-1y for qemu-devel@nongnu.org; Mon, 08 Jun 2015 22:36:01 -0400 Message-ID: <5576510B.7040906@redhat.com> Date: Tue, 09 Jun 2015 10:35:55 +0800 From: Jason Wang MIME-Version: 1.0 References: <55701BED.2090802@redhat.com> <1433510652-13866-1-git-send-email-thibaut.collet@6wind.com> <55752E3C.8070700@redhat.com> <20150608133203.GM23825@stefanha-thinkpad.redhat.com> <20150608181329-mutt-send-email-mst@redhat.com> In-Reply-To: <20150608181329-mutt-send-email-mst@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2] net: Add support of VIRTIO_NET_F_GUEST_ANNOUNCE for vhost-net/vhost-user List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" , Stefan Hajnoczi Cc: Thibaut Collet , qemu-devel , Stefan Hajnoczi , Juan Quintela On 06/09/2015 12:13 AM, Michael S. Tsirkin wrote: > On Mon, Jun 08, 2015 at 04:13:59PM +0100, Stefan Hajnoczi wrote: >> On Mon, Jun 8, 2015 at 3:05 PM, Thibaut Collet wrote: >>>> I think Jason is pointing out that your patch lacks support for guests >>>> that do not negotiate VIRTIO_NET_F_GUEST_ANNOUNCE. >>> I have understood the issue with old guest pointed by Jason. >>> I have thinking about the best way to do solve it and any advices are >>> welcome. >> 1. Add vhost-user virtio-net command to inject packets >> >> Add a new VhostUserRequest VHOST_USER_NET_INJECT_PACKET allowing QEMU >> to hand a packet to the vhost-user process for injection. This >> command is virtio-net specific and fails if called on a different >> device type. >> >> 2. Fail negotiation when VIRTIO_NET_F_GUEST_ANNOUNCE is not accepted >> >> This is only really possible in VIRTIO 1.0 and later. Pre-1.0 does >> not allow the device to reject due to disabled features. >> >> file:///home/stefanha/virtio/trunk/virtio-v1.0-cs02.html#x1-450001 >> >> Therefore this is not a great solution. >> >> 3. The easiest solution - nop .receive() >> >> Just implement a nop .receive() which drops the packet and prints a >> warning message to stderr. This way VIRTIO_NET_F_GUEST_ANNOUNCE >> guests work while legacy guests don't send a gratuitous ARP packet. >> >> Stefan > 3 sounds good to me. > And looks like we can remove the s->nc.receive_disabled = 1; in vhost-user.c in this case.