xref: /dpdk/doc/guides/nics/ice.rst (revision 2d0c29a37a9c080c1cccb1ad7941aba2ccf5437e)
1..  SPDX-License-Identifier: BSD-3-Clause
2    Copyright(c) 2018 Intel Corporation.
3
4ICE Poll Mode Driver
5======================
6
7The ice PMD (librte_pmd_ice) provides poll mode driver support for
810/25 Gbps Intel® Ethernet 810 Series Network Adapters based on
9the Intel Ethernet Controller E810.
10
11
12Prerequisites
13-------------
14
15- Identifying your adapter using `Intel Support
16  <http://www.intel.com/support>`_ and get the latest NVM/FW images.
17
18- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
19
20- To get better performance on Intel platforms, please follow the "How to get best performance with NICs on Intel platforms"
21  section of the :ref:`Getting Started Guide for Linux <linux_gsg>`.
22
23
24Pre-Installation Configuration
25------------------------------
26
27Config File Options
28~~~~~~~~~~~~~~~~~~~
29
30The following options can be modified in the ``config`` file.
31Please note that enabling debugging options may affect system performance.
32
33- ``CONFIG_RTE_LIBRTE_ICE_PMD`` (default ``y``)
34
35  Toggle compilation of the ``librte_pmd_ice`` driver.
36
37- ``CONFIG_RTE_LIBRTE_ICE_DEBUG_*`` (default ``n``)
38
39  Toggle display of generic debugging messages.
40
41- ``CONFIG_RTE_LIBRTE_ICE_RX_ALLOW_BULK_ALLOC`` (default ``y``)
42
43  Toggle bulk allocation for RX.
44
45- ``CONFIG_RTE_LIBRTE_ICE_16BYTE_RX_DESC`` (default ``n``)
46
47  Toggle to use a 16-byte RX descriptor, by default the RX descriptor is 32 byte.
48
49Runtime Config Options
50~~~~~~~~~~~~~~~~~~~~~~
51
52- ``Maximum Number of Queue Pairs``
53
54  The maximum number of queue pairs is decided by HW. If not configured, APP
55  uses the number from HW. Users can check the number by calling the API
56  ``rte_eth_dev_info_get``.
57  If users want to limit the number of queues, they can set a smaller number
58  using EAL parameter like ``max_queue_pair_num=n``.
59
60
61Driver compilation and testing
62------------------------------
63
64Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
65for details.
66
67Features
68--------
69
70Vector PMD
71~~~~~~~~~~
72
73Vector PMD for RX and TX path are selected automatically. The paths
74are chosen based on 2 conditions.
75
76- ``CPU``
77  On the X86 platform, the driver checks if the CPU supports AVX2.
78  If it's supported, AVX2 paths will be chosen. If not, SSE is chosen.
79
80- ``Offload features``
81  The supported HW offload features are described in the document ice_vec.ini.
82  If any not supported features are used, ICE vector PMD is disabled and the
83  normal paths are chosen.
84
85Sample Application Notes
86------------------------
87
88Vlan filter
89~~~~~~~~~~~
90
91Vlan filter only works when Promiscuous mode is off.
92
93To start ``testpmd``, and add vlan 10 to port 0:
94
95.. code-block:: console
96
97    ./app/testpmd -l 0-15 -n 4 -- -i
98    ...
99
100    testpmd> rx_vlan add 10 0
101
102Limitations or Known issues
103---------------------------
104
105The Intel E810 requires a programmable pipeline package be downloaded
106by the driver to support normal operations. The E810 has a limited
107functionality built in to allow PXE boot and other use cases, but the
108driver must download a package file during the driver initialization
109stage. The file must be in the /lib/firmware/intel/ice/ddp directory
110and it must be named ice.pkg. A symbolic link to this file is also ok.
111The same package file is used by both the kernel driver and the DPDK PMD.
112
113
11419.02 limitation
115~~~~~~~~~~~~~~~~
116
117Ice code released in 19.02 is for evaluation only.
118