On Thu, Mar 5, 2020 at 10:14 PM Coyle, David <david.co...@intel.com> wrote: > > Having taken feedback from the community into account, we would like to > propose some changes to our approach for combining multiple packet-processing > functions into a single operation on a single device, be that an optimized > software library or a hardware accelerator.
> Note that development work is already progressing well on this new approach, > with the aim of upstreaming this into DPDK v20.05. > > Also, we may consider consolidating the multi-function API into the main DPDK > library in the future if there were more devices which wanted to support > these multi-function operations. > > The following is the proposed rawdev multi-function interface, defined in > 'drivers/raw/common/rte_rawdev_multi_fn.h' > > /* SPDX-License-Identifier: BSD-3-Clause > * Copyright(c) 2020 Intel Corporation. > */ > > #ifndef _RTE_RAWDEV_MULTI_FN_H_ > #define _RTE_RAWDEV_MULTI_FN_H_ > > #ifdef __cplusplus > extern "C" { > #endif > > #include <rte_compat.h> > #include <rte_common.h> > #include <rte_mbuf.h> > #include <rte_memory.h> > #include <rte_mempool.h> > #include <rte_comp.h> > #include <rte_crypto.h> > #include <rte_rawdev.h> > > /** Error Detection Algorithms */ > enum rte_rawdev_multi_fn_err_detect_algorithm { > RTE_RAWDEV_MULTI_FN_ERR_DETECT_CRC32_ETH, IMO, It does not make sense to add protocol specific stuff in rawdev symbols. IMO, It is better to have a separate library for CRC and BIP32 acceleration like the rte_security library and underneath still it can use rawdev or anydev if required. IMO, Exposing the public API in drivers/raw/common/rte_rawdev_multi_fn.h is a shortcut. IMO, public API should be in lib/.. Just my 2c.