3366562968f504156e9475adec62d82658992063
[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 - IEEE1588/802.1AS timestamping
41
42 Prerequisites
43 -------------
44 - Get the information about Kunpeng920 chip using
45   `<https://www.hisilicon.com/en/products/Kunpeng>`_.
46
47 - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
48
49
50 Runtime Config Options
51 ----------------------
52
53 - ``rx_func_hint`` (default ``none``)
54
55   Used to select Rx burst function, supported value are ``vec``, ``sve``,
56   ``simple``, ``common``.
57   ``vec``, if supported use the ``vec`` Rx function which indicates the
58   default vector algorithm, neon for Kunpeng Arm platform.
59   ``sve``, if supported use the ``sve`` Rx function which indicates the
60   sve algorithm.
61   ``simple``, if supported use the ``simple`` Rx function which indicates
62   the scalar algorithm.
63   ``common``, if supported use the ``common`` Rx function which indicates
64   the scalar scattered algorithm.
65
66   When provided parameter is not supported, ``vec`` usage condition will
67   be first checked, if meets, use the ``vec``. Then, ``simple``, at last
68   ``common``.
69
70 - ``tx_func_hint`` (default ``none``)
71
72   Used to select Tx burst function, supported value are ``vec``, ``sve``,
73   ``simple``, ``common``.
74   ``vec``, if supported use the ``vec`` Tx function which indicates the
75   default vector algorithm, neon for Kunpeng Arm platform.
76   ``sve``, if supported use the ``sve`` Tx function which indicates the
77   sve algorithm.
78   ``simple``, if supported use the ``simple`` Tx function which indicates
79   the scalar simple algorithm.
80   ``common``, if supported use the ``common`` Tx function which indicates
81   the scalar algorithm.
82
83   When provided parameter is not supported, ``vec`` usage condition will
84   be first checked, if meets, use the ``vec``. Then, ``simple``, at last
85   ``common``.
86
87 Driver compilation and testing
88 ------------------------------
89
90 Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
91 for details.
92
93 Limitations or Known issues
94 ---------------------------
95 Currently, we only support VF device is bound to vfio_pci or
96 igb_uio and then driven by DPDK driver when PF is driven by
97 kernel mode hns3 ethdev driver, VF is not supported when PF
98 is driven by DPDK driver.
99
100 Build with ICC is not supported yet.
101 X86-32, Power8, ARMv7 and BSD are not supported yet.