xref: /dpdk/doc/guides/nics/hns3.rst (revision 68a03efeed657e6e05f281479b33b51102797e15)
1..  SPDX-License-Identifier: BSD-3-Clause
2    Copyright(c) 2018-2019 Hisilicon Limited.
3
4HNS3 Poll Mode Driver
5===============================
6
7The hns3 PMD (**librte_net_hns3**) provides poll mode driver support
8for the inbuilt Hisilicon Network Subsystem(HNS) network engine
9found in the Hisilicon Kunpeng 920 SoC.
10
11Features
12--------
13
14Features 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
41Prerequisites
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
49Runtime 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
86Driver compilation and testing
87------------------------------
88
89Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
90for details.
91
92Limitations or Known issues
93---------------------------
94Currently, we only support VF device is bound to vfio_pci or
95igb_uio and then driven by DPDK driver when PF is driven by
96kernel mode hns3 ethdev driver, VF is not supported when PF
97is driven by DPDK driver.
98
99Build with ICC is not supported yet.
100X86-32, Power8, ARMv7 and BSD are not supported yet.
101