From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41373) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d2rYq-0003qA-LJ for qemu-devel@nongnu.org; Mon, 24 Apr 2017 23:54:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d2rYl-0005Js-PY for qemu-devel@nongnu.org; Mon, 24 Apr 2017 23:54:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56378) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d2rYl-0005J7-GF for qemu-devel@nongnu.org; Mon, 24 Apr 2017 23:54:39 -0400 References: <1492670346-18004-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> <2010f24d-1ad0-4bab-bcd5-5e98fe21578a@redhat.com> From: Jason Wang Message-ID: <2e132a33-18ea-455c-31ac-0b7fd7a54214@redhat.com> Date: Tue, 25 Apr 2017 11:54:29 +0800 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH V2 0/6] Add COLO-proxy virtio-net support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Zhang Chen , qemu devel Cc: zhanghailiang , "eddie . dong" , bian naimeng , Li Zhijian On 2017=E5=B9=B404=E6=9C=8824=E6=97=A5 20:02, Zhang Chen wrote: > > > On 04/24/2017 11:48 AM, Jason Wang wrote: >> >> >> On 2017=E5=B9=B404=E6=9C=8820=E6=97=A5 14:39, Zhang Chen wrote: >>> If user use -device virtio-net-pci, virtio-net driver will add a head= er >>> to raw net packet that colo-proxy can't handle it. COLO-proxy just >>> focus on the packet payload, so we skip the virtio-net header to=20 >>> compare >>> the sent packet that primary guest's to secondary guest's. >>> >>> Zhang Chen (6): >>> net/filter-mirror.c: Add filter-mirror and filter-redirector vnet >>> support. >>> net/net.c: Add vnet header length to SocketReadState >>> net/colo-compare.c: Make colo-compare support vnet_hdr_len >>> net/socket.c: Add vnet packet support in net_socket_receive() >>> net/colo.c: Add vnet packet parse feature in colo-proxy >>> net/colo-compare.c: Add vnet packet's tcp/udp/icmp compare >>> >>> include/net/net.h | 4 +++- >>> net/colo-compare.c | 48=20 >>> +++++++++++++++++++++++++++++++++++++++--------- >>> net/colo.c | 9 +++++---- >>> net/colo.h | 4 +++- >>> net/filter-mirror.c | 25 ++++++++++++++++++++----- >>> net/filter-rewriter.c | 2 +- >>> net/net.c | 24 ++++++++++++++++++++++-- >>> net/socket.c | 6 ++++++ >>> 8 files changed, 99 insertions(+), 23 deletions(-) >>> >> >> A quick glance at the series and find two issues: >> >> - We can't assume virtio-net is the only user for vnet header, you=20 >> need query e.g NetClientState for a correct vnet header len. > > I don't know whether I understand your means. > I found that I can't get vnet_hdr_len from NetClientState, > > typedef struct NetClientInfo { > ..... > HasVnetHdr *has_vnet_hdr; > HasVnetHdrLen *has_vnet_hdr_len; > UsingVnetHdr *using_vnet_hdr; > SetOffload *set_offload; > SetVnetHdrLen *set_vnet_hdr_len; > > ..... > }NetClientInfo; > > This struct haven't a function like get_vnet_hdr_len. > Should I add the get_vnet_hdr_len callback here and write new function=20 > in tap.c,tap-wen32.c and netmap.c ? > > Thanks > Zhang Chen Yes, you need add such callbacks I think. Thanks > >> - This series breaks qtest: >> >> ** >> ERROR:tests/e1000e-test.c:296:e1000e_send_verify: assertion failed=20 >> (buffer =3D=3D "TEST"): ("" =3D=3D "TEST") >> GTester: last random seed: R02S39dd06f7f52013798111df2e4eb602c5 >> ** >> ERROR:tests/e1000e-test.c:365:e1000e_receive_verify: assertion failed=20 >> (le32_to_cpu(descr.wb.upper.status_error) & esta_dd =3D=3D esta_dd):=20 >> (0x00000000 =3D=3D 0x00000001) >> GTester: last random seed: R02S8c8200b8ec86358cb7addb5c6fe1303c >> ** >> ERROR:tests/e1000e-test.c:296:e1000e_send_verify: assertion failed=20 >> (buffer =3D=3D "TEST"): ("" =3D=3D "TEST") >> GTester: last random seed: R02S9be86025aa7ded4902bdf644c3964a6e >> ** >> ERROR:tests/libqos/virtio.c:94:qvirtio_wait_queue_isr: assertion=20 >> failed: (g_get_monotonic_time() - start_time <=3D timeout_us) >> GTester: last random seed: R02S30cac33d7a98fa56806ca59b35910ea5 >> ** >> ERROR:tests/libqos/virtio.c:94:qvirtio_wait_queue_isr: assertion=20 >> failed: (g_get_monotonic_time() - start_time <=3D timeout_us) >> GTester: last random seed: R02S258359836760a723622abf56cf2e61e7 >> ^C/home/devel/git/qemu/tests/Makefile.include:815: recipe for target=20 >> 'check-qtest-x86_64' failed >> make: *** [check-qtest-x86_64] Interrupt >> >> Please fix them. >> >> Thanks >> >> >> . >> >