net/af_xdp: disable secondary process support
authorCiara Loftus <ciara.loftus@intel.com>
Fri, 8 Oct 2021 07:50:20 +0000 (07:50 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 8 Oct 2021 11:06:55 +0000 (13:06 +0200)
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>
doc/guides/rel_notes/release_21_11.rst
drivers/net/af_xdp/rte_eth_af_xdp.c

index 3017524..48e0bb6 100644 (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.
index a619dd2..b362ccd 100644 (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);