From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35520) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UxWuA-0006Ac-SZ for qemu-devel@nongnu.org; Fri, 12 Jul 2013 02:32:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UxWu9-0005zA-Mq for qemu-devel@nongnu.org; Fri, 12 Jul 2013 02:32:34 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55966) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UxWu9-0005z6-Fw for qemu-devel@nongnu.org; Fri, 12 Jul 2013 02:32:33 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r6C6WVOs029718 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 12 Jul 2013 02:32:31 -0400 From: Markus Armbruster References: <1369300080-31377-1-git-send-email-akong@redhat.com> <1369300080-31377-3-git-send-email-akong@redhat.com> <874ncljiyb.fsf@blackfin.pond.sub.org> <20130702063301.GA5880@amosk.info> <87ppv1tjpn.fsf@blackfin.pond.sub.org> <20130702104010.GA19476@amosk.info> <871u7hf5xr.fsf@blackfin.pond.sub.org> <20130704033113.GA6361@amosk.info> <87txkadej8.fsf@blackfin.pond.sub.org> <20130711140501.GA9449@amosk.info> Date: Fri, 12 Jul 2013 08:32:29 +0200 In-Reply-To: <20130711140501.GA9449@amosk.info> (Amos Kong's message of "Thu, 11 Jul 2013 22:05:01 +0800") Message-ID: <87ip0ge1aa.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH v3 2/2] net: introduce command to query rx-filter information List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Amos Kong Cc: lcapitulino@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com, mst@redhat.com Amos Kong writes: > On Thu, Jul 04, 2013 at 08:28:59AM +0200, Markus Armbruster wrote: >> Amos Kong writes: >> >> > On Tue, Jul 02, 2013 at 03:27:12PM +0200, Markus Armbruster wrote: >> >> Amos Kong writes: >> >> >> >> > On Tue, Jul 02, 2013 at 11:05:56AM +0200, Markus Armbruster wrote: >> >> >> Amos Kong writes: >> >> [...] >> >> >> >> This interface is abstract in the sense that it applies to >> >> >> >> all NICs. At >> >> >> >> this time, it's implemented only virtio-net implements it. I'm >> >> >> >> habitually wary of abstractions based on just one concrete instance, >> >> >> >> which makes me ask: >> >> >> >> >> >> >> >> 1. Ignorant question first: could the feature make sense >> >> >> >> for other NICs, >> >> >> >> too, or is it specific to virtio-net? >> >> >> > >> >> >> > We will not. >> >> >> > >> >> >> > It's ugly to check if nic is virtio-net nic in net/net.c, so I >> >> >> > register the query function to NetClientInfo. Traversal the net >> >> >> > client list in net/net.c, and execute query of each virtio-net >> >> >> > instance in virtio-net.c >> >> >> >> >> >> Implementing the feature as an optional callback is fine. >> >> >> >> >> >> Let me rephrase my question: could this feature be implemented for other >> >> >> NICs? I'm *not* asking you to do that, just whether it would be >> >> >> possible. >> >> >> >> >> >> I'm asking because my review of the QAPI schema depends on the answer. >> >> >> >> >> >> >> 2. If the former, are you reasonably sure this object will >> >> >> >> do for other >> >> >> >> NICs? >> >> >> > >> >> >> > No. >> >> >> >> >> >> I'm not sure I understand you. Do you mean to say that the feature >> >> >> could be implemented for other NICs, but RxFilterInfo would probably not >> >> >> fit for them? >> >> > >> >> > We will not implement the feature to other NICs, no request. >> >> > >> >> > We notify the management of virtio-net rx-filter change, because >> >> > we want to sync the the rx-filter change to macvtap device. >> >> >> >> I understand there are no plans to implement this feature for other >> >> NICs. But I'm not asking whether we *want* to implement it for other >> >> NICs, I'm asking whether we *could*. >> > >> > In theory, we can. >> > >> >> Or rephrased yet another way: what exactly makes this feature applicable >> >> to virtio-net only? >> > >> > Macvtap can only be used by virtio-net, not other emulated nic. >> > It's meaningless for management to know the rx-filter change of >> > non-virtio-net NICs. >> >> I'm having trouble squaring "in theory, we can" with "meaningless". So >> I'm rephrasing my question yet again. >> >> Do NICs other than virtio-net have rx-filters? > > Yes. > > Talked with Jason, upstream kernel fixed some bugs, then we can also > use e1000 with macvtap. In this case, we should also implement a > .query_rx_filter function for e1000. We can do it by another patchset. Yes. Just to avoid misunderstandings: I'm not asking you for that. I merely asked whether it's possible, and you answered that. >> If yes, what have these NIC rx-filters in common, and how do they >> differ? >> >> Why would anybody want to query rx-filters? Use cases, please. > > It's a way to tell management the rx-filter setup in guest nic. > Management query the rx-filter setup of guest, then change the > setup of macvtap device, macvtap uses same rx-filter setup as > virtual nic. So this use case is "mirror the virtual NIC's rx-filter setup to macvtap". Makes sense. This leads me to the question I've been aiming for all along: will your definition of RxFilterInfo do for devices other than virtio-net? It should do if it contains only stuff that all NICs with an rx-filter have. Is that the case? [...]