+- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to
+ setup the basic DPDK environment.
+
+
+Pre-Installation Configuration
+------------------------------
+
+Config File Options
+~~~~~~~~~~~~~~~~~~~
+
+The following options can be modified in the ``config/rte_config.h`` file.
+
+- ``RTE_LIBRTE_HNS3_MAX_TQP_NUM_PER_PF`` (default ``256``)
+
+ Number of MAX queues reserved for PF.
+
+Runtime Config Options
+~~~~~~~~~~~~~~~~~~~~~~
+
+- ``rx_func_hint`` (default ``none``)
+
+ Used to select Rx burst function, supported value are ``vec``, ``sve``,
+ ``simple``, ``common``.
+ ``vec``, if supported use the ``vec`` Rx function which indicates the
+ default vector algorithm, neon for Kunpeng Arm platform.
+ ``sve``, if supported use the ``sve`` Rx function which indicates the
+ sve algorithm.
+ ``simple``, if supported use the ``simple`` Rx function which indicates
+ the scalar simple algorithm.
+ ``common``, if supported use the ``common`` Rx function which indicates
+ the scalar scattered algorithm.
+
+ When provided parameter is not supported, ``vec`` usage condition will
+ be first checked, if meets, use the ``vec``. Then, ``simple``, at last
+ ``common``.
+
+ For example::
+ -a 0000:7d:00.0,rx_func_hint=simple
+
+- ``tx_func_hint`` (default ``none``)
+
+ Used to select Tx burst function, supported value are ``vec``, ``sve``,
+ ``simple``, ``common``.
+ ``vec``, if supported use the ``vec`` Tx function which indicates the
+ default vector algorithm, neon for Kunpeng Arm platform.
+ ``sve``, if supported use the ``sve`` Tx function which indicates the
+ sve algorithm.
+ ``simple``, if supported use the ``simple`` Tx function which indicates
+ the scalar simple algorithm.
+ ``common``, if supported use the ``common`` Tx function which indicates
+ the scalar algorithm.
+
+ When provided parameter is not supported, ``vec`` usage condition will
+ be first checked, if meets, use the ``vec``. Then, ``simple``, at last
+ ``common``.
+
+ For example::
+ -a 0000:7d:00.0,tx_func_hint=common
+
+- ``dev_caps_mask`` (default ``0``)
+
+ Used to mask the capability which queried from firmware.
+ This args take hexadecimal bitmask where each bit represents whether mask
+ corresponding capability. eg. If the capability is 0xFFFF queried from
+ firmware, and the args value is 0xF which means the bit0~bit3 should be
+ masked off, then the capability will be 0xFFF0.
+ Its main purpose is to debug and avoid problems.
+
+ For example::
+ -a 0000:7d:00.0,dev_caps_mask=0xF
+
+- ``mbx_time_limit_ms`` (default ``500``)
+ Used to define the mailbox time limit by user.
+ Current, the max waiting time for MBX response is 500ms, but in
+ some scenarios, it is not enough. Since it depends on the response
+ of the kernel mode driver, and its response time is related to the
+ scheduling of the system. In this special scenario, most of the
+ cores are isolated, and only a few cores are used for system
+ scheduling. When a large number of services are started, the
+ scheduling of the system will be very busy, and the reply of the
+ mbx message will time out, which will cause our PMD initialization
+ to fail. So provide access to set mailbox time limit for user.
+
+ For example::
+ -a 0000:7d:00.0,mbx_time_limit_ms=600
+
+Link status event Pre-conditions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Firmware 1.8.0.0 and later versions support reporting link changes to the PF.
+Therefore, to use the LSC for the PF driver, ensure that the firmware version
+also supports reporting link changes.
+If the VF driver needs to support LSC, special patch must be added:
+`<https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/net/ethernet/hisilicon/hns3?h=next-20210428&id=18b6e31f8bf4ac7af7b057228f38a5a530378e4e>`_.
+Note: The patch has been uploaded to 5.13 of the Linux kernel mainline.