1 .. SPDX-License-Identifier: BSD-3-Clause
2 Copyright(c) 2018-2019 HiSilicon Limited.
5 ===============================
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 and Kunpeng 930 SoC .
14 Features of the HNS3 PMD are:
16 - Multiple queues for TX and RX
17 - Receive Side Scaling (RSS)
18 - Packet type information
24 - Port hardware statistics
26 - Link state information
27 - Interrupt mode for RX
28 - VLAN stripping and inserting
31 - Scattered and gather for TX and RX
32 - Vector Poll mode driver
40 - IEEE1588/802.1AS timestamping
44 - Get the information about Kunpeng920 chip using
45 `<https://www.hisilicon.com/en/products/Kunpeng>`_.
47 - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to
48 setup the basic DPDK environment.
51 Pre-Installation Configuration
52 ------------------------------
57 The following options can be modified in the ``config/rte_config.h`` file.
59 - ``RTE_LIBRTE_HNS3_MAX_TQP_NUM_PER_PF`` (default ``256``)
61 Number of MAX queues reserved for PF.
63 Runtime Config Options
64 ~~~~~~~~~~~~~~~~~~~~~~
66 - ``rx_func_hint`` (default ``none``)
68 Used to select Rx burst function, supported value are ``vec``, ``sve``,
69 ``simple``, ``common``.
70 ``vec``, if supported use the ``vec`` Rx function which indicates the
71 default vector algorithm, neon for Kunpeng Arm platform.
72 ``sve``, if supported use the ``sve`` Rx function which indicates the
74 ``simple``, if supported use the ``simple`` Rx function which indicates
75 the scalar simple algorithm.
76 ``common``, if supported use the ``common`` Rx function which indicates
77 the scalar scattered algorithm.
79 When provided parameter is not supported, ``vec`` usage condition will
80 be first checked, if meets, use the ``vec``. Then, ``simple``, at last
84 -a 0000:7d:00.0,rx_func_hint=simple
86 - ``tx_func_hint`` (default ``none``)
88 Used to select Tx burst function, supported value are ``vec``, ``sve``,
89 ``simple``, ``common``.
90 ``vec``, if supported use the ``vec`` Tx function which indicates the
91 default vector algorithm, neon for Kunpeng Arm platform.
92 ``sve``, if supported use the ``sve`` Tx function which indicates the
94 ``simple``, if supported use the ``simple`` Tx function which indicates
95 the scalar simple algorithm.
96 ``common``, if supported use the ``common`` Tx function which indicates
99 When provided parameter is not supported, ``vec`` usage condition will
100 be first checked, if meets, use the ``vec``. Then, ``simple``, at last
104 -a 0000:7d:00.0,tx_func_hint=common
106 - ``dev_caps_mask`` (default ``0``)
108 Used to mask the capability which queried from firmware.
109 This args take hexadecimal bitmask where each bit represents whether mask
110 corresponding capability. eg. If the capability is 0xFFFF queried from
111 firmware, and the args value is 0xF which means the bit0~bit3 should be
112 masked off, then the capability will be 0xFFF0.
113 Its main purpose is to debug and avoid problems.
116 -a 0000:7d:00.0,dev_caps_mask=0xF
118 Driver compilation and testing
119 ------------------------------
121 Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
124 Limitations or Known issues
125 ---------------------------
126 Currently, we only support VF device is bound to vfio_pci or
127 igb_uio and then driven by DPDK driver when PF is driven by
128 kernel mode hns3 ethdev driver, VF is not supported when PF
129 is driven by DPDK driver.
131 Build with ICC is not supported yet.
132 X86-32, Power8, ARMv7 and BSD are not supported yet.