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