summaryrefslogtreecommitdiffstats
path: root/doc/guides/compressdevs/zlib.rst
blob: 986c59d43baa157841fa8d7ce7e6ff9507a0902e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
..  SPDX-License-Identifier: BSD-3-Clause
    Copyright(c) 2018 Cavium Networks.

ZLIB Compression Poll Mode Driver
==================================

The ZLIB PMD (**librte_pmd_zlib**) provides poll mode compression &
decompression driver based on SW zlib library,

Features
--------

ZLIB PMD has support for:

Compression/Decompression algorithm:

* DEFLATE

Huffman code type:

* FIXED
* DYNAMIC

Window size support:

* Min - 256 bytes
* Max - 32K

Limitations
-----------

* Scatter-Gather and Stateful not supported.

Installation
------------

* To build DPDK with ZLIB library, the user is required to download the ``libz`` library.
* Use following command for installation.

* For Fedora users::
     sudo yum install zlib-devel
* For Ubuntu users::
     sudo apt-get install zlib1g-dev

* Once downloaded, the user needs to build the library.

* To build from sources
  download zlib sources from http://zlib.net/ and do following before building DPDK::

    make
    sudo make install

Initialization
--------------

In order to enable this virtual compression PMD, user must:

* Set ``CONFIG_RTE_LIBRTE_PMD_ZLIB=y`` in config/common_base.

To use the PMD in an application, user must:

* Call ``rte_vdev_init("compress_zlib")`` within the application.

* Use ``--vdev="compress_zlib"`` in the EAL options, which will call ``rte_vdev_init()`` internally.

The following parameter (optional) can be provided in the previous two calls:

* ``socket_id:`` Specify the socket where the memory for the device is going to be allocated
  (by default, socket_id will be the socket where the core that is creating the PMD is running on).