xref: /f-stack/dpdk/doc/guides/bbdevs/null.rst (revision d30ea906)
1*d30ea906Sjfb8856606..  SPDX-License-Identifier: BSD-3-Clause
2*d30ea906Sjfb8856606    Copyright(c) 2017 Intel Corporation
3*d30ea906Sjfb8856606
4*d30ea906Sjfb8856606BBDEV null Poll Mode Driver
5*d30ea906Sjfb8856606============================
6*d30ea906Sjfb8856606
7*d30ea906Sjfb8856606The (**baseband_null**) is a bbdev poll mode driver which provides a minimal
8*d30ea906Sjfb8856606implementation of a software bbdev device. As a null device it does not modify
9*d30ea906Sjfb8856606the data in the mbuf on which the bbdev operation is to operate and it only
10*d30ea906Sjfb8856606works for operation type ``RTE_BBDEV_OP_NONE``.
11*d30ea906Sjfb8856606
12*d30ea906Sjfb8856606When a burst of mbufs is submitted to a *bbdev null PMD* for processing then
13*d30ea906Sjfb8856606each mbuf in the burst will be enqueued in an internal buffer ring to be
14*d30ea906Sjfb8856606collected on a dequeue call.
15*d30ea906Sjfb8856606
16*d30ea906Sjfb8856606
17*d30ea906Sjfb8856606Limitations
18*d30ea906Sjfb8856606-----------
19*d30ea906Sjfb8856606
20*d30ea906Sjfb8856606* In-place operations for Turbo encode and decode are not supported
21*d30ea906Sjfb8856606
22*d30ea906Sjfb8856606Installation
23*d30ea906Sjfb8856606------------
24*d30ea906Sjfb8856606
25*d30ea906Sjfb8856606The *bbdev null PMD* is enabled and built by default in both the Linux and
26*d30ea906Sjfb8856606FreeBSD builds.
27*d30ea906Sjfb8856606
28*d30ea906Sjfb8856606Initialization
29*d30ea906Sjfb8856606--------------
30*d30ea906Sjfb8856606
31*d30ea906Sjfb8856606To use the PMD in an application, user must:
32*d30ea906Sjfb8856606
33*d30ea906Sjfb8856606- Call ``rte_vdev_init("baseband_null")`` within the application.
34*d30ea906Sjfb8856606
35*d30ea906Sjfb8856606- Use ``--vdev="baseband_null"`` in the EAL options, which will call ``rte_vdev_init()`` internally.
36*d30ea906Sjfb8856606
37*d30ea906Sjfb8856606The following parameters (all optional) can be provided in the previous two calls:
38*d30ea906Sjfb8856606
39*d30ea906Sjfb8856606* ``socket_id``: Specify the socket where the memory for the device is going to be allocated
40*d30ea906Sjfb8856606  (by default, *socket_id* will be the socket where the core that is creating the PMD is running on).
41*d30ea906Sjfb8856606
42*d30ea906Sjfb8856606* ``max_nb_queues``: Specify the maximum number of queues in the device (default is ``RTE_MAX_LCORE``).
43*d30ea906Sjfb8856606
44*d30ea906Sjfb8856606Example:
45*d30ea906Sjfb8856606~~~~~~~~
46*d30ea906Sjfb8856606
47*d30ea906Sjfb8856606.. code-block:: console
48*d30ea906Sjfb8856606
49*d30ea906Sjfb8856606    ./test-bbdev.py -e="--vdev=baseband_null,socket_id=0,max_nb_queues=8"
50