On Mon, 2017-08-21 at 17:19 -0700, Yipeng Wang wrote: > Membership library is an extension and generalization of a > traditional > filter (for example Bloom Filter) structure. In general, the > Membership > library is a data structure that provides a "set-summary" and > responds > to set-membership queries of whether a certain element belongs to a > set(s). A membership test for an element will return the set this > element > belongs to or not-found if the element is never inserted into the > set-summary. > > The results of the membership test is not 100% accurate. Certain > false positive or false negative probability could exist. However, > comparing to a "full-blown" complete list of elements, a "set- > summary" > is memory efficient and fast on lookup. > > This patch add the main API definition. > > Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com> > --- > lib/Makefile | 2 + > lib/librte_eal/common/eal_common_log.c | 1 + > lib/librte_eal/common/include/rte_log.h | 1 + > lib/librte_member/Makefile | 48 +++ > lib/librte_member/rte_member.c | 357 +++++++++++++++++++++ > lib/librte_member/rte_member.h | 518 > +++++++++++++++++++++++++++++++ > lib/librte_member/rte_member_version.map | 15 + > 7 files changed, 942 insertions(+) > create mode 100644 lib/librte_member/Makefile > create mode 100644 lib/librte_member/rte_member.c > create mode 100644 lib/librte_member/rte_member.h > create mode 100644 lib/librte_member/rte_member_version.map >
> diff --git a/lib/librte_member/Makefile b/lib/librte_member/Makefile > new file mode 100644 > index 0000000..997c825 > --- /dev/null > +++ b/lib/librte_member/Makefile > @@ -0,0 +1,48 @@ > +# BSD LICENSE > +# > +# Copyright(c) 2017 Intel Corporation. All rights reserved. > +# All rights reserved. > +# > +# Redistribution and use in source and binary forms, with or > without > +# modification, are permitted provided that the following > conditions > +# are met: > +# > +# * Redistributions of source code must retain the above > copyright > +# notice, this list of conditions and the following > disclaimer. > +# * Redistributions in binary form must reproduce the above > copyright > +# notice, this list of conditions and the following disclaimer > in > +# the documentation and/or other materials provided with the > +# distribution. > +# * Neither the name of Intel Corporation nor the names of its > +# contributors may be used to endorse or promote products > derived > +# from this software without specific prior written > permission. > +# > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS > +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT > NOT > +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND > FITNESS FOR > +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT > +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, > INCIDENTAL, > +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT > +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > USE, > +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND > ON ANY > +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR > TORT > +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF > THE USE > +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH > DAMAGE. > + > +include $(RTE_SDK)/mk/rte.vars.mk > + > +# library name > +LIB = librte_member.a > + > +CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 > + This breaks reproducibility as the output directory will be included before the source directory, causing a race - please do something like: CFLAGS := -I$(SRCDIR) $(CFLAGS) CFLAGS += $(WERROR_FLAGS) -O3 > +EXPORT_MAP := rte_member_version.map > + > +LIBABIVER := 1 > + > +# all source are stored in SRCS-y > +SRCS-$(CONFIG_RTE_LIBRTE_MEMBER) += rte_member.c > +# install includes > +SYMLINK-$(CONFIG_RTE_LIBRTE_MEMBER)-include := rte_member.h > + > +include $(RTE_SDK)/mk/rte.lib.mk -- Kind regards, Luca Boccassi