[dpdk-dev] [PATCH 1/7] member: implement main API

Luca Boccassi luca.boccassi at gmail.com
Tue Aug 22 12:02:16 CEST 2017


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.wang at 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


More information about the dev mailing list