.. SPDX-License-Identifier: BSD-3-Clause Copyright(c) 2020 Intel Corporation. Ring Mempool Driver =================== **rte_mempool_ring** is a pure software mempool driver based on the ``rte_ring`` DPDK library. This is a default mempool driver. The following modes of operation are available for the ring mempool driver and can be selected via mempool ops API: - ``ring_mp_mc`` The underlying **rte_ring** operates in multi-thread producer, multi-thread consumer sync mode. For more information please refer to: :ref:`Ring_Library_MPMC_Mode`. - ``ring_sp_sc`` The underlying **rte_ring** operates in single-thread producer, single-thread consumer sync mode. For more information please refer to: :ref:`Ring_Library_SPSC_Mode`. - ``ring_sp_mc`` The underlying **rte_ring** operates in single-thread producer, multi-thread consumer sync mode. - ``ring_mp_sc`` The underlying **rte_ring** operates in multi-thread producer, single-thread consumer sync mode. - ``ring_mt_rts`` For underlying **rte_ring** both producer and consumer operate in multi-thread Relaxed Tail Sync (RTS) mode. For more information please refer to: :ref:`Ring_Library_MT_RTS_Mode`. - ``ring_mt_hts`` For underlying **rte_ring** both producer and consumer operate in multi-thread Head-Tail Sync (HTS) mode. For more information please refer to: :ref:`Ring_Library_MT_HTS_Mode`. For 'classic' DPDK deployments (with one thread per core) the ``ring_mp_mc`` mode is usually the most suitable and the fastest one. For overcommitted scenarios (multiple threads share same set of cores) the ``ring_mt_rts`` or ``ring_mt_hts`` modes usually provide a better alternative. For more information about ``rte_ring`` structure, behaviour and available synchronisation modes please refer to: :doc:`../prog_guide/ring_lib`.