From patchwork Sun Feb 14 08:55:02 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wenzhuo Lu X-Patchwork-Id: 10508 X-Patchwork-Delegate: bruce.richardson@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id BFFE2C312; Sun, 14 Feb 2016 09:55:38 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 2DE81C30E for ; Sun, 14 Feb 2016 09:55:37 +0100 (CET) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP; 14 Feb 2016 00:55:27 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,444,1449561600"; d="scan'208";a="911724599" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by orsmga002.jf.intel.com with ESMTP; 14 Feb 2016 00:55:26 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id u1E8tPGF030307; Sun, 14 Feb 2016 16:55:25 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id u1E8tNTI028634; Sun, 14 Feb 2016 16:55:25 +0800 Received: (from wenzhuol@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id u1E8tNLG028630; Sun, 14 Feb 2016 16:55:23 +0800 From: Wenzhuo Lu To: dev@dpdk.org Date: Sun, 14 Feb 2016 16:55:02 +0800 Message-Id: <1455440106-28547-8-git-send-email-wenzhuo.lu@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1455440106-28547-1-git-send-email-wenzhuo.lu@intel.com> References: <1453171693-25571-1-git-send-email-wenzhuo.lu@intel.com> <1455440106-28547-1-git-send-email-wenzhuo.lu@intel.com> Subject: [dpdk-dev] [PATCH v2 07/11] ixgbe/base: fix setting flow dir flag twice X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Do not set FDIRCTRL.DROP_NO_MATCH in ixgbe_init_fdir_perfect_82599(), this bit is already set in ixgbe_set_fdir_drop_queue_82599() which makes more sense for drivers that call that function. This resolves an issue where packets were being dropped when switching to perfect filters mode. Setting this bit makes no sense in perfect filters mode for the driver as we do not want to route all packets that don't match an FDIR rule to a single queue and instead fall back to RSS. Drivers that need this bit set can call ixgbe_set_fdir_drop_queue_82599() and the ones that don't, can preserve the old behavior. Fixes: 2241ce281646 ("ixgbe/base: add flow director drop queue") Signed-off-by: Wenzhuo Lu --- doc/guides/rel_notes/release_16_04.rst | 8 ++++++++ drivers/net/ixgbe/base/ixgbe_82599.c | 3 --- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/guides/rel_notes/release_16_04.rst b/doc/guides/rel_notes/release_16_04.rst index 0777794..7687ffd 100644 --- a/doc/guides/rel_notes/release_16_04.rst +++ b/doc/guides/rel_notes/release_16_04.rst @@ -80,6 +80,14 @@ Drivers driver is loaded while the PF interface is down. The solution is to only set it when we get an ACK from the PF. +* **ixgbe/base: Fixed setting flow dir flag twice.** + + Resolved an issue where packets were being dropped when switching to perfect + filters mode. + Do not set FDIRCTRL.DROP_NO_MATCH in ixgbe_init_fdir_perfect_82599(), this bit + is already set in ixgbe_set_fdir_drop_queue_82599() which makes more sense for + drivers that call that function. + Libraries ~~~~~~~~~ diff --git a/drivers/net/ixgbe/base/ixgbe_82599.c b/drivers/net/ixgbe/base/ixgbe_82599.c index 85114e9..154c1f1 100644 --- a/drivers/net/ixgbe/base/ixgbe_82599.c +++ b/drivers/net/ixgbe/base/ixgbe_82599.c @@ -1380,9 +1380,6 @@ s32 ixgbe_init_fdir_perfect_82599(struct ixgbe_hw *hw, u32 fdirctrl, (0x6 << IXGBE_FDIRCTRL_FLEX_SHIFT) | (0xA << IXGBE_FDIRCTRL_MAX_LENGTH_SHIFT) | (4 << IXGBE_FDIRCTRL_FULL_THRESH_SHIFT); - if ((hw->mac.type == ixgbe_mac_X550) || - (hw->mac.type == ixgbe_mac_X550EM_x)) - fdirctrl |= IXGBE_FDIRCTRL_DROP_NO_MATCH; if (cloud_mode) fdirctrl |=(IXGBE_FDIRCTRL_FILTERMODE_CLOUD <<