eal: replace blacklist/whitelist options
Replace -w / --pci-whitelist with -a / --allow options and --pci-blacklist with --block. The -b short option remains unchanged. Allow the old options for now, but print a nag warning since old options are deprecated. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Luca Boccassi <bluca@debian.org> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
parent
a65a34a85e
commit
db27370b57
@ -61,7 +61,7 @@ do_recursive_call(void)
|
|||||||
{ "test_main_lcore_flag", no_action },
|
{ "test_main_lcore_flag", no_action },
|
||||||
{ "test_invalid_n_flag", no_action },
|
{ "test_invalid_n_flag", no_action },
|
||||||
{ "test_no_hpet_flag", no_action },
|
{ "test_no_hpet_flag", no_action },
|
||||||
{ "test_whitelist_flag", no_action },
|
{ "test_allow_flag", no_action },
|
||||||
{ "test_invalid_b_flag", no_action },
|
{ "test_invalid_b_flag", no_action },
|
||||||
{ "test_invalid_vdev_flag", no_action },
|
{ "test_invalid_vdev_flag", no_action },
|
||||||
{ "test_invalid_r_flag", no_action },
|
{ "test_invalid_r_flag", no_action },
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
#define no_hpet "--no-hpet"
|
#define no_hpet "--no-hpet"
|
||||||
#define no_huge "--no-huge"
|
#define no_huge "--no-huge"
|
||||||
#define no_shconf "--no-shconf"
|
#define no_shconf "--no-shconf"
|
||||||
#define pci_whitelist "--pci-whitelist"
|
#define allow "--allow"
|
||||||
#define vdev "--vdev"
|
#define vdev "--vdev"
|
||||||
#define memtest "memtest"
|
#define memtest "memtest"
|
||||||
#define memtest1 "memtest1"
|
#define memtest1 "memtest1"
|
||||||
@ -223,12 +223,12 @@ get_number_of_sockets(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Test that the app doesn't run with invalid whitelist option.
|
* Test that the app doesn't run with invalid allow option.
|
||||||
* Final tests ensures it does run with valid options as sanity check (one
|
* Final tests ensures it does run with valid options as sanity check (one
|
||||||
* test for with Domain+BDF, second for just with BDF)
|
* test for with Domain+BDF, second for just with BDF)
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
test_whitelist_flag(void)
|
test_allow_flag(void)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
#ifdef RTE_EXEC_ENV_FREEBSD
|
#ifdef RTE_EXEC_ENV_FREEBSD
|
||||||
@ -245,45 +245,45 @@ test_whitelist_flag(void)
|
|||||||
|
|
||||||
const char *wlinval[][7] = {
|
const char *wlinval[][7] = {
|
||||||
{prgname, prefix, mp_flag,
|
{prgname, prefix, mp_flag,
|
||||||
pci_whitelist, "error", "", ""},
|
allow, "error", "", ""},
|
||||||
{prgname, prefix, mp_flag,
|
{prgname, prefix, mp_flag,
|
||||||
pci_whitelist, "0:0:0", "", ""},
|
allow, "0:0:0", "", ""},
|
||||||
{prgname, prefix, mp_flag,
|
{prgname, prefix, mp_flag,
|
||||||
pci_whitelist, "0:error:0.1", "", ""},
|
allow, "0:error:0.1", "", ""},
|
||||||
{prgname, prefix, mp_flag,
|
{prgname, prefix, mp_flag,
|
||||||
pci_whitelist, "0:0:0.1error", "", ""},
|
allow, "0:0:0.1error", "", ""},
|
||||||
{prgname, prefix, mp_flag,
|
{prgname, prefix, mp_flag,
|
||||||
pci_whitelist, "error0:0:0.1", "", ""},
|
allow, "error0:0:0.1", "", ""},
|
||||||
{prgname, prefix, mp_flag,
|
{prgname, prefix, mp_flag,
|
||||||
pci_whitelist, "0:0:0.1.2", "", ""},
|
allow, "0:0:0.1.2", "", ""},
|
||||||
};
|
};
|
||||||
/* Test with valid whitelist option */
|
/* Test with valid allow option */
|
||||||
const char *wlval1[] = {prgname, prefix, mp_flag,
|
const char *wlval1[] = {prgname, prefix, mp_flag,
|
||||||
pci_whitelist, "00FF:09:0B.3"};
|
allow, "00FF:09:0B.3"};
|
||||||
const char *wlval2[] = {prgname, prefix, mp_flag,
|
const char *wlval2[] = {prgname, prefix, mp_flag,
|
||||||
pci_whitelist, "09:0B.3", pci_whitelist, "0a:0b.1"};
|
allow, "09:0B.3", allow, "0a:0b.1"};
|
||||||
const char *wlval3[] = {prgname, prefix, mp_flag,
|
const char *wlval3[] = {prgname, prefix, mp_flag,
|
||||||
pci_whitelist, "09:0B.3,type=test",
|
allow, "09:0B.3,type=test",
|
||||||
pci_whitelist, "08:00.1,type=normal",
|
allow, "08:00.1,type=normal",
|
||||||
};
|
};
|
||||||
|
|
||||||
for (i = 0; i < RTE_DIM(wlinval); i++) {
|
for (i = 0; i < RTE_DIM(wlinval); i++) {
|
||||||
if (launch_proc(wlinval[i]) == 0) {
|
if (launch_proc(wlinval[i]) == 0) {
|
||||||
printf("Error - process did run ok with invalid "
|
printf("Error - process did run ok with invalid "
|
||||||
"whitelist parameter\n");
|
"allow parameter\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (launch_proc(wlval1) != 0 ) {
|
if (launch_proc(wlval1) != 0 ) {
|
||||||
printf("Error - process did not run ok with valid whitelist\n");
|
printf("Error - process did not run ok with valid allow\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (launch_proc(wlval2) != 0 ) {
|
if (launch_proc(wlval2) != 0 ) {
|
||||||
printf("Error - process did not run ok with valid whitelist value set\n");
|
printf("Error - process did not run ok with valid allow value set\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (launch_proc(wlval3) != 0 ) {
|
if (launch_proc(wlval3) != 0 ) {
|
||||||
printf("Error - process did not run ok with valid whitelist + args\n");
|
printf("Error - process did not run ok with valid allow + args\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -291,7 +291,7 @@ test_whitelist_flag(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Test that the app doesn't run with invalid blacklist option.
|
* Test that the app doesn't run with invalid blocklist option.
|
||||||
* Final test ensures it does run with valid options as sanity check
|
* Final test ensures it does run with valid options as sanity check
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
@ -317,7 +317,7 @@ test_invalid_b_flag(void)
|
|||||||
{prgname, prefix, mp_flag, "-b", "error0:0:0.1"},
|
{prgname, prefix, mp_flag, "-b", "error0:0:0.1"},
|
||||||
{prgname, prefix, mp_flag, "-b", "0:0:0.1.2"},
|
{prgname, prefix, mp_flag, "-b", "0:0:0.1.2"},
|
||||||
};
|
};
|
||||||
/* Test with valid blacklist option */
|
/* Test with valid blocklist option */
|
||||||
const char *blval[] = {prgname, prefix, mp_flag,
|
const char *blval[] = {prgname, prefix, mp_flag,
|
||||||
"-b", "FF:09:0B.3"};
|
"-b", "FF:09:0B.3"};
|
||||||
|
|
||||||
@ -326,12 +326,12 @@ test_invalid_b_flag(void)
|
|||||||
for (i = 0; i != RTE_DIM(blinval); i++) {
|
for (i = 0; i != RTE_DIM(blinval); i++) {
|
||||||
if (launch_proc(blinval[i]) == 0) {
|
if (launch_proc(blinval[i]) == 0) {
|
||||||
printf("Error - process did run ok with invalid "
|
printf("Error - process did run ok with invalid "
|
||||||
"blacklist parameter\n");
|
"blocklist parameter\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (launch_proc(blval) != 0) {
|
if (launch_proc(blval) != 0) {
|
||||||
printf("Error - process did not run ok with valid blacklist value\n");
|
printf("Error - process did not run ok with valid blocklist value\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -419,7 +419,7 @@ test_invalid_r_flag(void)
|
|||||||
{prgname, prefix, mp_flag, "-r", "-1"},
|
{prgname, prefix, mp_flag, "-r", "-1"},
|
||||||
{prgname, prefix, mp_flag, "-r", "17"},
|
{prgname, prefix, mp_flag, "-r", "17"},
|
||||||
};
|
};
|
||||||
/* Test with valid blacklist option */
|
/* Test with valid blocklist option */
|
||||||
const char *rval[] = {prgname, prefix, mp_flag, "-r", "16"};
|
const char *rval[] = {prgname, prefix, mp_flag, "-r", "16"};
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
@ -1492,9 +1492,9 @@ test_eal_flags(void)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = test_whitelist_flag();
|
ret = test_allow_flag();
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
printf("Error in test_invalid_whitelist_flag()\n");
|
printf("Error in test_allow_flag()\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1546,7 +1546,8 @@ REGISTER_TEST_COMMAND(eal_flags_main_opt_autotest, test_main_lcore_flag);
|
|||||||
REGISTER_TEST_COMMAND(eal_flags_n_opt_autotest, test_invalid_n_flag);
|
REGISTER_TEST_COMMAND(eal_flags_n_opt_autotest, test_invalid_n_flag);
|
||||||
REGISTER_TEST_COMMAND(eal_flags_hpet_autotest, test_no_hpet_flag);
|
REGISTER_TEST_COMMAND(eal_flags_hpet_autotest, test_no_hpet_flag);
|
||||||
REGISTER_TEST_COMMAND(eal_flags_no_huge_autotest, test_no_huge_flag);
|
REGISTER_TEST_COMMAND(eal_flags_no_huge_autotest, test_no_huge_flag);
|
||||||
REGISTER_TEST_COMMAND(eal_flags_w_opt_autotest, test_whitelist_flag);
|
REGISTER_TEST_COMMAND(eal_flags_w_opt_autotest, test_allow_flag); /* for legacy CI */
|
||||||
|
REGISTER_TEST_COMMAND(eal_flags_a_opt_autotest, test_allow_flag);
|
||||||
REGISTER_TEST_COMMAND(eal_flags_b_opt_autotest, test_invalid_b_flag);
|
REGISTER_TEST_COMMAND(eal_flags_b_opt_autotest, test_invalid_b_flag);
|
||||||
REGISTER_TEST_COMMAND(eal_flags_vdev_opt_autotest, test_invalid_vdev_flag);
|
REGISTER_TEST_COMMAND(eal_flags_vdev_opt_autotest, test_invalid_vdev_flag);
|
||||||
REGISTER_TEST_COMMAND(eal_flags_r_opt_autotest, test_invalid_r_flag);
|
REGISTER_TEST_COMMAND(eal_flags_r_opt_autotest, test_invalid_r_flag);
|
||||||
|
@ -28,5 +28,5 @@ fi
|
|||||||
|
|
||||||
(sleep 1 && echo stop) |
|
(sleep 1 && echo stop) |
|
||||||
$testpmd -c $coremask --no-huge -m 20 \
|
$testpmd -c $coremask --no-huge -m 20 \
|
||||||
$libs -w 0:0.0 --vdev net_null1 --vdev net_null2 $eal_options -- \
|
$libs -a 0:0.0 --vdev net_null1 --vdev net_null2 $eal_options -- \
|
||||||
--no-mlockall --total-num-mbufs=2048 $testpmd_options -ia
|
--no-mlockall --total-num-mbufs=2048 $testpmd_options -ia
|
||||||
|
@ -241,4 +241,4 @@ Specifically for the BBDEV ACC100 PMD, the command below can be used:
|
|||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./pf_bb_config ACC100 -c acc100/acc100_config_vf_5g.cfg
|
./pf_bb_config ACC100 -c acc100/acc100_config_vf_5g.cfg
|
||||||
./test-bbdev.py -e="-c 0xff0 -w${VF_PCI_ADDR}" -c validation -n 64 -b 32 -l 1 -v ./ldpc_dec_default.data
|
./test-bbdev.py -e="-c 0xff0 -a${VF_PCI_ADDR}" -c validation -n 64 -b 32 -l 1 -v ./ldpc_dec_default.data
|
||||||
|
@ -304,4 +304,4 @@ Specifically for the BBDEV FPGA 5GNR FEC PMD, the command below can be used:
|
|||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./pf_bb_config FPGA_5GNR -c fpga_5gnr/fpga_5gnr_config_vf.cfg
|
./pf_bb_config FPGA_5GNR -c fpga_5gnr/fpga_5gnr_config_vf.cfg
|
||||||
./test-bbdev.py -e="-c 0xff0 -w${VF_PCI_ADDR}" -c validation -n 64 -b 32 -l 1 -v ./ldpc_dec_default.data
|
./test-bbdev.py -e="-c 0xff0 -a${VF_PCI_ADDR}" -c validation -n 64 -b 32 -l 1 -v ./ldpc_dec_default.data
|
||||||
|
@ -323,4 +323,4 @@ Specifically for the BBDEV FPGA LTE FEC PMD, the command below can be used:
|
|||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./pf_bb_config FPGA_LTE -c fpga_lte/fpga_lte_config_vf.cfg
|
./pf_bb_config FPGA_LTE -c fpga_lte/fpga_lte_config_vf.cfg
|
||||||
./test-bbdev.py -e="-c 0xff0 -w${VF_PCI_ADDR}" -c validation -n 64 -b 32 -l 1 -v ./turbo_dec_default.data
|
./test-bbdev.py -e="-c 0xff0 -a${VF_PCI_ADDR}" -c validation -n 64 -b 32 -l 1 -v ./turbo_dec_default.data
|
||||||
|
@ -134,10 +134,10 @@ Supported DPAA2 SoCs
|
|||||||
* LS2088A/LS2048A
|
* LS2088A/LS2048A
|
||||||
* LS1088A/LS1048A
|
* LS1088A/LS1048A
|
||||||
|
|
||||||
Whitelisting & Blacklisting
|
Allowing & Blocking
|
||||||
---------------------------
|
-------------------
|
||||||
|
|
||||||
For blacklisting a DPAA2 SEC device, following commands can be used.
|
The DPAA2 SEC device can be blocked with the following:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
|
@ -82,10 +82,10 @@ Supported DPAA SoCs
|
|||||||
* LS1046A/LS1026A
|
* LS1046A/LS1026A
|
||||||
* LS1043A/LS1023A
|
* LS1043A/LS1023A
|
||||||
|
|
||||||
Whitelisting & Blacklisting
|
Allowing & Blocking
|
||||||
---------------------------
|
-------------------
|
||||||
|
|
||||||
For blacklisting a DPAA device, following commands can be used.
|
For blocking a DPAA device, following commands can be used.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ Limitations
|
|||||||
optimisations in the GEN3 device. And if a GCM session is initialised on a
|
optimisations in the GEN3 device. And if a GCM session is initialised on a
|
||||||
GEN3 device, then attached to an op sent to a GEN1/GEN2 device, it will not be
|
GEN3 device, then attached to an op sent to a GEN1/GEN2 device, it will not be
|
||||||
enqueued to the device and will be marked as failed. The simplest way to
|
enqueued to the device and will be marked as failed. The simplest way to
|
||||||
mitigate this is to use the bdf whitelist to avoid mixing devices of different
|
mitigate this is to use the PCI allowlist to avoid mixing devices of different
|
||||||
generations in the same process if planning to use for GCM.
|
generations in the same process if planning to use for GCM.
|
||||||
* The mixed algo feature on GEN2 is not supported by all kernel drivers. Check
|
* The mixed algo feature on GEN2 is not supported by all kernel drivers. Check
|
||||||
the notes under the Available Kernel Drivers table below for specific details.
|
the notes under the Available Kernel Drivers table below for specific details.
|
||||||
@ -237,7 +237,7 @@ adjusted to the number of VFs which the QAT common code will need to handle.
|
|||||||
QAT VF may expose two crypto devices, sym and asym, it may happen that the
|
QAT VF may expose two crypto devices, sym and asym, it may happen that the
|
||||||
number of devices will be bigger than MAX_DEVS and the process will show an error
|
number of devices will be bigger than MAX_DEVS and the process will show an error
|
||||||
during PMD initialisation. To avoid this problem RTE_CRYPTO_MAX_DEVS may be
|
during PMD initialisation. To avoid this problem RTE_CRYPTO_MAX_DEVS may be
|
||||||
increased or -w, pci-whitelist domain:bus:devid:func option may be used.
|
increased or -a, allow domain:bus:devid:func option may be used.
|
||||||
|
|
||||||
|
|
||||||
QAT compression PMD needs intermediate buffers to support Deflate compression
|
QAT compression PMD needs intermediate buffers to support Deflate compression
|
||||||
@ -275,7 +275,7 @@ return 0 (thereby avoiding an MMIO) if the device is congested and number of pac
|
|||||||
possible to enqueue is smaller.
|
possible to enqueue is smaller.
|
||||||
To use this feature the user must set the parameter on process start as a device additional parameter::
|
To use this feature the user must set the parameter on process start as a device additional parameter::
|
||||||
|
|
||||||
-w 03:01.1,qat_sym_enq_threshold=32,qat_comp_enq_threshold=16
|
-a 03:01.1,qat_sym_enq_threshold=32,qat_comp_enq_threshold=16
|
||||||
|
|
||||||
All parameters can be used with the same device regardless of order. Parameters are separated
|
All parameters can be used with the same device regardless of order. Parameters are separated
|
||||||
by comma. When the same parameter is used more than once first occurrence of the parameter
|
by comma. When the same parameter is used more than once first occurrence of the parameter
|
||||||
@ -638,19 +638,19 @@ Testing
|
|||||||
QAT SYM crypto PMD can be tested by running the test application::
|
QAT SYM crypto PMD can be tested by running the test application::
|
||||||
|
|
||||||
cd ./<build_dir>/app/test
|
cd ./<build_dir>/app/test
|
||||||
./dpdk-test -l1 -n1 -w <your qat bdf>
|
./dpdk-test -l1 -n1 -a <your qat bdf>
|
||||||
RTE>>cryptodev_qat_autotest
|
RTE>>cryptodev_qat_autotest
|
||||||
|
|
||||||
QAT ASYM crypto PMD can be tested by running the test application::
|
QAT ASYM crypto PMD can be tested by running the test application::
|
||||||
|
|
||||||
cd ./<build_dir>/app/test
|
cd ./<build_dir>/app/test
|
||||||
./dpdk-test -l1 -n1 -w <your qat bdf>
|
./dpdk-test -l1 -n1 -a <your qat bdf>
|
||||||
RTE>>cryptodev_qat_asym_autotest
|
RTE>>cryptodev_qat_asym_autotest
|
||||||
|
|
||||||
QAT compression PMD can be tested by running the test application::
|
QAT compression PMD can be tested by running the test application::
|
||||||
|
|
||||||
cd ./<build_dir>/app/test
|
cd ./<build_dir>/app/test
|
||||||
./dpdk-test -l1 -n1 -w <your qat bdf>
|
./dpdk-test -l1 -n1 -a <your qat bdf>
|
||||||
RTE>>compressdev_autotest
|
RTE>>compressdev_autotest
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ Runtime Config Options
|
|||||||
upper limit for in-flight events.
|
upper limit for in-flight events.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:0e:00.0,xae_cnt=16384
|
-a 0002:0e:00.0,xae_cnt=16384
|
||||||
|
|
||||||
- ``Force legacy mode``
|
- ``Force legacy mode``
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ Runtime Config Options
|
|||||||
single workslot mode in SSO and disable the default dual workslot mode.
|
single workslot mode in SSO and disable the default dual workslot mode.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:0e:00.0,single_ws=1
|
-a 0002:0e:00.0,single_ws=1
|
||||||
|
|
||||||
- ``Event Group QoS support``
|
- ``Event Group QoS support``
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ Runtime Config Options
|
|||||||
default.
|
default.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:0e:00.0,qos=[1-50-50-50]
|
-a 0002:0e:00.0,qos=[1-50-50-50]
|
||||||
|
|
||||||
- ``Selftest``
|
- ``Selftest``
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ Runtime Config Options
|
|||||||
The tests are run once the vdev creation is successfully complete.
|
The tests are run once the vdev creation is successfully complete.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:0e:00.0,selftest=1
|
-a 0002:0e:00.0,selftest=1
|
||||||
|
|
||||||
- ``TIM disable NPA``
|
- ``TIM disable NPA``
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ Runtime Config Options
|
|||||||
parameter disables NPA and uses software mempool to manage chunks
|
parameter disables NPA and uses software mempool to manage chunks
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:0e:00.0,tim_disable_npa=1
|
-a 0002:0e:00.0,tim_disable_npa=1
|
||||||
|
|
||||||
- ``TIM modify chunk slots``
|
- ``TIM modify chunk slots``
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ Runtime Config Options
|
|||||||
to SSO. The default value is 255 and the max value is 4095.
|
to SSO. The default value is 255 and the max value is 4095.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:0e:00.0,tim_chnk_slots=1023
|
-a 0002:0e:00.0,tim_chnk_slots=1023
|
||||||
|
|
||||||
- ``TIM enable arm/cancel statistics``
|
- ``TIM enable arm/cancel statistics``
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ Runtime Config Options
|
|||||||
event timer adapter.
|
event timer adapter.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:0e:00.0,tim_stats_ena=1
|
-a 0002:0e:00.0,tim_stats_ena=1
|
||||||
|
|
||||||
- ``TIM limit max rings reserved``
|
- ``TIM limit max rings reserved``
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ Runtime Config Options
|
|||||||
rings.
|
rings.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:0e:00.0,tim_rings_lmt=5
|
-a 0002:0e:00.0,tim_rings_lmt=5
|
||||||
|
|
||||||
- ``TIM ring control internal parameters``
|
- ``TIM ring control internal parameters``
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ Runtime Config Options
|
|||||||
default values.
|
default values.
|
||||||
For Example::
|
For Example::
|
||||||
|
|
||||||
-w 0002:0e:00.0,tim_ring_ctl=[2-1023-1-0]
|
-a 0002:0e:00.0,tim_ring_ctl=[2-1023-1-0]
|
||||||
|
|
||||||
- ``Lock NPA contexts in NDC``
|
- ``Lock NPA contexts in NDC``
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:0e:00.0,npa_lock_mask=0xf
|
-a 0002:0e:00.0,npa_lock_mask=0xf
|
||||||
|
|
||||||
Debugging Options
|
Debugging Options
|
||||||
-----------------
|
-----------------
|
||||||
|
@ -67,7 +67,7 @@ DPDK application. Some of the EAL options for FreeBSD are as follows:
|
|||||||
is a list of cores to use instead of a core mask.
|
is a list of cores to use instead of a core mask.
|
||||||
|
|
||||||
* ``-b <domain:bus:devid.func>``:
|
* ``-b <domain:bus:devid.func>``:
|
||||||
Blacklisting of ports; prevent EAL from using specified PCI device
|
Blocklisting of ports; prevent EAL from using specified PCI device
|
||||||
(multiple ``-b`` options are allowed).
|
(multiple ``-b`` options are allowed).
|
||||||
|
|
||||||
* ``--use-device``:
|
* ``--use-device``:
|
||||||
|
@ -53,7 +53,7 @@ The EAL options are as follows:
|
|||||||
Number of memory channels per processor socket.
|
Number of memory channels per processor socket.
|
||||||
|
|
||||||
* ``-b <domain:bus:devid.func>``:
|
* ``-b <domain:bus:devid.func>``:
|
||||||
Blacklisting of ports; prevent EAL from using specified PCI device
|
Blocklisting of ports; prevent EAL from using specified PCI device
|
||||||
(multiple ``-b`` options are allowed).
|
(multiple ``-b`` options are allowed).
|
||||||
|
|
||||||
* ``--use-device``:
|
* ``--use-device``:
|
||||||
|
@ -44,20 +44,20 @@ Lcore-related options
|
|||||||
Device-related options
|
Device-related options
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
* ``-b, --pci-blacklist <[domain:]bus:devid.func>``
|
* ``-b, --block <[domain:]bus:devid.func>``
|
||||||
|
|
||||||
Blacklist a PCI device to prevent EAL from using it. Multiple -b options are
|
Skip probing a PCI device to prevent EAL from using it.
|
||||||
allowed.
|
Multiple -b options are allowed.
|
||||||
|
|
||||||
.. Note::
|
.. Note::
|
||||||
PCI blacklist cannot be used with ``-w`` option.
|
Block list cannot be used with the allow list ``-a`` option.
|
||||||
|
|
||||||
* ``-w, --pci-whitelist <[domain:]bus:devid.func>``
|
* ``-a, --allow <[domain:]bus:devid.func>``
|
||||||
|
|
||||||
Add a PCI device in white list.
|
Add a PCI device in to the list of devices to probe.
|
||||||
|
|
||||||
.. Note::
|
.. Note::
|
||||||
PCI whitelist cannot be used with ``-b`` option.
|
Allow list cannot be used with the block list ``-b`` option.
|
||||||
|
|
||||||
* ``--vdev <device arguments>``
|
* ``--vdev <device arguments>``
|
||||||
|
|
||||||
|
@ -93,11 +93,11 @@ parameter ``--vfio-vf-token``.
|
|||||||
3. echo 2 > /sys/bus/pci/devices/0000:86:00.0/sriov_numvfs
|
3. echo 2 > /sys/bus/pci/devices/0000:86:00.0/sriov_numvfs
|
||||||
|
|
||||||
4. Start the PF:
|
4. Start the PF:
|
||||||
<build_dir>/app/dpdk-testpmd -l 22-25 -n 4 -w 86:00.0 \
|
<build_dir>/app/dpdk-testpmd -l 22-25 -n 4 -a 86:00.0 \
|
||||||
--vfio-vf-token=14d63f20-8445-11ea-8900-1f9ce7d5650d --file-prefix=pf -- -i
|
--vfio-vf-token=14d63f20-8445-11ea-8900-1f9ce7d5650d --file-prefix=pf -- -i
|
||||||
|
|
||||||
5. Start the VF:
|
5. Start the VF:
|
||||||
<build_dir>/app/dpdk-testpmd -l 26-29 -n 4 -w 86:02.0 \
|
<build_dir>/app/dpdk-testpmd -l 26-29 -n 4 -a 86:02.0 \
|
||||||
--vfio-vf-token=14d63f20-8445-11ea-8900-1f9ce7d5650d --file-prefix=vf0 -- -i
|
--vfio-vf-token=14d63f20-8445-11ea-8900-1f9ce7d5650d --file-prefix=vf0 -- -i
|
||||||
|
|
||||||
Also, to use VFIO, both kernel and BIOS must support and be configured to use IO virtualization (such as Intel® VT-d).
|
Also, to use VFIO, both kernel and BIOS must support and be configured to use IO virtualization (such as Intel® VT-d).
|
||||||
|
@ -42,7 +42,7 @@ Runtime Config Options
|
|||||||
for the application.
|
for the application.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,max_pools=512
|
-a 0002:02:00.0,max_pools=512
|
||||||
|
|
||||||
With the above configuration, the driver will set up only 512 mempools for
|
With the above configuration, the driver will set up only 512 mempools for
|
||||||
the given application to save HW resources.
|
the given application to save HW resources.
|
||||||
@ -61,7 +61,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,npa_lock_mask=0xf
|
-a 0002:02:00.0,npa_lock_mask=0xf
|
||||||
|
|
||||||
Debugging Options
|
Debugging Options
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
@ -683,7 +683,7 @@ The feature uses a newly implemented control-plane firmware interface which
|
|||||||
optimizes flow insertions and deletions.
|
optimizes flow insertions and deletions.
|
||||||
|
|
||||||
This is a tech preview feature, and is disabled by default. It can be enabled
|
This is a tech preview feature, and is disabled by default. It can be enabled
|
||||||
using bnxt devargs. For ex: "-w 0000:0d:00.0,host-based-truflow=1”.
|
using bnxt devargs. For ex: "-a 0000:0d:00.0,host-based-truflow=1”.
|
||||||
|
|
||||||
Notes
|
Notes
|
||||||
-----
|
-----
|
||||||
@ -745,7 +745,7 @@ when the PMD is initialized on a PF or trusted-VF. The user can specify the list
|
|||||||
of VF IDs of the VFs for which the representors are needed by using the
|
of VF IDs of the VFs for which the representors are needed by using the
|
||||||
``devargs`` option ``representor``.::
|
``devargs`` option ``representor``.::
|
||||||
|
|
||||||
-w DBDF,representor=[0,1,4]
|
-a DBDF,representor=[0,1,4]
|
||||||
|
|
||||||
Note that currently hot-plugging of representor ports is not supported so all
|
Note that currently hot-plugging of representor ports is not supported so all
|
||||||
the required representors must be specified on the creation of the PF or the
|
the required representors must be specified on the creation of the PF or the
|
||||||
@ -770,12 +770,12 @@ same host domain, additional dev args have been added to the PMD.
|
|||||||
|
|
||||||
The sample command line with the new ``devargs`` looks like this::
|
The sample command line with the new ``devargs`` looks like this::
|
||||||
|
|
||||||
-w 0000:06:02.0,host-based-truflow=1,representor=[1],rep-based-pf=8,\
|
-a 0000:06:02.0,host-based-truflow=1,representor=[1],rep-based-pf=8,\
|
||||||
rep-is-pf=1,rep-q-r2f=1,rep-fc-r2f=0,rep-q-f2r=1,rep-fc-f2r=1
|
rep-is-pf=1,rep-q-r2f=1,rep-fc-r2f=0,rep-q-f2r=1,rep-fc-f2r=1
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
testpmd -l1-4 -n2 -w 0008:01:00.0,host-based-truflow=1,\
|
testpmd -l1-4 -n2 -a 0008:01:00.0,host-based-truflow=1,\
|
||||||
representor=[0], rep-based-pf=8,rep-is-pf=0,rep-q-r2f=1,rep-fc-r2f=1,\
|
representor=[0], rep-based-pf=8,rep-is-pf=0,rep-q-r2f=1,rep-fc-r2f=1,\
|
||||||
rep-q-f2r=0,rep-fc-f2r=1 --log-level="pmd.*",8 -- -i --rxq=3 --txq=3
|
rep-q-f2r=0,rep-fc-f2r=1 --log-level="pmd.*",8 -- -i --rxq=3 --txq=3
|
||||||
|
|
||||||
|
@ -40,8 +40,8 @@ expose a single PCI bus address, thus, librte_net_cxgbe registers
|
|||||||
itself as a PCI driver that allocates one Ethernet device per detected
|
itself as a PCI driver that allocates one Ethernet device per detected
|
||||||
port.
|
port.
|
||||||
|
|
||||||
For this reason, one cannot whitelist/blacklist a single port without
|
For this reason, one cannot allow/block a single port without
|
||||||
whitelisting/blacklisting the other ports on the same device.
|
allowing/blocking the other ports on the same device.
|
||||||
|
|
||||||
.. _t5-nics:
|
.. _t5-nics:
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ be passed as part of EAL arguments. For example,
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
dpdk-testpmd -w 02:00.4,keep_ovlan=1 -- -i
|
dpdk-testpmd -a 02:00.4,keep_ovlan=1 -- -i
|
||||||
|
|
||||||
Common Runtime Options
|
Common Runtime Options
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -301,7 +301,7 @@ CXGBE PF Only Runtime Options
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
dpdk-testpmd -w 02:00.4,filtermode=0x88 -- -i
|
dpdk-testpmd -a 02:00.4,filtermode=0x88 -- -i
|
||||||
|
|
||||||
- ``filtermask`` (default **0**)
|
- ``filtermask`` (default **0**)
|
||||||
|
|
||||||
@ -328,7 +328,7 @@ CXGBE PF Only Runtime Options
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
dpdk-testpmd -w 02:00.4,filtermode=0x88,filtermask=0x80 -- -i
|
dpdk-testpmd -a 02:00.4,filtermode=0x88,filtermask=0x80 -- -i
|
||||||
|
|
||||||
.. _driver-compilation:
|
.. _driver-compilation:
|
||||||
|
|
||||||
@ -760,7 +760,7 @@ devices managed by librte_net_cxgbe in FreeBSD operating system.
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/app/dpdk-testpmd -l 0-3 -n 4 -w 0000:02:00.4 -- -i
|
./<build_dir>/app/dpdk-testpmd -l 0-3 -n 4 -a 0000:02:00.4 -- -i
|
||||||
|
|
||||||
Example output:
|
Example output:
|
||||||
|
|
||||||
|
@ -163,10 +163,10 @@ Manager.
|
|||||||
this pool.
|
this pool.
|
||||||
|
|
||||||
|
|
||||||
Whitelisting & Blacklisting
|
Allowing & Blocking
|
||||||
---------------------------
|
-------------------
|
||||||
|
|
||||||
For blacklisting a DPAA device, following commands can be used.
|
For blocking a DPAA device, following commands can be used.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
|
@ -503,10 +503,10 @@ which are lower than logging ``level``.
|
|||||||
Using ``pmd.net.dpaa2`` as log matching criteria, all PMD logs can be enabled
|
Using ``pmd.net.dpaa2`` as log matching criteria, all PMD logs can be enabled
|
||||||
which are lower than logging ``level``.
|
which are lower than logging ``level``.
|
||||||
|
|
||||||
Whitelisting & Blacklisting
|
Allowing & Blocking
|
||||||
---------------------------
|
-------------------
|
||||||
|
|
||||||
For blacklisting a DPAA2 device, following commands can be used.
|
For blocking a DPAA2 device, following commands can be used.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -514,18 +514,18 @@ For blacklisting a DPAA2 device, following commands can be used.
|
|||||||
|
|
||||||
Where x is the device object id as configured in resource container.
|
Where x is the device object id as configured in resource container.
|
||||||
|
|
||||||
Running secondary debug app without blacklist
|
Running secondary debug app without blocklist
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
dpaa2 hardware imposes limits on some H/W access devices like Management
|
dpaa2 hardware imposes limits on some H/W access devices like Management
|
||||||
Control Port and H/W portal. This causes issue in their shared usages in
|
Control Port and H/W portal. This causes issue in their shared usages in
|
||||||
case of multi-process applications. It can overcome by using
|
case of multi-process applications. It can overcome by using
|
||||||
whitelist/blacklist in primary and secondary applications.
|
allowlist/blocklist in primary and secondary applications.
|
||||||
|
|
||||||
In order to ease usage of standard debugging apps like dpdk-procinfo, dpaa2
|
In order to ease usage of standard debugging apps like dpdk-procinfo, dpaa2
|
||||||
driver reserves extra Management Control Port and H/W portal which can be
|
driver reserves extra Management Control Port and H/W portal which can be
|
||||||
used by debug application to debug any existing application without
|
used by debug application to debug any existing application without
|
||||||
blacklisting these devices in primary process.
|
blocking these devices in primary process.
|
||||||
|
|
||||||
Limitations
|
Limitations
|
||||||
-----------
|
-----------
|
||||||
|
@ -305,7 +305,7 @@ enables overlay offload, it prints the following message on the console.
|
|||||||
By default, PMD enables overlay offload if hardware supports it. To disable
|
By default, PMD enables overlay offload if hardware supports it. To disable
|
||||||
it, set ``devargs`` parameter ``disable-overlay=1``. For example::
|
it, set ``devargs`` parameter ``disable-overlay=1``. For example::
|
||||||
|
|
||||||
-w 12:00.0,disable-overlay=1
|
-a 12:00.0,disable-overlay=1
|
||||||
|
|
||||||
By default, the NIC uses 4789 as the VXLAN port. The user may change
|
By default, the NIC uses 4789 as the VXLAN port. The user may change
|
||||||
it through ``rte_eth_dev_udp_tunnel_port_{add,delete}``. However, as
|
it through ``rte_eth_dev_udp_tunnel_port_{add,delete}``. However, as
|
||||||
@ -371,7 +371,7 @@ vectorized handler, take the following steps.
|
|||||||
PMD consider the vectorized handler when selecting the receive handler.
|
PMD consider the vectorized handler when selecting the receive handler.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 12:00.0,enable-avx2-rx=1
|
-a 12:00.0,enable-avx2-rx=1
|
||||||
|
|
||||||
As the current implementation is intended for field trials, by default, the
|
As the current implementation is intended for field trials, by default, the
|
||||||
vectorized handler is not considered (``enable-avx2-rx=0``).
|
vectorized handler is not considered (``enable-avx2-rx=0``).
|
||||||
@ -420,7 +420,7 @@ DPDK as untagged packets. In this case mbuf->vlan_tci and the PKT_RX_VLAN and
|
|||||||
PKT_RX_VLAN_STRIPPED mbuf flags would not be set. This mode is enabled with the
|
PKT_RX_VLAN_STRIPPED mbuf flags would not be set. This mode is enabled with the
|
||||||
``devargs`` parameter ``ig-vlan-rewrite=untag``. For example::
|
``devargs`` parameter ``ig-vlan-rewrite=untag``. For example::
|
||||||
|
|
||||||
-w 12:00.0,ig-vlan-rewrite=untag
|
-a 12:00.0,ig-vlan-rewrite=untag
|
||||||
|
|
||||||
- **SR-IOV**
|
- **SR-IOV**
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ Fail-safe command line parameters
|
|||||||
|
|
||||||
This parameter allows the user to define a sub-device. The ``<iface>`` part of
|
This parameter allows the user to define a sub-device. The ``<iface>`` part of
|
||||||
this parameter must be a valid device definition. It follows the same format
|
this parameter must be a valid device definition. It follows the same format
|
||||||
provided to any ``-w`` or ``--vdev`` options.
|
provided to any ``-a`` or ``--vdev`` options.
|
||||||
|
|
||||||
Enclosing the device definition within parentheses here allows using
|
Enclosing the device definition within parentheses here allows using
|
||||||
additional sub-device parameters if need be. They will be passed on to the
|
additional sub-device parameters if need be. They will be passed on to the
|
||||||
@ -56,11 +56,11 @@ Fail-safe command line parameters
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
In case where the sub-device is also used as a whitelist device, using ``-w``
|
In case where the sub-device is also used as an allowed device, using ``-a``
|
||||||
on the EAL command line, the fail-safe PMD will use the device with the
|
on the EAL command line, the fail-safe PMD will use the device with the
|
||||||
options provided to the EAL instead of its own parameters.
|
options provided to the EAL instead of its own parameters.
|
||||||
|
|
||||||
When trying to use a PCI device automatically probed by the blacklist mode,
|
When trying to use a PCI device automatically probed by the command line,
|
||||||
the name for the fail-safe sub-device must be the full PCI id:
|
the name for the fail-safe sub-device must be the full PCI id:
|
||||||
Domain:Bus:Device.Function, *i.e.* ``00:00:00.0`` instead of ``00:00.0``,
|
Domain:Bus:Device.Function, *i.e.* ``00:00:00.0`` instead of ``00:00.0``,
|
||||||
as the second form is historically accepted by the DPDK.
|
as the second form is historically accepted by the DPDK.
|
||||||
@ -111,8 +111,8 @@ This section shows some example of using **testpmd** with a fail-safe PMD.
|
|||||||
#. To build a PMD and configure DPDK, refer to the document
|
#. To build a PMD and configure DPDK, refer to the document
|
||||||
:ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`.
|
:ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`.
|
||||||
|
|
||||||
#. Start testpmd. The sub-device ``84:00.0`` should be blacklisted from normal EAL
|
#. Start testpmd. The sub-device ``84:00.0`` should be blocked from normal EAL
|
||||||
operations to avoid probing it twice, as the PCI bus is in blacklist mode.
|
operations to avoid probing it twice, as the PCI bus is in blocklist mode.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -120,25 +120,25 @@ This section shows some example of using **testpmd** with a fail-safe PMD.
|
|||||||
--vdev 'net_failsafe0,mac=de:ad:be:ef:01:02,dev(84:00.0),dev(net_ring0)' \
|
--vdev 'net_failsafe0,mac=de:ad:be:ef:01:02,dev(84:00.0),dev(net_ring0)' \
|
||||||
-b 84:00.0 -b 00:04.0 -- -i
|
-b 84:00.0 -b 00:04.0 -- -i
|
||||||
|
|
||||||
If the sub-device ``84:00.0`` is not blacklisted, it will be probed by the
|
If the sub-device ``84:00.0`` is not blocked, it will be probed by the
|
||||||
EAL first. When the fail-safe then tries to initialize it the probe operation
|
EAL first. When the fail-safe then tries to initialize it the probe operation
|
||||||
fails.
|
fails.
|
||||||
|
|
||||||
Note that PCI blacklist mode is the default PCI operating mode.
|
Note that PCI blocklist mode is the default PCI operating mode.
|
||||||
|
|
||||||
#. Alternatively, it can be used alongside any other device in whitelist mode.
|
#. Alternatively, it can be used alongside any other device in allow mode.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/app/dpdk-testpmd -c 0xff -n 4 \
|
./<build_dir>/app/dpdk-testpmd -c 0xff -n 4 \
|
||||||
--vdev 'net_failsafe0,mac=de:ad:be:ef:01:02,dev(84:00.0),dev(net_ring0)' \
|
--vdev 'net_failsafe0,mac=de:ad:be:ef:01:02,dev(84:00.0),dev(net_ring0)' \
|
||||||
-w 81:00.0 -- -i
|
-a 81:00.0 -- -i
|
||||||
|
|
||||||
#. Start testpmd using a flexible device definition
|
#. Start testpmd using a flexible device definition
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/app/dpdk-testpmd -c 0xff -n 4 -w ff:ff.f \
|
./<build_dir>/app/dpdk-testpmd -c 0xff -n 4 -a ff:ff.f \
|
||||||
--vdev='net_failsafe0,exec(echo 84:00.0)' -- -i
|
--vdev='net_failsafe0,exec(echo 84:00.0)' -- -i
|
||||||
|
|
||||||
#. Start testpmd, automatically probing the device 84:00.0 and using it with
|
#. Start testpmd, automatically probing the device 84:00.0 and using it with
|
||||||
|
@ -19,7 +19,7 @@ resource tag) information, rather than the mac and vlan table. Currently this
|
|||||||
feature works only on PF.
|
feature works only on PF.
|
||||||
|
|
||||||
To enable this feature, the user should pass a devargs parameter to the eal
|
To enable this feature, the user should pass a devargs parameter to the eal
|
||||||
like "-w 84:00.0,enable_ftag=1", and the application should make sure an
|
like "-a 84:00.0,enable_ftag=1", and the application should make sure an
|
||||||
appropriate FTAG is inserted for every frame on TX side.
|
appropriate FTAG is inserted for every frame on TX side.
|
||||||
|
|
||||||
Vector PMD for FM10K
|
Vector PMD for FM10K
|
||||||
|
@ -176,7 +176,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
The number of reserved queue per VF is determined by its host PF. If the
|
The number of reserved queue per VF is determined by its host PF. If the
|
||||||
PCI address of an i40e PF is aaaa:bb.cc, the number of reserved queues per
|
PCI address of an i40e PF is aaaa:bb.cc, the number of reserved queues per
|
||||||
VF can be configured with EAL parameter like -w aaaa:bb.cc,queue-num-per-vf=n.
|
VF can be configured with EAL parameter like -a aaaa:bb.cc,queue-num-per-vf=n.
|
||||||
The value n can be 1, 2, 4, 8 or 16. If no such parameter is configured, the
|
The value n can be 1, 2, 4, 8 or 16. If no such parameter is configured, the
|
||||||
number of reserved queues per VF is 4 by default. If VF request more than
|
number of reserved queues per VF is 4 by default. If VF request more than
|
||||||
reserved queues per VF, PF will able to allocate max to 16 queues after a VF
|
reserved queues per VF, PF will able to allocate max to 16 queues after a VF
|
||||||
@ -189,7 +189,7 @@ Runtime Config Options
|
|||||||
Adapter with both Linux kernel and DPDK PMD. To fix this issue, ``devargs``
|
Adapter with both Linux kernel and DPDK PMD. To fix this issue, ``devargs``
|
||||||
parameter ``support-multi-driver`` is introduced, for example::
|
parameter ``support-multi-driver`` is introduced, for example::
|
||||||
|
|
||||||
-w 84:00.0,support-multi-driver=1
|
-a 84:00.0,support-multi-driver=1
|
||||||
|
|
||||||
With the above configuration, DPDK PMD will not change global registers, and
|
With the above configuration, DPDK PMD will not change global registers, and
|
||||||
will switch PF interrupt from IntN to Int0 to avoid interrupt conflict between
|
will switch PF interrupt from IntN to Int0 to avoid interrupt conflict between
|
||||||
@ -204,7 +204,7 @@ Runtime Config Options
|
|||||||
port representors for on initialization of the PF PMD by passing the VF IDs of
|
port representors for on initialization of the PF PMD by passing the VF IDs of
|
||||||
the VFs which are required.::
|
the VFs which are required.::
|
||||||
|
|
||||||
-w DBDF,representor=[0,1,4]
|
-a DBDF,representor=[0,1,4]
|
||||||
|
|
||||||
Currently hot-plugging of representor ports is not supported so all required
|
Currently hot-plugging of representor ports is not supported so all required
|
||||||
representors must be specified on the creation of the PF.
|
representors must be specified on the creation of the PF.
|
||||||
@ -216,7 +216,7 @@ Runtime Config Options
|
|||||||
since it can get better perf in some real work loading cases. So ``devargs`` param
|
since it can get better perf in some real work loading cases. So ``devargs`` param
|
||||||
``use-latest-supported-vec`` is introduced, for example::
|
``use-latest-supported-vec`` is introduced, for example::
|
||||||
|
|
||||||
-w 84:00.0,use-latest-supported-vec=1
|
-a 84:00.0,use-latest-supported-vec=1
|
||||||
|
|
||||||
- ``Enable validation for VF message`` (default ``not enabled``)
|
- ``Enable validation for VF message`` (default ``not enabled``)
|
||||||
|
|
||||||
@ -226,7 +226,7 @@ Runtime Config Options
|
|||||||
Format -- "maximal-message@period-seconds:ignore-seconds"
|
Format -- "maximal-message@period-seconds:ignore-seconds"
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 84:00.0,vf_msg_cfg=80@120:180
|
-a 84:00.0,vf_msg_cfg=80@120:180
|
||||||
|
|
||||||
Vector RX Pre-conditions
|
Vector RX Pre-conditions
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -456,7 +456,7 @@ no physical uplink on the associated NIC port.
|
|||||||
To enable this feature, the user should pass a ``devargs`` parameter to the
|
To enable this feature, the user should pass a ``devargs`` parameter to the
|
||||||
EAL, for example::
|
EAL, for example::
|
||||||
|
|
||||||
-w 84:00.0,enable_floating_veb=1
|
-a 84:00.0,enable_floating_veb=1
|
||||||
|
|
||||||
In this configuration the PMD will use the floating VEB feature for all the
|
In this configuration the PMD will use the floating VEB feature for all the
|
||||||
VFs created by this PF device.
|
VFs created by this PF device.
|
||||||
@ -464,7 +464,7 @@ VFs created by this PF device.
|
|||||||
Alternatively, the user can specify which VFs need to connect to this floating
|
Alternatively, the user can specify which VFs need to connect to this floating
|
||||||
VEB using the ``floating_veb_list`` argument::
|
VEB using the ``floating_veb_list`` argument::
|
||||||
|
|
||||||
-w 84:00.0,enable_floating_veb=1,floating_veb_list=1;3-4
|
-a 84:00.0,enable_floating_veb=1,floating_veb_list=1;3-4
|
||||||
|
|
||||||
In this example ``VF1``, ``VF3`` and ``VF4`` connect to the floating VEB,
|
In this example ``VF1``, ``VF3`` and ``VF4`` connect to the floating VEB,
|
||||||
while other VFs connect to the normal VEB.
|
while other VFs connect to the normal VEB.
|
||||||
@ -800,7 +800,7 @@ See :numref:`figure_intel_perf_test_setup` for the performance test setup.
|
|||||||
|
|
||||||
7. The command line of running l3fwd would be something like the following::
|
7. The command line of running l3fwd would be something like the following::
|
||||||
|
|
||||||
./dpdk-l3fwd -l 18-21 -n 4 -w 82:00.0 -w 85:00.0 \
|
./dpdk-l3fwd -l 18-21 -n 4 -a 82:00.0 -a 85:00.0 \
|
||||||
-- -p 0x3 --config '(0,0,18),(0,1,19),(1,0,20),(1,1,21)'
|
-- -p 0x3 --config '(0,0,18),(0,1,19),(1,0,20),(1,1,21)'
|
||||||
|
|
||||||
This means that the application uses core 18 for port 0, queue pair 0 forwarding, core 19 for port 0, queue pair 1 forwarding,
|
This means that the application uses core 18 for port 0, queue pair 0 forwarding, core 19 for port 0, queue pair 1 forwarding,
|
||||||
|
@ -30,7 +30,7 @@ Runtime Config Options
|
|||||||
But if user intend to use the device without OS package, user can take ``devargs``
|
But if user intend to use the device without OS package, user can take ``devargs``
|
||||||
parameter ``safe-mode-support``, for example::
|
parameter ``safe-mode-support``, for example::
|
||||||
|
|
||||||
-w 80:00.0,safe-mode-support=1
|
-a 80:00.0,safe-mode-support=1
|
||||||
|
|
||||||
Then the driver will be initialized successfully and the device will enter Safe Mode.
|
Then the driver will be initialized successfully and the device will enter Safe Mode.
|
||||||
NOTE: In Safe mode, only very limited features are available, features like RSS,
|
NOTE: In Safe mode, only very limited features are available, features like RSS,
|
||||||
@ -53,7 +53,7 @@ Runtime Config Options
|
|||||||
use pipeline mode by setting ``devargs`` parameter ``pipeline-mode-support``,
|
use pipeline mode by setting ``devargs`` parameter ``pipeline-mode-support``,
|
||||||
for example::
|
for example::
|
||||||
|
|
||||||
-w 80:00.0,pipeline-mode-support=1
|
-a 80:00.0,pipeline-mode-support=1
|
||||||
|
|
||||||
- ``Protocol extraction for per queue``
|
- ``Protocol extraction for per queue``
|
||||||
|
|
||||||
@ -62,8 +62,8 @@ Runtime Config Options
|
|||||||
|
|
||||||
The argument format is::
|
The argument format is::
|
||||||
|
|
||||||
-w 18:00.0,proto_xtr=<queues:protocol>[<queues:protocol>...]
|
-a 18:00.0,proto_xtr=<queues:protocol>[<queues:protocol>...]
|
||||||
-w 18:00.0,proto_xtr=<protocol>
|
-a 18:00.0,proto_xtr=<protocol>
|
||||||
|
|
||||||
Queues are grouped by ``(`` and ``)`` within the group. The ``-`` character
|
Queues are grouped by ``(`` and ``)`` within the group. The ``-`` character
|
||||||
is used as a range separator and ``,`` is used as a single number separator.
|
is used as a range separator and ``,`` is used as a single number separator.
|
||||||
@ -74,14 +74,14 @@ Runtime Config Options
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
dpdk-testpmd -w 18:00.0,proto_xtr='[(1,2-3,8-9):tcp,10-13:vlan]'
|
dpdk-testpmd -a 18:00.0,proto_xtr='[(1,2-3,8-9):tcp,10-13:vlan]'
|
||||||
|
|
||||||
This setting means queues 1, 2-3, 8-9 are TCP extraction, queues 10-13 are
|
This setting means queues 1, 2-3, 8-9 are TCP extraction, queues 10-13 are
|
||||||
VLAN extraction, other queues run with no protocol extraction.
|
VLAN extraction, other queues run with no protocol extraction.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
dpdk-testpmd -w 18:00.0,proto_xtr=vlan,proto_xtr='[(1,2-3,8-9):tcp,10-23:ipv6]'
|
dpdk-testpmd -a 18:00.0,proto_xtr=vlan,proto_xtr='[(1,2-3,8-9):tcp,10-23:ipv6]'
|
||||||
|
|
||||||
This setting means queues 1, 2-3, 8-9 are TCP extraction, queues 10-23 are
|
This setting means queues 1, 2-3, 8-9 are TCP extraction, queues 10-23 are
|
||||||
IPv6 extraction, other queues use the default VLAN extraction.
|
IPv6 extraction, other queues use the default VLAN extraction.
|
||||||
@ -233,7 +233,7 @@ responses for the same from PF.
|
|||||||
|
|
||||||
#. Bind the VF0, and run testpmd with 'cap=dcf' devarg::
|
#. Bind the VF0, and run testpmd with 'cap=dcf' devarg::
|
||||||
|
|
||||||
dpdk-testpmd -l 22-25 -n 4 -w 18:01.0,cap=dcf -- -i
|
dpdk-testpmd -l 22-25 -n 4 -a 18:01.0,cap=dcf -- -i
|
||||||
|
|
||||||
#. Monitor the VF2 interface network traffic::
|
#. Monitor the VF2 interface network traffic::
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ be passed as part of EAL arguments. For example,
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
testpmd -w af:10.0,pflink_fullchk=1 -- -i
|
testpmd -a af:10.0,pflink_fullchk=1 -- -i
|
||||||
|
|
||||||
- ``pflink_fullchk`` (default **0**)
|
- ``pflink_fullchk`` (default **0**)
|
||||||
|
|
||||||
@ -277,7 +277,7 @@ option ``representor`` the user can specify which virtual functions to create
|
|||||||
port representors for on initialization of the PF PMD by passing the VF IDs of
|
port representors for on initialization of the PF PMD by passing the VF IDs of
|
||||||
the VFs which are required.::
|
the VFs which are required.::
|
||||||
|
|
||||||
-w DBDF,representor=[0,1,4]
|
-a DBDF,representor=[0,1,4]
|
||||||
|
|
||||||
Currently hot-plugging of representor ports is not supported so all required
|
Currently hot-plugging of representor ports is not supported so all required
|
||||||
representors must be specified on the creation of the PF.
|
representors must be specified on the creation of the PF.
|
||||||
|
@ -24,8 +24,8 @@ Most Mellanox ConnectX-3 devices provide two ports but expose a single PCI
|
|||||||
bus address, thus unlike most drivers, librte_net_mlx4 registers itself as a
|
bus address, thus unlike most drivers, librte_net_mlx4 registers itself as a
|
||||||
PCI driver that allocates one Ethernet device per detected port.
|
PCI driver that allocates one Ethernet device per detected port.
|
||||||
|
|
||||||
For this reason, one cannot white/blacklist a single port without also
|
For this reason, one cannot block (or allow) a single port without also
|
||||||
white/blacklisting the others on the same device.
|
blocking (or allowing) the others on the same device.
|
||||||
|
|
||||||
Besides its dependency on libibverbs (that implies libmlx4 and associated
|
Besides its dependency on libibverbs (that implies libmlx4 and associated
|
||||||
kernel support), librte_net_mlx4 relies heavily on system calls for control
|
kernel support), librte_net_mlx4 relies heavily on system calls for control
|
||||||
@ -381,7 +381,7 @@ devices managed by librte_net_mlx4.
|
|||||||
eth4
|
eth4
|
||||||
eth5
|
eth5
|
||||||
|
|
||||||
#. Optionally, retrieve their PCI bus addresses for whitelisting::
|
#. Optionally, retrieve their PCI bus addresses to be used with the allow argument::
|
||||||
|
|
||||||
{
|
{
|
||||||
for intf in eth2 eth3 eth4 eth5;
|
for intf in eth2 eth3 eth4 eth5;
|
||||||
@ -389,14 +389,14 @@ devices managed by librte_net_mlx4.
|
|||||||
(cd "/sys/class/net/${intf}/device/" && pwd -P);
|
(cd "/sys/class/net/${intf}/device/" && pwd -P);
|
||||||
done;
|
done;
|
||||||
} |
|
} |
|
||||||
sed -n 's,.*/\(.*\),-w \1,p'
|
sed -n 's,.*/\(.*\),-a \1,p'
|
||||||
|
|
||||||
Example output::
|
Example output::
|
||||||
|
|
||||||
-w 0000:83:00.0
|
-a 0000:83:00.0
|
||||||
-w 0000:83:00.0
|
-a 0000:83:00.0
|
||||||
-w 0000:84:00.0
|
-a 0000:84:00.0
|
||||||
-w 0000:84:00.0
|
-a 0000:84:00.0
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -409,7 +409,7 @@ devices managed by librte_net_mlx4.
|
|||||||
|
|
||||||
#. Start testpmd with basic parameters::
|
#. Start testpmd with basic parameters::
|
||||||
|
|
||||||
testpmd -l 8-15 -n 4 -w 0000:83:00.0 -w 0000:84:00.0 -- --rxq=2 --txq=2 -i
|
testpmd -l 8-15 -n 4 -a 0000:83:00.0 -a 0000:84:00.0 -- --rxq=2 --txq=2 -i
|
||||||
|
|
||||||
Example output::
|
Example output::
|
||||||
|
|
||||||
|
@ -1524,7 +1524,7 @@ ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices managed by librte_net_mlx5.
|
|||||||
eth32
|
eth32
|
||||||
eth33
|
eth33
|
||||||
|
|
||||||
#. Optionally, retrieve their PCI bus addresses for whitelisting::
|
#. Optionally, retrieve their PCI bus addresses for to be used with the allow list::
|
||||||
|
|
||||||
{
|
{
|
||||||
for intf in eth2 eth3 eth4 eth5;
|
for intf in eth2 eth3 eth4 eth5;
|
||||||
@ -1532,14 +1532,14 @@ ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices managed by librte_net_mlx5.
|
|||||||
(cd "/sys/class/net/${intf}/device/" && pwd -P);
|
(cd "/sys/class/net/${intf}/device/" && pwd -P);
|
||||||
done;
|
done;
|
||||||
} |
|
} |
|
||||||
sed -n 's,.*/\(.*\),-w \1,p'
|
sed -n 's,.*/\(.*\),-a \1,p'
|
||||||
|
|
||||||
Example output::
|
Example output::
|
||||||
|
|
||||||
-w 0000:05:00.1
|
-a 0000:05:00.1
|
||||||
-w 0000:06:00.0
|
-a 0000:06:00.0
|
||||||
-w 0000:06:00.1
|
-a 0000:06:00.1
|
||||||
-w 0000:05:00.0
|
-a 0000:05:00.0
|
||||||
|
|
||||||
#. Request huge pages::
|
#. Request huge pages::
|
||||||
|
|
||||||
@ -1547,7 +1547,7 @@ ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices managed by librte_net_mlx5.
|
|||||||
|
|
||||||
#. Start testpmd with basic parameters::
|
#. Start testpmd with basic parameters::
|
||||||
|
|
||||||
testpmd -l 8-15 -n 4 -w 05:00.0 -w 05:00.1 -w 06:00.0 -w 06:00.1 -- --rxq=2 --txq=2 -i
|
testpmd -l 8-15 -n 4 -a 05:00.0 -a 05:00.1 -a 06:00.0 -a 06:00.1 -- --rxq=2 --txq=2 -i
|
||||||
|
|
||||||
Example output::
|
Example output::
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ products) and the device argument `timestamp=1` must be used.
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/app/dpdk-testpmd -w b3:00.0,timestamp=1 <other EAL params> -- <testpmd params>
|
./<build_dir>/app/dpdk-testpmd -a b3:00.0,timestamp=1 <other EAL params> -- <testpmd params>
|
||||||
|
|
||||||
When the timestamps are enabled with the *devarg*, a timestamp validity flag is set in the MBUFs
|
When the timestamps are enabled with the *devarg*, a timestamp validity flag is set in the MBUFs
|
||||||
containing received frames and timestamp is inserted into the `rte_mbuf` struct.
|
containing received frames and timestamp is inserted into the `rte_mbuf` struct.
|
||||||
|
@ -63,7 +63,7 @@ for details.
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/app/dpdk-testpmd -c 0x300 -w 0002:02:00.0 -- --portmask=0x1 --nb-cores=1 --port-topology=loop --rxq=1 --txq=1
|
./<build_dir>/app/dpdk-testpmd -c 0x300 -a 0002:02:00.0 -- --portmask=0x1 --nb-cores=1 --port-topology=loop --rxq=1 --txq=1
|
||||||
EAL: Detected 24 lcore(s)
|
EAL: Detected 24 lcore(s)
|
||||||
EAL: Detected 1 NUMA nodes
|
EAL: Detected 1 NUMA nodes
|
||||||
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
|
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
|
||||||
@ -116,7 +116,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,reta_size=256
|
-a 0002:02:00.0,reta_size=256
|
||||||
|
|
||||||
With the above configuration, reta table of size 256 is populated.
|
With the above configuration, reta table of size 256 is populated.
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,flow_max_priority=10
|
-a 0002:02:00.0,flow_max_priority=10
|
||||||
|
|
||||||
With the above configuration, priority level was set to 10 (0-9). Max
|
With the above configuration, priority level was set to 10 (0-9). Max
|
||||||
priority level supported is 32.
|
priority level supported is 32.
|
||||||
@ -139,7 +139,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,flow_prealloc_size=4
|
-a 0002:02:00.0,flow_prealloc_size=4
|
||||||
|
|
||||||
With the above configuration, pre alloc size was set to 4. Max pre alloc
|
With the above configuration, pre alloc size was set to 4. Max pre alloc
|
||||||
size supported is 32.
|
size supported is 32.
|
||||||
@ -151,7 +151,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,max_sqb_count=64
|
-a 0002:02:00.0,max_sqb_count=64
|
||||||
|
|
||||||
With the above configuration, each send queue's decscriptor buffer count is
|
With the above configuration, each send queue's decscriptor buffer count is
|
||||||
limited to a maximum of 64 buffers.
|
limited to a maximum of 64 buffers.
|
||||||
@ -163,7 +163,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,switch_header="higig2"
|
-a 0002:02:00.0,switch_header="higig2"
|
||||||
|
|
||||||
With the above configuration, higig2 will be enabled on that port and the
|
With the above configuration, higig2 will be enabled on that port and the
|
||||||
traffic on this port should be higig2 traffic only. Supported switch header
|
traffic on this port should be higig2 traffic only. Supported switch header
|
||||||
@ -185,7 +185,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example to select the legacy mode(RSS tag adder as XOR)::
|
For example to select the legacy mode(RSS tag adder as XOR)::
|
||||||
|
|
||||||
-w 0002:02:00.0,tag_as_xor=1
|
-a 0002:02:00.0,tag_as_xor=1
|
||||||
|
|
||||||
- ``Max SPI for inbound inline IPsec`` (default ``1``)
|
- ``Max SPI for inbound inline IPsec`` (default ``1``)
|
||||||
|
|
||||||
@ -194,7 +194,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,ipsec_in_max_spi=128
|
-a 0002:02:00.0,ipsec_in_max_spi=128
|
||||||
|
|
||||||
With the above configuration, application can enable inline IPsec processing
|
With the above configuration, application can enable inline IPsec processing
|
||||||
on 128 SAs (SPI 0-127).
|
on 128 SAs (SPI 0-127).
|
||||||
@ -205,7 +205,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,lock_rx_ctx=1
|
-a 0002:02:00.0,lock_rx_ctx=1
|
||||||
|
|
||||||
- ``Lock Tx contexts in NDC cache``
|
- ``Lock Tx contexts in NDC cache``
|
||||||
|
|
||||||
@ -213,7 +213,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,lock_tx_ctx=1
|
-a 0002:02:00.0,lock_tx_ctx=1
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -229,7 +229,7 @@ Runtime Config Options
|
|||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
-w 0002:02:00.0,npa_lock_mask=0xf
|
-a 0002:02:00.0,npa_lock_mask=0xf
|
||||||
|
|
||||||
.. _otx2_tmapi:
|
.. _otx2_tmapi:
|
||||||
|
|
||||||
|
@ -350,7 +350,7 @@ Per-Device Parameters
|
|||||||
~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The following per-device parameters can be passed via EAL PCI device
|
The following per-device parameters can be passed via EAL PCI device
|
||||||
whitelist option like "-w 02:00.0,arg1=value1,...".
|
allow option like "-a 02:00.0,arg1=value1,...".
|
||||||
|
|
||||||
Case-insensitive 1/y/yes/on or 0/n/no/off may be used to specify
|
Case-insensitive 1/y/yes/on or 0/n/no/off may be used to specify
|
||||||
boolean parameters value.
|
boolean parameters value.
|
||||||
|
@ -191,7 +191,7 @@ following::
|
|||||||
|
|
||||||
.. Note:
|
.. Note:
|
||||||
|
|
||||||
Change the ``-b`` options to blacklist all of your physical ports. The
|
Change the ``-b`` options to exclude all of your physical ports. The
|
||||||
following command line is all one line.
|
following command line is all one line.
|
||||||
|
|
||||||
Also, ``-f themes/black-yellow.theme`` is optional if the default colors
|
Also, ``-f themes/black-yellow.theme`` is optional if the default colors
|
||||||
|
@ -157,7 +157,7 @@ This section provides instructions to configure SR-IOV with Linux OS.
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/app/dpdk-testpmd -l 0-3 -n 4 -w 0002:01:00.2 \
|
./<build_dir>/app/dpdk-testpmd -l 0-3 -n 4 -a 0002:01:00.2 \
|
||||||
-- -i --no-flush-rx \
|
-- -i --no-flush-rx \
|
||||||
--port-topology=loop
|
--port-topology=loop
|
||||||
|
|
||||||
@ -377,7 +377,7 @@ This scheme is useful when application would like to insert vlan header without
|
|||||||
Example:
|
Example:
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
-w 0002:01:00.2,skip_data_bytes=8
|
-a 0002:01:00.2,skip_data_bytes=8
|
||||||
|
|
||||||
Limitations
|
Limitations
|
||||||
-----------
|
-----------
|
||||||
|
@ -19,7 +19,7 @@ Physical compression devices are discovered during the bus probe of the EAL func
|
|||||||
which is executed at DPDK initialization, based on their unique device identifier.
|
which is executed at DPDK initialization, based on their unique device identifier.
|
||||||
For e.g. PCI devices can be identified using PCI BDF (bus/bridge, device, function).
|
For e.g. PCI devices can be identified using PCI BDF (bus/bridge, device, function).
|
||||||
Specific physical compression devices, like other physical devices in DPDK can be
|
Specific physical compression devices, like other physical devices in DPDK can be
|
||||||
white-listed or black-listed using the EAL command line options.
|
listed using the EAL command line options.
|
||||||
|
|
||||||
Virtual devices can be created by two mechanisms, either using the EAL command
|
Virtual devices can be created by two mechanisms, either using the EAL command
|
||||||
line options or from within the application using an EAL API directly.
|
line options or from within the application using an EAL API directly.
|
||||||
|
@ -32,7 +32,7 @@ Physical Crypto devices are discovered during the PCI probe/enumeration of the
|
|||||||
EAL function which is executed at DPDK initialization, based on
|
EAL function which is executed at DPDK initialization, based on
|
||||||
their PCI device identifier, each unique PCI BDF (bus/bridge, device,
|
their PCI device identifier, each unique PCI BDF (bus/bridge, device,
|
||||||
function). Specific physical Crypto devices, like other physical devices in DPDK
|
function). Specific physical Crypto devices, like other physical devices in DPDK
|
||||||
can be white-listed or black-listed using the EAL command line options.
|
can be listed using the EAL command line options.
|
||||||
|
|
||||||
Virtual devices can be created by two mechanisms, either using the EAL command
|
Virtual devices can be created by two mechanisms, either using the EAL command
|
||||||
line options or from within the application using an EAL API directly.
|
line options or from within the application using an EAL API directly.
|
||||||
|
@ -407,12 +407,12 @@ device having emitted a Device Removal Event. In such case, calling
|
|||||||
callback. Care must be taken not to close the device from the interrupt handler
|
callback. Care must be taken not to close the device from the interrupt handler
|
||||||
context. It is necessary to reschedule such closing operation.
|
context. It is necessary to reschedule such closing operation.
|
||||||
|
|
||||||
Blacklisting
|
Block list
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
|
|
||||||
The EAL PCI device blacklist functionality can be used to mark certain NIC ports as blacklisted,
|
The EAL PCI device block list functionality can be used to mark certain NIC ports as unavailable,
|
||||||
so they are ignored by the DPDK.
|
so they are ignored by the DPDK.
|
||||||
The ports to be blacklisted are identified using the PCIe* description (Domain:Bus:Device.Function).
|
The ports to be blocked are identified using the PCIe* description (Domain:Bus:Device.Function).
|
||||||
|
|
||||||
Misc Functions
|
Misc Functions
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
@ -30,7 +30,7 @@ after a primary process has already configured the hugepage shared memory for th
|
|||||||
Secondary processes should run alongside primary process with same DPDK version.
|
Secondary processes should run alongside primary process with same DPDK version.
|
||||||
|
|
||||||
Secondary processes which requires access to physical devices in Primary process, must
|
Secondary processes which requires access to physical devices in Primary process, must
|
||||||
be passed with the same whitelist and blacklist options.
|
be passed with the same allow and block options.
|
||||||
|
|
||||||
To support these two process types, and other multi-process setups described later,
|
To support these two process types, and other multi-process setups described later,
|
||||||
two additional command-line parameters are available to the EAL:
|
two additional command-line parameters are available to the EAL:
|
||||||
@ -131,7 +131,7 @@ can use).
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Independent DPDK instances running side-by-side on a single machine cannot share any network ports.
|
Independent DPDK instances running side-by-side on a single machine cannot share any network ports.
|
||||||
Any network ports being used by one process should be blacklisted in every other process.
|
Any network ports being used by one process should be blocked by every other process.
|
||||||
|
|
||||||
Running Multiple Independent Groups of DPDK Applications
|
Running Multiple Independent Groups of DPDK Applications
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
@ -374,9 +374,9 @@ parameters to those ports.
|
|||||||
this argument allows user to specify which switch ports to enable port
|
this argument allows user to specify which switch ports to enable port
|
||||||
representors for.::
|
representors for.::
|
||||||
|
|
||||||
-w DBDF,representor=0
|
-a DBDF,representor=0
|
||||||
-w DBDF,representor=[0,4,6,9]
|
-a DBDF,representor=[0,4,6,9]
|
||||||
-w DBDF,representor=[0-31]
|
-a DBDF,representor=[0-31]
|
||||||
|
|
||||||
Note: PMDs are not required to support the standard device arguments and users
|
Note: PMDs are not required to support the standard device arguments and users
|
||||||
should consult the relevant PMD documentation to see support devargs.
|
should consult the relevant PMD documentation to see support devargs.
|
||||||
|
@ -30,7 +30,7 @@ Physical RegEx devices are discovered during the PCI probe/enumeration of the
|
|||||||
EAL function which is executed at DPDK initialization, based on
|
EAL function which is executed at DPDK initialization, based on
|
||||||
their PCI device identifier, each unique PCI BDF (bus/bridge, device,
|
their PCI device identifier, each unique PCI BDF (bus/bridge, device,
|
||||||
function). Specific physical ReEx devices, like other physical devices in DPDK
|
function). Specific physical ReEx devices, like other physical devices in DPDK
|
||||||
can be white-listed or black-listed using the EAL command line options.
|
can be listed using the EAL command line options.
|
||||||
|
|
||||||
|
|
||||||
Device Identification
|
Device Identification
|
||||||
|
@ -59,9 +59,9 @@ which can be thought as a software "patch panel" front-end for applications.
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
-w pci:dbdf,representor=0
|
-a pci:dbdf,representor=0
|
||||||
-w pci:dbdf,representor=[0-3]
|
-a pci:dbdf,representor=[0-3]
|
||||||
-w pci:dbdf,representor=[0,5-11]
|
-a pci:dbdf,representor=[0,5-11]
|
||||||
|
|
||||||
- As virtual devices, they may be more limited than their physical
|
- As virtual devices, they may be more limited than their physical
|
||||||
counterparts, for instance by exposing only a subset of device
|
counterparts, for instance by exposing only a subset of device
|
||||||
|
@ -28,17 +28,6 @@ Deprecation Notices
|
|||||||
* kvargs: The function ``rte_kvargs_process`` will get a new parameter
|
* kvargs: The function ``rte_kvargs_process`` will get a new parameter
|
||||||
for returning key match count. It will ease handling of no-match case.
|
for returning key match count. It will ease handling of no-match case.
|
||||||
|
|
||||||
* eal: The terms blacklist and whitelist to describe devices used
|
|
||||||
by DPDK will be replaced in the 20.11 relase.
|
|
||||||
This will apply to command line arguments.
|
|
||||||
|
|
||||||
The command line arguments to ``rte_eal_init`` will change from
|
|
||||||
``-b, --pci-blacklist`` to ``-x, --exclude`` and
|
|
||||||
``-w, --pci-whitelist`` to ``-i, --include``.
|
|
||||||
The old command line arguments will continue to be accepted in 20.11
|
|
||||||
but will cause a runtime warning message. The old arguments will
|
|
||||||
be removed in a future release.
|
|
||||||
|
|
||||||
* eal: The function ``rte_eal_remote_launch`` will return new error codes
|
* eal: The function ``rte_eal_remote_launch`` will return new error codes
|
||||||
after read or write error on the pipe, instead of calling ``rte_panic``.
|
after read or write error on the pipe, instead of calling ``rte_panic``.
|
||||||
|
|
||||||
|
@ -475,6 +475,12 @@ API Changes
|
|||||||
``RTE_LCORE_FOREACH_SLAVE`` is replaced with
|
``RTE_LCORE_FOREACH_SLAVE`` is replaced with
|
||||||
``RTE_LCORE_FOREACH_WORKER``.
|
``RTE_LCORE_FOREACH_WORKER``.
|
||||||
|
|
||||||
|
* eal: The definitions related to including and excluding devices
|
||||||
|
has been changed from blacklist/whitelist to block/allow list.
|
||||||
|
There are compatibility macros and command line mapping to accept
|
||||||
|
the old values but applications and scripts are strongly encouraged
|
||||||
|
to migrate to the new names.
|
||||||
|
|
||||||
* eal: The ``rte_logs`` struct and global symbol was made private
|
* eal: The ``rte_logs`` struct and global symbol was made private
|
||||||
and is no longer part of the API.
|
and is no longer part of the API.
|
||||||
|
|
||||||
|
@ -61,19 +61,19 @@ This means that HW baseband device/s must be bound to a DPDK driver or
|
|||||||
a SW baseband device/s (virtual BBdev) must be created (using --vdev).
|
a SW baseband device/s (virtual BBdev) must be created (using --vdev).
|
||||||
|
|
||||||
To run the application in linux environment with the turbo_sw baseband device
|
To run the application in linux environment with the turbo_sw baseband device
|
||||||
using the whitelisted port running on 1 encoding lcore and 1 decoding lcore
|
using the allow option for pci device running on 1 encoding lcore and 1 decoding lcore
|
||||||
issue the command:
|
issue the command:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ ./<build_dir>/examples/dpdk-bbdev --vdev='baseband_turbo_sw' -w <NIC0PCIADDR> \
|
$ ./<build_dir>/examples/dpdk-bbdev --vdev='baseband_turbo_sw' -a <NIC0PCIADDR> \
|
||||||
-c 0x38 --socket-mem=2,2 --file-prefix=bbdev -- -e 0x10 -d 0x20
|
-c 0x38 --socket-mem=2,2 --file-prefix=bbdev -- -e 0x10 -d 0x20
|
||||||
|
|
||||||
where, NIC0PCIADDR is the PCI address of the Rx port
|
where, NIC0PCIADDR is the PCI address of the Rx port
|
||||||
|
|
||||||
This command creates one virtual bbdev devices ``baseband_turbo_sw`` where the
|
This command creates one virtual bbdev devices ``baseband_turbo_sw`` where the
|
||||||
device gets linked to a corresponding ethernet port as whitelisted by
|
device gets linked to a corresponding ethernet port as allowed by
|
||||||
the parameter -w.
|
the parameter -a.
|
||||||
3 cores are allocated to the application, and assigned as:
|
3 cores are allocated to the application, and assigned as:
|
||||||
|
|
||||||
- core 3 is the main and used to print the stats live on screen,
|
- core 3 is the main and used to print the stats live on screen,
|
||||||
@ -93,20 +93,20 @@ Using Packet Generator with baseband device sample application
|
|||||||
To allow the bbdev sample app to do the loopback, an influx of traffic is required.
|
To allow the bbdev sample app to do the loopback, an influx of traffic is required.
|
||||||
This can be done by using DPDK Pktgen to burst traffic on two ethernet ports, and
|
This can be done by using DPDK Pktgen to burst traffic on two ethernet ports, and
|
||||||
it will print the transmitted along with the looped-back traffic on Rx ports.
|
it will print the transmitted along with the looped-back traffic on Rx ports.
|
||||||
Executing the command below will generate traffic on the two whitelisted ethernet
|
Executing the command below will generate traffic on the two allowed ethernet
|
||||||
ports.
|
ports.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ ./pktgen-3.4.0/app/x86_64-native-linux-gcc/pktgen -c 0x3 \
|
$ ./pktgen-3.4.0/app/x86_64-native-linux-gcc/pktgen -c 0x3 \
|
||||||
--socket-mem=1,1 --file-prefix=pg -w <NIC1PCIADDR> -- -m 1.0 -P
|
--socket-mem=1,1 --file-prefix=pg -a <NIC1PCIADDR> -- -m 1.0 -P
|
||||||
|
|
||||||
where:
|
where:
|
||||||
|
|
||||||
* ``-c COREMASK``: A hexadecimal bitmask of cores to run on
|
* ``-c COREMASK``: A hexadecimal bitmask of cores to run on
|
||||||
* ``--socket-mem``: Memory to allocate on specific sockets (use comma separated values)
|
* ``--socket-mem``: Memory to allocate on specific sockets (use comma separated values)
|
||||||
* ``--file-prefix``: Prefix for hugepage filenames
|
* ``--file-prefix``: Prefix for hugepage filenames
|
||||||
* ``-w <NIC1PCIADDR>``: Add a PCI device in white list. The argument format is <[domain:]bus:devid.func>.
|
* ``-a <NIC1PCIADDR>``: Add a PCI device in allow list. The argument format is <[domain:]bus:devid.func>.
|
||||||
* ``-m <string>``: Matrix for mapping ports to logical cores.
|
* ``-m <string>``: Matrix for mapping ports to logical cores.
|
||||||
* ``-P``: PROMISCUOUS mode
|
* ``-P``: PROMISCUOUS mode
|
||||||
|
|
||||||
|
@ -46,8 +46,8 @@ these settings is shown below:
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/examples/dpdk-eventdev_pipeline --vdev event_sw0 -- -r1 -t1 /
|
./<build_dir>/examples/dpdk-eventdev_pipeline --vdev event_sw0 -- -r1 -t1 \
|
||||||
-e4 -w FF00 -s4 -n0 -c32 -W1000 -D
|
-e4 -a FF00 -s4 -n0 -c32 -W1000 -D
|
||||||
|
|
||||||
The application has some sanity checking built-in, so if there is a function
|
The application has some sanity checking built-in, so if there is a function
|
||||||
(e.g.; the RX core) which doesn't have a cpu core mask assigned, the application
|
(e.g.; the RX core) which doesn't have a cpu core mask assigned, the application
|
||||||
|
@ -323,15 +323,15 @@ This means that if the application is using a single core and both hardware
|
|||||||
and software crypto devices are detected, hardware devices will be used.
|
and software crypto devices are detected, hardware devices will be used.
|
||||||
|
|
||||||
A way to achieve the case where you want to force the use of virtual crypto
|
A way to achieve the case where you want to force the use of virtual crypto
|
||||||
devices is to whitelist the Ethernet devices needed and therefore implicitly
|
devices is to only use the Ethernet devices needed (via the allow flag)
|
||||||
blacklisting all hardware crypto devices.
|
and therefore implicitly blocking all hardware crypto devices.
|
||||||
|
|
||||||
For example, something like the following command line:
|
For example, something like the following command line:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/examples/dpdk-ipsec-secgw -l 20,21 -n 4 --socket-mem 0,2048 \
|
./<build_dir>/examples/dpdk-ipsec-secgw -l 20,21 -n 4 --socket-mem 0,2048 \
|
||||||
-w 81:00.0 -w 81:00.1 -w 81:00.2 -w 81:00.3 \
|
-a 81:00.0 -a 81:00.1 -a 81:00.2 -a 81:00.3 \
|
||||||
--vdev "crypto_aesni_mb" --vdev "crypto_null" \
|
--vdev "crypto_aesni_mb" --vdev "crypto_null" \
|
||||||
-- \
|
-- \
|
||||||
-p 0xf -P -u 0x3 --config="(0,0,20),(1,0,20),(2,0,21),(3,0,21)" \
|
-p 0xf -P -u 0x3 --config="(0,0,20),(1,0,20),(2,0,21),(3,0,21)" \
|
||||||
@ -929,13 +929,13 @@ The user must setup the following environment variables:
|
|||||||
|
|
||||||
* ``REMOTE_IFACE``: interface name for the test-port on the DUT.
|
* ``REMOTE_IFACE``: interface name for the test-port on the DUT.
|
||||||
|
|
||||||
* ``ETH_DEV``: ethernet device to be used on the SUT by DPDK ('-w <pci-id>')
|
* ``ETH_DEV``: ethernet device to be used on the SUT by DPDK ('-a <pci-id>')
|
||||||
|
|
||||||
Also the user can optionally setup:
|
Also the user can optionally setup:
|
||||||
|
|
||||||
* ``SGW_LCORE``: lcore to run ipsec-secgw on (default value is 0)
|
* ``SGW_LCORE``: lcore to run ipsec-secgw on (default value is 0)
|
||||||
|
|
||||||
* ``CRYPTO_DEV``: crypto device to be used ('-w <pci-id>'). If none specified
|
* ``CRYPTO_DEV``: crypto device to be used ('-a <pci-id>'). If none specified
|
||||||
appropriate vdevs will be created by the script
|
appropriate vdevs will be created by the script
|
||||||
|
|
||||||
Scripts can be used for multiple test scenarios. To check all available
|
Scripts can be used for multiple test scenarios. To check all available
|
||||||
|
@ -138,17 +138,19 @@ Following is the sample command:
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/examples/dpdk-l3fwd -l 0-3 -n 4 -w <event device> -- -p 0x3 --eventq-sched=ordered
|
./<build_dir>/examples/dpdk-l3fwd -l 0-3 -n 4 -a <event device> -- -p 0x3 --eventq-sched=ordered
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/examples/dpdk-l3fwd -l 0-3 -n 4 -w <event device> -- -p 0x03 --mode=eventdev --eventq-sched=ordered
|
./<build_dir>/examples/dpdk-l3fwd -l 0-3 -n 4 -a <event device> \
|
||||||
|
-- -p 0x03 --mode=eventdev --eventq-sched=ordered
|
||||||
|
|
||||||
In this command:
|
In this command:
|
||||||
|
|
||||||
* -w option whitelist the event device supported by platform. Way to pass this device may vary based on platform.
|
* -a option allows the event device supported by platform.
|
||||||
|
The syntax used to indicate this device may vary based on platform.
|
||||||
|
|
||||||
* The --mode option defines PMD to be used for packet I/O.
|
* The --mode option defines PMD to be used for packet I/O.
|
||||||
|
|
||||||
|
@ -378,7 +378,8 @@ See :doc:`Power Management<../prog_guide/power_man>` chapter in the DPDK Program
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./<build_dir>/examples/dpdk-l3fwd-power -l xxx -n 4 -w 0000:xx:00.0 -w 0000:xx:00.1 -- -p 0x3 -P --config="(0,0,xx),(1,0,xx)" --empty-poll="0,0,0" -l 14 -m 9 -h 1
|
./<build_dir>/examples/dpdk-l3fwd-power -l xxx -n 4 -a 0000:xx:00.0 -a 0000:xx:00.1 \
|
||||||
|
-- -p 0x3 -P --config="(0,0,xx),(1,0,xx)" --empty-poll="0,0,0" -l 14 -m 9 -h 1
|
||||||
|
|
||||||
Where,
|
Where,
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ Take IFCVF driver for example:
|
|||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
./dpdk-vdpa -c 0x2 -n 4 --socket-mem 1024,1024 \
|
./dpdk-vdpa -c 0x2 -n 4 --socket-mem 1024,1024 \
|
||||||
-w 0000:06:00.3,vdpa=1 -w 0000:06:00.4,vdpa=1 \
|
-a 0000:06:00.3,vdpa=1 -a 0000:06:00.4,vdpa=1 \
|
||||||
-- --interactive
|
-- --interactive
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
@ -53,9 +53,9 @@ See the DPDK Getting Started Guides for more information on these options.
|
|||||||
One lcore is needed for process admin, tests are run on all other cores.
|
One lcore is needed for process admin, tests are run on all other cores.
|
||||||
To run tests on two lcores, three lcores must be passed to the tool.
|
To run tests on two lcores, three lcores must be passed to the tool.
|
||||||
|
|
||||||
* ``-w <PCI>``
|
* ``-a <PCI>``
|
||||||
|
|
||||||
Add a PCI device in white list.
|
Add a PCI device in allow list.
|
||||||
|
|
||||||
* ``--vdev <driver><id>``
|
* ``--vdev <driver><id>``
|
||||||
|
|
||||||
|
@ -65,9 +65,9 @@ See the DPDK Getting Started Guides for more information on these options.
|
|||||||
Set the hexadecimal bitmask of the cores to run on. The corelist is a
|
Set the hexadecimal bitmask of the cores to run on. The corelist is a
|
||||||
list cores to use.
|
list cores to use.
|
||||||
|
|
||||||
* ``-w <PCI>``
|
* ``-a <PCI>``
|
||||||
|
|
||||||
Add a PCI device in white list.
|
Add a PCI device in allow list.
|
||||||
|
|
||||||
* ``--vdev <driver><id>``
|
* ``--vdev <driver><id>``
|
||||||
|
|
||||||
@ -394,7 +394,7 @@ Call application for performance throughput test of single Aesni MB PMD
|
|||||||
for cipher encryption aes-cbc and auth generation sha1-hmac,
|
for cipher encryption aes-cbc and auth generation sha1-hmac,
|
||||||
one million operations, burst size 32, packet size 64::
|
one million operations, burst size 32, packet size 64::
|
||||||
|
|
||||||
dpdk-test-crypto-perf -l 6-7 --vdev crypto_aesni_mb -w 0000:00:00.0 --
|
dpdk-test-crypto-perf -l 6-7 --vdev crypto_aesni_mb -a 0000:00:00.0 --
|
||||||
--ptest throughput --devtype crypto_aesni_mb --optype cipher-then-auth
|
--ptest throughput --devtype crypto_aesni_mb --optype cipher-then-auth
|
||||||
--cipher-algo aes-cbc --cipher-op encrypt --cipher-key-sz 16 --auth-algo
|
--cipher-algo aes-cbc --cipher-op encrypt --cipher-key-sz 16 --auth-algo
|
||||||
sha1-hmac --auth-op generate --auth-key-sz 64 --digest-sz 12
|
sha1-hmac --auth-op generate --auth-key-sz 64 --digest-sz 12
|
||||||
@ -404,7 +404,7 @@ Call application for performance latency test of two Aesni MB PMD executed
|
|||||||
on two cores for cipher encryption aes-cbc, ten operations in silent mode::
|
on two cores for cipher encryption aes-cbc, ten operations in silent mode::
|
||||||
|
|
||||||
dpdk-test-crypto-perf -l 4-7 --vdev crypto_aesni_mb1
|
dpdk-test-crypto-perf -l 4-7 --vdev crypto_aesni_mb1
|
||||||
--vdev crypto_aesni_mb2 -w 0000:00:00.0 -- --devtype crypto_aesni_mb
|
--vdev crypto_aesni_mb2 -a 0000:00:00.0 -- --devtype crypto_aesni_mb
|
||||||
--cipher-algo aes-cbc --cipher-key-sz 16 --cipher-iv-sz 16
|
--cipher-algo aes-cbc --cipher-key-sz 16 --cipher-iv-sz 16
|
||||||
--cipher-op encrypt --optype cipher-only --silent
|
--cipher-op encrypt --optype cipher-only --silent
|
||||||
--ptest latency --total-ops 10
|
--ptest latency --total-ops 10
|
||||||
@ -414,7 +414,7 @@ for cipher encryption aes-gcm and auth generation aes-gcm,ten operations
|
|||||||
in silent mode, test vector provide in file "test_aes_gcm.data"
|
in silent mode, test vector provide in file "test_aes_gcm.data"
|
||||||
with packet verification::
|
with packet verification::
|
||||||
|
|
||||||
dpdk-test-crypto-perf -l 4-7 --vdev crypto_openssl -w 0000:00:00.0 --
|
dpdk-test-crypto-perf -l 4-7 --vdev crypto_openssl -a 0000:00:00.0 --
|
||||||
--devtype crypto_openssl --aead-algo aes-gcm --aead-key-sz 16
|
--devtype crypto_openssl --aead-algo aes-gcm --aead-key-sz 16
|
||||||
--aead-iv-sz 16 --aead-op encrypt --aead-aad-sz 16 --digest-sz 16
|
--aead-iv-sz 16 --aead-op encrypt --aead-aad-sz 16 --digest-sz 16
|
||||||
--optype aead --silent --ptest verify --total-ops 10
|
--optype aead --silent --ptest verify --total-ops 10
|
||||||
|
@ -65,7 +65,7 @@ with a ``--`` separator:
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
sudo ./dpdk-test-flow_perf -n 4 -w 08:00.0 -- --ingress --ether --ipv4 --queue --rules-count=1000000
|
sudo ./dpdk-test-flow_perf -n 4 -a 08:00.0 -- --ingress --ether --ipv4 --queue --rules-count=1000000
|
||||||
|
|
||||||
The command line options are:
|
The command line options are:
|
||||||
|
|
||||||
|
@ -70,4 +70,4 @@ The data file, will be used as a source data for the RegEx to work on.
|
|||||||
|
|
||||||
The tool has a number of command line options. Here is the sample command line::
|
The tool has a number of command line options. Here is the sample command line::
|
||||||
|
|
||||||
./dpdk-test-regex -w 83:00.0 -- --rules rule_file.rof2 --data data_file.txt --job 100
|
./dpdk-test-regex -a 83:00.0 -- --rules rule_file.rof2 --data data_file.txt --job 100
|
||||||
|
@ -206,7 +206,7 @@ vmbus_parse(const char *name, void *addr)
|
|||||||
/*
|
/*
|
||||||
* scan for matching device args on command line
|
* scan for matching device args on command line
|
||||||
* example:
|
* example:
|
||||||
* -w 'vmbus:635a7ae3-091e-4410-ad59-667c4f8c04c3,latency=20'
|
* -a 'vmbus:635a7ae3-091e-4410-ad59-667c4f8c04c3,latency=20'
|
||||||
*/
|
*/
|
||||||
struct rte_devargs *
|
struct rte_devargs *
|
||||||
vmbus_devargs_lookup(struct rte_vmbus_device *dev)
|
vmbus_devargs_lookup(struct rte_vmbus_device *dev)
|
||||||
|
@ -5151,21 +5151,21 @@ bnxt_parse_dev_args(struct bnxt *bp, struct rte_devargs *devargs)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Handler for "truflow" devarg.
|
* Handler for "truflow" devarg.
|
||||||
* Invoked as for ex: "-w 0000:00:0d.0,host-based-truflow=1"
|
* Invoked as for ex: "-a 0000:00:0d.0,host-based-truflow=1"
|
||||||
*/
|
*/
|
||||||
rte_kvargs_process(kvlist, BNXT_DEVARG_TRUFLOW,
|
rte_kvargs_process(kvlist, BNXT_DEVARG_TRUFLOW,
|
||||||
bnxt_parse_devarg_truflow, bp);
|
bnxt_parse_devarg_truflow, bp);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handler for "flow_xstat" devarg.
|
* Handler for "flow_xstat" devarg.
|
||||||
* Invoked as for ex: "-w 0000:00:0d.0,flow_xstat=1"
|
* Invoked as for ex: "-a 0000:00:0d.0,flow_xstat=1"
|
||||||
*/
|
*/
|
||||||
rte_kvargs_process(kvlist, BNXT_DEVARG_FLOW_XSTAT,
|
rte_kvargs_process(kvlist, BNXT_DEVARG_FLOW_XSTAT,
|
||||||
bnxt_parse_devarg_flow_xstat, bp);
|
bnxt_parse_devarg_flow_xstat, bp);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handler for "max_num_kflows" devarg.
|
* Handler for "max_num_kflows" devarg.
|
||||||
* Invoked as for ex: "-w 000:00:0d.0,max_num_kflows=32"
|
* Invoked as for ex: "-a 000:00:0d.0,max_num_kflows=32"
|
||||||
*/
|
*/
|
||||||
rte_kvargs_process(kvlist, BNXT_DEVARG_MAX_NUM_KFLOWS,
|
rte_kvargs_process(kvlist, BNXT_DEVARG_MAX_NUM_KFLOWS,
|
||||||
bnxt_parse_devarg_max_num_kflows, bp);
|
bnxt_parse_devarg_max_num_kflows, bp);
|
||||||
@ -5569,7 +5569,7 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
|
|||||||
if (kvlist) {
|
if (kvlist) {
|
||||||
/*
|
/*
|
||||||
* Handler for "rep_is_pf" devarg.
|
* Handler for "rep_is_pf" devarg.
|
||||||
* Invoked as for ex: "-w 000:00:0d.0,
|
* Invoked as for ex: "-a 000:00:0d.0,
|
||||||
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
||||||
*/
|
*/
|
||||||
ret = rte_kvargs_process(kvlist, BNXT_DEVARG_REP_IS_PF,
|
ret = rte_kvargs_process(kvlist, BNXT_DEVARG_REP_IS_PF,
|
||||||
@ -5581,7 +5581,7 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
|
|||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Handler for "rep_based_pf" devarg.
|
* Handler for "rep_based_pf" devarg.
|
||||||
* Invoked as for ex: "-w 000:00:0d.0,
|
* Invoked as for ex: "-a 000:00:0d.0,
|
||||||
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
||||||
*/
|
*/
|
||||||
ret = rte_kvargs_process(kvlist,
|
ret = rte_kvargs_process(kvlist,
|
||||||
@ -5594,7 +5594,7 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
|
|||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Handler for "rep_based_pf" devarg.
|
* Handler for "rep_based_pf" devarg.
|
||||||
* Invoked as for ex: "-w 000:00:0d.0,
|
* Invoked as for ex: "-a 000:00:0d.0,
|
||||||
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
||||||
*/
|
*/
|
||||||
ret = rte_kvargs_process(kvlist, BNXT_DEVARG_REP_Q_R2F,
|
ret = rte_kvargs_process(kvlist, BNXT_DEVARG_REP_Q_R2F,
|
||||||
@ -5606,7 +5606,7 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
|
|||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Handler for "rep_based_pf" devarg.
|
* Handler for "rep_based_pf" devarg.
|
||||||
* Invoked as for ex: "-w 000:00:0d.0,
|
* Invoked as for ex: "-a 000:00:0d.0,
|
||||||
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
||||||
*/
|
*/
|
||||||
ret = rte_kvargs_process(kvlist, BNXT_DEVARG_REP_Q_F2R,
|
ret = rte_kvargs_process(kvlist, BNXT_DEVARG_REP_Q_F2R,
|
||||||
@ -5618,7 +5618,7 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
|
|||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Handler for "rep_based_pf" devarg.
|
* Handler for "rep_based_pf" devarg.
|
||||||
* Invoked as for ex: "-w 000:00:0d.0,
|
* Invoked as for ex: "-a 000:00:0d.0,
|
||||||
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
||||||
*/
|
*/
|
||||||
ret = rte_kvargs_process(kvlist, BNXT_DEVARG_REP_FC_R2F,
|
ret = rte_kvargs_process(kvlist, BNXT_DEVARG_REP_FC_R2F,
|
||||||
@ -5630,7 +5630,7 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
|
|||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Handler for "rep_based_pf" devarg.
|
* Handler for "rep_based_pf" devarg.
|
||||||
* Invoked as for ex: "-w 000:00:0d.0,
|
* Invoked as for ex: "-a 000:00:0d.0,
|
||||||
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
* rep-based-pf=<pf index> rep-is-pf=<VF=0 or PF=1>"
|
||||||
*/
|
*/
|
||||||
ret = rte_kvargs_process(kvlist, BNXT_DEVARG_REP_FC_F2R,
|
ret = rte_kvargs_process(kvlist, BNXT_DEVARG_REP_FC_F2R,
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
# SGW_PATH - path to the ipsec-secgw binary to test
|
# SGW_PATH - path to the ipsec-secgw binary to test
|
||||||
# REMOTE_HOST - ip/hostname of the DUT
|
# REMOTE_HOST - ip/hostname of the DUT
|
||||||
# REMOTE_IFACE - iface name for the test-port on DUT
|
# REMOTE_IFACE - iface name for the test-port on DUT
|
||||||
# ETH_DEV - ethernet device to be used on SUT by DPDK ('-w <pci-id>')
|
# ETH_DEV - ethernet device to be used on SUT by DPDK ('-a <pci-id>')
|
||||||
# Also user can optionally setup:
|
# Also user can optionally setup:
|
||||||
# SGW_LCORE - lcore to run ipsec-secgw on (default value is 0)
|
# SGW_LCORE - lcore to run ipsec-secgw on (default value is 0)
|
||||||
# SGW_MODE - run ipsec-secgw in legacy mode or with use of library
|
# SGW_MODE - run ipsec-secgw in legacy mode or with use of library
|
||||||
@ -29,7 +29,7 @@
|
|||||||
# values: cpu-crypto/lookaside-none (unset on default)
|
# values: cpu-crypto/lookaside-none (unset on default)
|
||||||
# CRYPTO_PRIM_TYPE - run ipsec-secgw with crypto primary type set
|
# CRYPTO_PRIM_TYPE - run ipsec-secgw with crypto primary type set
|
||||||
# values: cpu-crypto (unset on default)
|
# values: cpu-crypto (unset on default)
|
||||||
# CRYPTO_DEV - crypto device to be used ('-w <pci-id>')
|
# CRYPTO_DEV - crypto device to be used ('-a <pci-id>')
|
||||||
# if none specified appropriate vdevs will be created by the script
|
# if none specified appropriate vdevs will be created by the script
|
||||||
# SGW_MULTI_SEG - ipsec-secgw option to enable reassembly support and
|
# SGW_MULTI_SEG - ipsec-secgw option to enable reassembly support and
|
||||||
# specify size of reassembly table (i.e. SGW_MULTI_SEG=128)
|
# specify size of reassembly table (i.e. SGW_MULTI_SEG=128)
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
# SGW_PATH - path to the ipsec-secgw binary to test
|
# SGW_PATH - path to the ipsec-secgw binary to test
|
||||||
# REMOTE_HOST - ip/hostname of the DUT
|
# REMOTE_HOST - ip/hostname of the DUT
|
||||||
# REMOTE_IFACE - iface name for the test-port on DUT
|
# REMOTE_IFACE - iface name for the test-port on DUT
|
||||||
# ETH_DEV - ethernet device to be used on SUT by DPDK ('-w <pci-id>')
|
# ETH_DEV - ethernet device to be used on SUT by DPDK ('-a <pci-id>')
|
||||||
# Also user can optionally setup:
|
# Also user can optionally setup:
|
||||||
# SGW_LCORE - lcore to run ipsec-secgw on (default value is 0)
|
# SGW_LCORE - lcore to run ipsec-secgw on (default value is 0)
|
||||||
# CRYPTO_DEV - crypto device to be used ('-w <pci-id>')
|
# CRYPTO_DEV - crypto device to be used ('-a <pci-id>')
|
||||||
# if none specified appropriate vdevs will be created by the script
|
# if none specified appropriate vdevs will be created by the script
|
||||||
# SGW_MULTI_SEG - ipsec-secgw option to enable reassembly support and
|
# SGW_MULTI_SEG - ipsec-secgw option to enable reassembly support and
|
||||||
# specify size of reassembly table (i.e. SGW_MULTI_SEG=128)
|
# specify size of reassembly table (i.e. SGW_MULTI_SEG=128)
|
||||||
|
@ -52,7 +52,8 @@
|
|||||||
|
|
||||||
const char
|
const char
|
||||||
eal_short_options[] =
|
eal_short_options[] =
|
||||||
"b:" /* pci-blacklist */
|
"a:" /* allow */
|
||||||
|
"b:" /* block */
|
||||||
"c:" /* coremask */
|
"c:" /* coremask */
|
||||||
"s:" /* service coremask */
|
"s:" /* service coremask */
|
||||||
"d:" /* driver */
|
"d:" /* driver */
|
||||||
@ -63,7 +64,7 @@ eal_short_options[] =
|
|||||||
"n:" /* memory channels */
|
"n:" /* memory channels */
|
||||||
"r:" /* memory ranks */
|
"r:" /* memory ranks */
|
||||||
"v" /* version */
|
"v" /* version */
|
||||||
"w:" /* pci-whitelist */
|
"w:" /* pci-whitelist (deprecated) */
|
||||||
;
|
;
|
||||||
|
|
||||||
const struct option
|
const struct option
|
||||||
@ -89,8 +90,8 @@ eal_long_options[] = {
|
|||||||
{OPT_NO_PCI, 0, NULL, OPT_NO_PCI_NUM },
|
{OPT_NO_PCI, 0, NULL, OPT_NO_PCI_NUM },
|
||||||
{OPT_NO_SHCONF, 0, NULL, OPT_NO_SHCONF_NUM },
|
{OPT_NO_SHCONF, 0, NULL, OPT_NO_SHCONF_NUM },
|
||||||
{OPT_IN_MEMORY, 0, NULL, OPT_IN_MEMORY_NUM },
|
{OPT_IN_MEMORY, 0, NULL, OPT_IN_MEMORY_NUM },
|
||||||
{OPT_PCI_BLACKLIST, 1, NULL, OPT_PCI_BLACKLIST_NUM },
|
{OPT_DEV_BLOCK, 1, NULL, OPT_DEV_BLOCK_NUM },
|
||||||
{OPT_PCI_WHITELIST, 1, NULL, OPT_PCI_WHITELIST_NUM },
|
{OPT_DEV_ALLOW, 1, NULL, OPT_DEV_ALLOW_NUM },
|
||||||
{OPT_PROC_TYPE, 1, NULL, OPT_PROC_TYPE_NUM },
|
{OPT_PROC_TYPE, 1, NULL, OPT_PROC_TYPE_NUM },
|
||||||
{OPT_SOCKET_MEM, 1, NULL, OPT_SOCKET_MEM_NUM },
|
{OPT_SOCKET_MEM, 1, NULL, OPT_SOCKET_MEM_NUM },
|
||||||
{OPT_SOCKET_LIMIT, 1, NULL, OPT_SOCKET_LIMIT_NUM },
|
{OPT_SOCKET_LIMIT, 1, NULL, OPT_SOCKET_LIMIT_NUM },
|
||||||
@ -105,6 +106,11 @@ eal_long_options[] = {
|
|||||||
{OPT_TELEMETRY, 0, NULL, OPT_TELEMETRY_NUM },
|
{OPT_TELEMETRY, 0, NULL, OPT_TELEMETRY_NUM },
|
||||||
{OPT_NO_TELEMETRY, 0, NULL, OPT_NO_TELEMETRY_NUM },
|
{OPT_NO_TELEMETRY, 0, NULL, OPT_NO_TELEMETRY_NUM },
|
||||||
{OPT_FORCE_MAX_SIMD_BITWIDTH, 1, NULL, OPT_FORCE_MAX_SIMD_BITWIDTH_NUM},
|
{OPT_FORCE_MAX_SIMD_BITWIDTH, 1, NULL, OPT_FORCE_MAX_SIMD_BITWIDTH_NUM},
|
||||||
|
|
||||||
|
/* legacy options that will be removed in future */
|
||||||
|
{OPT_PCI_BLACKLIST, 1, NULL, OPT_PCI_BLACKLIST_NUM },
|
||||||
|
{OPT_PCI_WHITELIST, 1, NULL, OPT_PCI_WHITELIST_NUM },
|
||||||
|
|
||||||
{0, 0, NULL, 0 }
|
{0, 0, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1448,28 +1454,31 @@ eal_parse_common_option(int opt, const char *optarg,
|
|||||||
struct internal_config *conf)
|
struct internal_config *conf)
|
||||||
{
|
{
|
||||||
static int b_used;
|
static int b_used;
|
||||||
static int w_used;
|
static int a_used;
|
||||||
|
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
/* blacklist */
|
case OPT_PCI_BLACKLIST_NUM:
|
||||||
|
fprintf(stderr,
|
||||||
|
"Option --pci-blacklist is deprecated, use -b, --block instead\n");
|
||||||
|
/* fallthrough */
|
||||||
case 'b':
|
case 'b':
|
||||||
if (w_used)
|
if (a_used)
|
||||||
goto bw_used;
|
goto ba_conflict;
|
||||||
if (eal_option_device_add(RTE_DEVTYPE_BLOCKED,
|
if (eal_option_device_add(RTE_DEVTYPE_BLOCKED, optarg) < 0)
|
||||||
optarg) < 0) {
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
b_used = 1;
|
b_used = 1;
|
||||||
break;
|
break;
|
||||||
/* whitelist */
|
|
||||||
case 'w':
|
case 'w':
|
||||||
|
fprintf(stderr,
|
||||||
|
"Option -w, --pci-whitelist is deprecated, use -a, --allow option instead\n");
|
||||||
|
/* fallthrough */
|
||||||
|
case 'a':
|
||||||
if (b_used)
|
if (b_used)
|
||||||
goto bw_used;
|
goto ba_conflict;
|
||||||
if (eal_option_device_add(RTE_DEVTYPE_ALLOWED,
|
if (eal_option_device_add(RTE_DEVTYPE_ALLOWED, optarg) < 0)
|
||||||
optarg) < 0) {
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
a_used = 1;
|
||||||
w_used = 1;
|
|
||||||
break;
|
break;
|
||||||
/* coremask */
|
/* coremask */
|
||||||
case 'c': {
|
case 'c': {
|
||||||
@ -1760,9 +1769,10 @@ eal_parse_common_option(int opt, const char *optarg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
bw_used:
|
|
||||||
RTE_LOG(ERR, EAL, "Options blacklist (-b) and whitelist (-w) "
|
ba_conflict:
|
||||||
"cannot be used at the same time\n");
|
RTE_LOG(ERR, EAL,
|
||||||
|
"Options allow (-a) and block (-b) can't be used at the same time\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1997,14 +2007,14 @@ eal_common_usage(void)
|
|||||||
" -n CHANNELS Number of memory channels\n"
|
" -n CHANNELS Number of memory channels\n"
|
||||||
" -m MB Memory to allocate (see also --"OPT_SOCKET_MEM")\n"
|
" -m MB Memory to allocate (see also --"OPT_SOCKET_MEM")\n"
|
||||||
" -r RANKS Force number of memory ranks (don't detect)\n"
|
" -r RANKS Force number of memory ranks (don't detect)\n"
|
||||||
" -b, --"OPT_PCI_BLACKLIST" Add a PCI device in black list.\n"
|
" -b, --block Add a device to the blocked list.\n"
|
||||||
" Prevent EAL from using this PCI device. The argument\n"
|
" Prevent EAL from using this device. The argument\n"
|
||||||
" format is <domain:bus:devid.func>.\n"
|
" format for PCI devices is <domain:bus:devid.func>.\n"
|
||||||
" -w, --"OPT_PCI_WHITELIST" Add a PCI device in white list.\n"
|
" -a, --allow Add a device to the allow list.\n"
|
||||||
" Only use the specified PCI devices. The argument format\n"
|
" Only use the specified devices. The argument format\n"
|
||||||
" is <[domain:]bus:devid.func>. This option can be present\n"
|
" for PCI devices is <[domain:]bus:devid.func>.\n"
|
||||||
" several times (once per device).\n"
|
" This option can be present several times.\n"
|
||||||
" [NOTE: PCI whitelist cannot be used with -b option]\n"
|
" [NOTE: " OPT_DEV_ALLOW " cannot be used with "OPT_DEV_BLOCK" option]\n"
|
||||||
" --"OPT_VDEV" Add a virtual device.\n"
|
" --"OPT_VDEV" Add a virtual device.\n"
|
||||||
" The argument format is <driver><id>[,key=val,...]\n"
|
" The argument format is <driver><id>[,key=val,...]\n"
|
||||||
" (ex: --vdev=net_pcap0,iface=eth2).\n"
|
" (ex: --vdev=net_pcap0,iface=eth2).\n"
|
||||||
|
@ -13,8 +13,12 @@ enum {
|
|||||||
/* long options mapped to a short option */
|
/* long options mapped to a short option */
|
||||||
#define OPT_HELP "help"
|
#define OPT_HELP "help"
|
||||||
OPT_HELP_NUM = 'h',
|
OPT_HELP_NUM = 'h',
|
||||||
#define OPT_PCI_BLACKLIST "pci-blacklist"
|
#define OPT_DEV_ALLOW "allow"
|
||||||
OPT_PCI_BLACKLIST_NUM = 'b',
|
OPT_DEV_ALLOW_NUM = 'a',
|
||||||
|
#define OPT_DEV_BLOCK "block"
|
||||||
|
OPT_DEV_BLOCK_NUM = 'b',
|
||||||
|
|
||||||
|
/* legacy option that will be removed in future */
|
||||||
#define OPT_PCI_WHITELIST "pci-whitelist"
|
#define OPT_PCI_WHITELIST "pci-whitelist"
|
||||||
OPT_PCI_WHITELIST_NUM = 'w',
|
OPT_PCI_WHITELIST_NUM = 'w',
|
||||||
|
|
||||||
@ -89,6 +93,11 @@ enum {
|
|||||||
OPT_NO_TELEMETRY_NUM,
|
OPT_NO_TELEMETRY_NUM,
|
||||||
#define OPT_FORCE_MAX_SIMD_BITWIDTH "force-max-simd-bitwidth"
|
#define OPT_FORCE_MAX_SIMD_BITWIDTH "force-max-simd-bitwidth"
|
||||||
OPT_FORCE_MAX_SIMD_BITWIDTH_NUM,
|
OPT_FORCE_MAX_SIMD_BITWIDTH_NUM,
|
||||||
|
|
||||||
|
/* legacy option that will be removed in future */
|
||||||
|
#define OPT_PCI_BLACKLIST "pci-blacklist"
|
||||||
|
OPT_PCI_BLACKLIST_NUM,
|
||||||
|
|
||||||
OPT_LONG_MAX_NUM
|
OPT_LONG_MAX_NUM
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user