From patchwork Wed Nov 10 02:39:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhang Chen X-Patchwork-Id: 12611307 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 14F4FC433EF for ; Wed, 10 Nov 2021 02:49:31 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9897161186 for ; Wed, 10 Nov 2021 02:49:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 9897161186 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:36722 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mkdg1-00072l-Fy for qemu-devel@archiver.kernel.org; Tue, 09 Nov 2021 21:49:29 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48372) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkdfK-0006Nl-6E for qemu-devel@nongnu.org; Tue, 09 Nov 2021 21:48:46 -0500 Received: from mga18.intel.com ([134.134.136.126]:28524) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkdfH-0002Xb-8g for qemu-devel@nongnu.org; Tue, 09 Nov 2021 21:48:45 -0500 X-IronPort-AV: E=McAfee;i="6200,9189,10163"; a="219484394" X-IronPort-AV: E=Sophos;i="5.87,222,1631602800"; d="scan'208";a="219484394" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2021 18:48:38 -0800 X-IronPort-AV: E=Sophos;i="5.87,222,1631602800"; d="scan'208";a="642381771" Received: from unknown (HELO localhost.localdomain) ([10.239.13.19]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2021 18:48:37 -0800 From: Zhang Chen To: Jason Wang Subject: [PATCH] net/filter: Enable the vnet_hdr_support by default Date: Wed, 10 Nov 2021 10:39:15 +0800 Message-Id: <20211110023915.3797141-1-chen.zhang@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Received-SPF: pass client-ip=134.134.136.126; envelope-from=chen.zhang@intel.com; helo=mga18.intel.com X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Zhang Chen , qemu-dev , Li Zhijian , Markus Armbruster Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This patch make filters and colo-compare module support vnet_hdr by default. And also support -device non-virtio-net(like e1000.). But it can't avoid user manual configuration error between different filters when enable/disable virtio-net-pci. Signed-off-by: Zhang Chen --- net/colo-compare.c | 2 +- net/filter-mirror.c | 4 ++-- net/filter-rewriter.c | 2 +- qemu-options.hx | 9 +++++---- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index b8876d7fd9..82d4d81710 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -1397,7 +1397,7 @@ static void colo_compare_init(Object *obj) get_max_queue_size, set_max_queue_size, NULL, NULL); - s->vnet_hdr = false; + s->vnet_hdr = true; object_property_add_bool(obj, "vnet_hdr_support", compare_get_vnet_hdr, compare_set_vnet_hdr); } diff --git a/net/filter-mirror.c b/net/filter-mirror.c index f20240cc9f..adb0c6d89a 100644 --- a/net/filter-mirror.c +++ b/net/filter-mirror.c @@ -406,14 +406,14 @@ static void filter_mirror_init(Object *obj) { MirrorState *s = FILTER_MIRROR(obj); - s->vnet_hdr = false; + s->vnet_hdr = true; } static void filter_redirector_init(Object *obj) { MirrorState *s = FILTER_REDIRECTOR(obj); - s->vnet_hdr = false; + s->vnet_hdr = true; } static void filter_mirror_fini(Object *obj) diff --git a/net/filter-rewriter.c b/net/filter-rewriter.c index bf05023dc3..5698cd39d1 100644 --- a/net/filter-rewriter.c +++ b/net/filter-rewriter.c @@ -407,7 +407,7 @@ static void filter_rewriter_init(Object *obj) { RewriterState *s = FILTER_REWRITER(obj); - s->vnet_hdr = false; + s->vnet_hdr = true; s->failover_mode = FAILOVER_MODE_OFF; } diff --git a/qemu-options.hx b/qemu-options.hx index 7749f59300..c40e385ede 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -4967,13 +4967,13 @@ SRST ``-object filter-mirror,id=id,netdev=netdevid,outdev=chardevid,queue=all|rx|tx[,vnet_hdr_support][,position=head|tail|id=][,insert=behind|before]`` filter-mirror on netdev netdevid,mirror net packet to chardevchardevid, if it has the vnet\_hdr\_support flag, - filter-mirror will mirror packet with vnet\_hdr\_len. + filter-mirror will mirror packet with vnet\_hdr\_len(default: on). ``-object filter-redirector,id=id,netdev=netdevid,indev=chardevid,outdev=chardevid,queue=all|rx|tx[,vnet_hdr_support][,position=head|tail|id=][,insert=behind|before]`` filter-redirector on netdev netdevid,redirect filter's net packet to chardev chardevid,and redirect indev's packet to filter.if it has the vnet\_hdr\_support flag, filter-redirector - will redirect packet with vnet\_hdr\_len. Create a + will redirect packet with vnet\_hdr\_len(default: on). Create a filter-redirector we need to differ outdev id from indev id, id can not be the same. we can just use indev or outdev, but at least one of indev or outdev need to be specified. @@ -4983,7 +4983,8 @@ SRST packet to secondary from primary to keep secondary tcp connection,and rewrite tcp packet to primary from secondary make tcp packet can be handled by client.if it has the - vnet\_hdr\_support flag, we can parse packet with vnet header. + vnet\_hdr\_support flag, we can parse packet with vnet + header(default: on). usage: colo secondary: -object filter-redirector,id=f1,netdev=hn0,queue=tx,indev=red0 -object @@ -5004,7 +5005,7 @@ SRST checkpoint and send primary packet to out\_dev. In order to improve efficiency, we need to put the task of comparison in another iothread. If it has the vnet\_hdr\_support flag, - colo compare will send/recv packet with vnet\_hdr\_len. + colo compare will send/recv packet with vnet\_hdr\_len(default: on). The compare\_timeout=@var{ms} determines the maximum time of the colo-compare hold the packet. The expired\_scan\_cycle=@var{ms} is to set the period of scanning expired primary node network packets.