From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <mhall@mhcomputing.net>
Received: from mail.mhcomputing.net (master.mhcomputing.net [74.208.46.186])
 by dpdk.org (Postfix) with ESMTP id 42E6D5A52
 for <dev@dpdk.org>; Wed,  8 Jul 2015 18:59:56 +0200 (CEST)
Received: by mail.mhcomputing.net (Postfix, from userid 1000)
 id 9342680C502; Wed,  8 Jul 2015 09:57:03 -0700 (PDT)
Date: Wed, 8 Jul 2015 09:57:03 -0700
From: Matthew Hall <mhall@mhcomputing.net>
To: Bruce Richardson <bruce.richardson@intel.com>
Message-ID: <20150708165703.GA2551@mhcomputing.net>
References: <1436354854-30700-1-git-send-email-pablo.de.lara.guarch@intel.com>
 <1436354854-30700-2-git-send-email-pablo.de.lara.guarch@intel.com>
 <20150708132142.GB5708@bricha3-MOBL3>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150708132142.GB5708@bricha3-MOBL3>
User-Agent: Mutt/1.5.23 (2014-03-12)
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH] hash: move rte_hash structure to C file and
 make it internal
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Jul 2015 16:59:56 -0000

On Wed, Jul 08, 2015 at 02:21:42PM +0100, Bruce Richardson wrote:
> Irrespective of whether or not we change the underlying hash table implementation
> this looks a good change to me. The rte_hash structure should not be used directly
> by any applications - the APIs all take pointers to the structure,
> so there should be no ABI breakage from this, I think.
> 
> Therefore:
> 
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Hi guys,

There are places where this will be annoying on the app side.

A lot of rte_hash, rte_lpm*, rte_table, etc. don't provide methods to iterate 
whole structures with a callback function that includes the current structure 
node, and a user-data pointer.

This can make it real unpleasant when you want to walk through the structure 
and free a bunch of items it points to and so forth.

So if you're going to obfuscate things by censoring the structure contents 
then we'd really like to be sure they have a full set of CRUD operations and 
iteration support so one could manage the nodes individually and in bulk.

Matthew.