From nobody Wed Feb 11 02:09:06 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1499152120306462.4562084116129; Tue, 4 Jul 2017 00:08:40 -0700 (PDT) Received: from localhost ([::1]:38998 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dSHws-0008IH-V5 for importer@patchew.org; Tue, 04 Jul 2017 03:08:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43934) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dSHhh-0003hh-2e for qemu-devel@nongnu.org; Tue, 04 Jul 2017 02:52:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dSHhd-00072n-IU for qemu-devel@nongnu.org; Tue, 04 Jul 2017 02:52:57 -0400 Received: from [59.151.112.132] (port=16463 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dSHhd-0006zC-5i for qemu-devel@nongnu.org; Tue, 04 Jul 2017 02:52:53 -0400 Received: from unknown (HELO cn.fujitsu.com) ([10.167.33.5]) by heian.cn.fujitsu.com with ESMTP; 04 Jul 2017 14:52:43 +0800 Received: from G08CNEXCHPEKD02.g08.fujitsu.local (unknown [10.167.33.83]) by cn.fujitsu.com (Postfix) with ESMTP id C07E3480199F; Tue, 4 Jul 2017 14:52:42 +0800 (CST) Received: from localhost.localdomain (10.167.226.56) by G08CNEXCHPEKD02.g08.fujitsu.local (10.167.33.89) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 4 Jul 2017 14:52:41 +0800 X-IronPort-AV: E=Sophos;i="5.22,518,1449504000"; d="scan'208";a="20826722" From: Zhang Chen To: qemu devel , Jason Wang Date: Tue, 4 Jul 2017 14:53:49 +0800 Message-ID: <1499151236-14671-6-git-send-email-zhangchen.fnst@cn.fujitsu.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1499151236-14671-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> References: <1499151236-14671-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> MIME-Version: 1.0 X-Originating-IP: [10.167.226.56] X-yoursite-MailScanner-ID: C07E3480199F.AC025 X-yoursite-MailScanner: Found to be clean X-yoursite-MailScanner-From: zhangchen.fnst@cn.fujitsu.com X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 59.151.112.132 Subject: [Qemu-devel] [PATCH V7 05/12] net/filter-mirror.c: Add new option to enable vnet support for filter-redirector X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Li Zhijian , zhanghailiang , Zhang Chen Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We add the vnet_hdr_support option for filter-redirector, default is disabl= ed. If you use virtio-net-pci net driver or other driver needs vnet_hdr, please= enable it. Because colo-compare or other modules needs the vnet_hdr_len to parse packet, we add this new option send the len to others. You can use it for example: -object filter-redirector,id=3Dr0,netdev=3Dhn0,queue=3Dtx,outdev=3Dred0,vne= t_hdr_support Signed-off-by: Zhang Chen --- net/filter-mirror.c | 23 +++++++++++++++++++++++ qemu-options.hx | 6 +++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/net/filter-mirror.c b/net/filter-mirror.c index 4a849d4..4127e15 100644 --- a/net/filter-mirror.c +++ b/net/filter-mirror.c @@ -368,6 +368,22 @@ static void filter_redirector_set_outdev(Object *obj, s->outdev =3D g_strdup(value); } =20 +static bool filter_redirector_get_vnet_hdr(Object *obj, Error **errp) +{ + MirrorState *s =3D FILTER_REDIRECTOR(obj); + + return s->vnet_hdr; +} + +static void filter_redirector_set_vnet_hdr(Object *obj, + bool value, + Error **errp) +{ + MirrorState *s =3D FILTER_REDIRECTOR(obj); + + s->vnet_hdr =3D value; +} + static void filter_mirror_init(Object *obj) { MirrorState *s =3D FILTER_MIRROR(obj); @@ -383,10 +399,17 @@ static void filter_mirror_init(Object *obj) =20 static void filter_redirector_init(Object *obj) { + MirrorState *s =3D FILTER_REDIRECTOR(obj); + object_property_add_str(obj, "indev", filter_redirector_get_indev, filter_redirector_set_indev, NULL); object_property_add_str(obj, "outdev", filter_redirector_get_outdev, filter_redirector_set_outdev, NULL); + + s->vnet_hdr =3D false; + object_property_add_bool(obj, "vnet_hdr_support", + filter_redirector_get_vnet_hdr, + filter_redirector_set_vnet_hdr, NULL); } =20 static void filter_mirror_fini(Object *obj) diff --git a/qemu-options.hx b/qemu-options.hx index f0add6f..3a5951c 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -4242,11 +4242,11 @@ queue @var{all|rx|tx} is an option that can be appl= ied to any netfilter. =20 filter-mirror on netdev @var{netdevid},mirror net packet to chardev@var{ch= ardevid}, if it has the vnet_hdr_support flag, filter-mirror will mirror pa= cket with vnet_hdr_len. =20 -@item -object filter-redirector,id=3D@var{id},netdev=3D@var{netdevid},inde= v=3D@var{chardevid}, -outdev=3D@var{chardevid}[,queue=3D@var{all|rx|tx}] +@item -object filter-redirector,id=3D@var{id},netdev=3D@var{netdevid},inde= v=3D@var{chardevid},outdev=3D@var{chardevid},queue=3D@var{all|rx|tx}[,vnet_= hdr_support] =20 filter-redirector on netdev @var{netdevid},redirect filter's net packet to= chardev -@var{chardevid},and redirect indev's packet to filter. +@var{chardevid},and redirect indev's packet to filter.if it has the vnet_h= dr_support flag, +filter-redirector will redirect packet with vnet_hdr_len. Create a filter-redirector we need to differ outdev id from indev id, id c= an not be the same. we can just use indev or outdev, but at least one of indev or= outdev need to be specified. --=20 2.7.4