net/af_xdp: disable secondary process support

Since the AF_XDP PMD does not work for secondary processes as reported
in Bugzilla 805, check for the process type at the beginning of probe
and return ENOTSUP if the process type is secondary.

It is planned that secondary processes will be supported by the PMD in
full in a future release by using rte_mp_msg to pass the state to the
secondary process that it requires in order to work.

Bugzilla ID: 805
Fixes: f1debd77efaf ("net/af_xdp: introduce AF_XDP PMD")
Cc: stable@dpdk.org

Reported-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
Ciara Loftus 2021-10-08 07:50:20 +00:00 committed by Ferruh Yigit
parent 3ac2dffae8
commit 0668d82908
2 changed files with 9 additions and 10 deletions

View File

@ -85,6 +85,10 @@ New Features
* Default VLAN strip behavior was changed. VLAN tag won't be stripped
unless ``DEV_RX_OFFLOAD_VLAN_STRIP`` offload is enabled.
* **Updated AF_XDP PMD.**
* Disabled secondary process support.
* **Updated Broadcom bnxt PMD.**
* Added flow offload support for Thor.

View File

@ -1783,16 +1783,11 @@ rte_pmd_af_xdp_probe(struct rte_vdev_device *dev)
rte_vdev_device_name(dev));
name = rte_vdev_device_name(dev);
if (rte_eal_process_type() == RTE_PROC_SECONDARY &&
strlen(rte_vdev_device_args(dev)) == 0) {
eth_dev = rte_eth_dev_attach_secondary(name);
if (eth_dev == NULL) {
AF_XDP_LOG(ERR, "Failed to probe %s\n", name);
return -EINVAL;
}
eth_dev->dev_ops = &ops;
rte_eth_dev_probing_finish(eth_dev);
return 0;
if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
AF_XDP_LOG(ERR, "Failed to probe %s. "
"AF_XDP PMD does not support secondary processes.\n",
name);
return -ENOTSUP;
}
kvlist = rte_kvargs_parse(rte_vdev_device_args(dev), valid_arguments);