net/hns3: add runtime config to select IO burst function
[dpdk.git] / doc / guides / nics / hns3.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright(c) 2018-2019 Hisilicon Limited.
3
4 HNS3 Poll Mode Driver
5 ===============================
6
7 The hns3 PMD (**librte_net_hns3**) provides poll mode driver support
8 for the inbuilt Hisilicon Network Subsystem(HNS) network engine
9 found in the Hisilicon Kunpeng 920 SoC.
10
11 Features
12 --------
13
14 Features of the HNS3 PMD are:
15
16 - Multiple queues for TX and RX
17 - Receive Side Scaling (RSS)
18 - Packet type information
19 - Checksum offload
20 - TSO offload
21 - LRO offload
22 - Promiscuous mode
23 - Multicast mode
24 - Port hardware statistics
25 - Jumbo frames
26 - Link state information
27 - Interrupt mode for RX
28 - VLAN stripping and inserting
29 - QinQ inserting
30 - DCB
31 - Scattered and gather for TX and RX
32 - Vector Poll mode driver
33 - Dump register
34 - SR-IOV VF
35 - Multi-process
36 - MAC/VLAN filter
37 - MTU update
38 - NUMA support
39 - Generic flow API
40
41 Prerequisites
42 -------------
43 - Get the information about Kunpeng920 chip using
44   `<https://www.hisilicon.com/en/products/Kunpeng>`_.
45
46 - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
47
48
49 Runtime Config Options
50 ----------------------
51
52 - ``rx_func_hint`` (default ``none``)
53
54   Used to select Rx burst function, supported value are ``vec``, ``sve``,
55   ``simple``, ``common``.
56   ``vec``, if supported use the ``vec`` Rx function which indicates the
57   default vector algorithm, neon for Kunpeng Arm platform.
58   ``sve``, if supported use the ``sve`` Rx function which indicates the
59   sve algorithm.
60   ``simple``, if supported use the ``simple`` Rx function which indicates
61   the scalar algorithm.
62   ``common``, if supported use the ``common`` Rx function which indicates
63   the scalar scattered algorithm.
64
65   When provided parameter is not supported, ``vec`` usage condition will
66   be first checked, if meets, use the ``vec``. Then, ``simple``, at last
67   ``common``.
68
69 - ``tx_func_hint`` (default ``none``)
70
71   Used to select Tx burst function, supported value are ``vec``, ``sve``,
72   ``simple``, ``common``.
73   ``vec``, if supported use the ``vec`` Tx function which indicates the
74   default vector algorithm, neon for Kunpeng Arm platform.
75   ``sve``, if supported use the ``sve`` Tx function which indicates the
76   sve algorithm.
77   ``simple``, if supported use the ``simple`` Tx function which indicates
78   the scalar simple algorithm.
79   ``common``, if supported use the ``common`` Tx function which indicates
80   the scalar algorithm.
81
82   When provided parameter is not supported, ``vec`` usage condition will
83   be first checked, if meets, use the ``vec``. Then, ``simple``, at last
84   ``common``.
85
86 Driver compilation and testing
87 ------------------------------
88
89 Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
90 for details.
91
92 Limitations or Known issues
93 ---------------------------
94 Currently, we only support VF device is bound to vfio_pci or
95 igb_uio and then driven by DPDK driver when PF is driven by
96 kernel mode hns3 ethdev driver, VF is not supported when PF
97 is driven by DPDK driver.
98
99 Build with ICC is not supported yet.
100 X86-32, Power8, ARMv7 and BSD are not supported yet.