From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 25F4C91AB for ; Fri, 30 Oct 2015 15:13:34 +0100 (CET) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP; 30 Oct 2015 07:13:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,218,1444719600"; d="scan'208";a="823168354" Received: from bricha3-mobl3.ger.corp.intel.com ([10.237.208.63]) by fmsmga001.fm.intel.com with SMTP; 30 Oct 2015 07:13:32 -0700 Received: by (sSMTP sendmail emulation); Fri, 30 Oct 2015 14:13:31 +0025 Date: Fri, 30 Oct 2015 14:13:31 +0000 From: Bruce Richardson To: Jijiang Liu Message-ID: <20151030141331.GA10520@bricha3-MOBL3> References: <1446210879-14242-1-git-send-email-jijiang.liu@intel.com> <1446210879-14242-2-git-send-email-jijiang.liu@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1446210879-14242-2-git-send-email-jijiang.liu@intel.com> Organization: Intel Shannon Ltd. User-Agent: Mutt/1.5.23 (2014-03-12) Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v2 1/2] lib/lpm:fix an issue of condition check in delete_depth_small() 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: , X-List-Received-Date: Fri, 30 Oct 2015 14:13:35 -0000 On Fri, Oct 30, 2015 at 09:14:38PM +0800, Jijiang Liu wrote: > Fixes an issue of check logic in delete_depth_small function. > > For a tbl24 entry, the 'ext_entry' field indicates whether we need to use tbl8_gindex to read the next_hop from a tbl8 entry, or whether it can be read directly from this entry. > > If a route is deleted, the prefix of previous route is used to override the deleted route. > > When checking the depth of the previous route the conditional checks both the ext_entry and the depth, but the "else" leg fails to take account that the condition could fail for one of two possible reasons, leading to an incorrect flow when 'ext_entry == 0' is true , but 'lpm->tbl24[i].depth > depth' is false. The fix here is to add a condition check to the else leg so that it only executes when ext_entry is set. > > Signed-off-by: NaNa Acked-by: Bruce Richardson