[ovs-dev] [PATCH v3 1/1] netdev-dpdk: remove enabling scatter for jumbo RX support

Pablo Cascón pablo.cascon at netronome.com
Fri Apr 20 16:24:37 UTC 2018


Currently to RX jumbo packets fails for NICs not supporting scatter.
Scatter is not strictly needed for jumbo RX support. This change fixes
the issue by only enabling scatter for NICs known to need it to
support jumbo RX. Add a quirk for "igb" while the PMD is fixed.

Reported-by: Louis Peens <louis.peens at netronome.com>
Signed-off-by: Pablo Cascón <pablo.cascon at netronome.com>
Reviewed-by: Simon Horman <simon.horman at netronome.com>
---

Changelog:
v3->v2:
   - only check for driver_name
   - tested with "nfp" and not with "igb"
 

 lib/netdev-dpdk.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index ee39cbe..02ed85b 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -694,11 +694,17 @@ dpdk_eth_dev_queue_setup(struct netdev_dpdk *dev, int n_rxq, int n_txq)
     int diag = 0;
     int i;
     struct rte_eth_conf conf = port_conf;
+    struct rte_eth_dev_info info;
 
-    /* For some NICs (e.g. Niantic), scatter_rx mode needs to be explicitly
-     * enabled. */
+    /* Quirk: as of DPDK 17.11.1 igb's PMD requires explicitly
+     * enabling scatter to support jumbo RX. Note: PMDs are not
+     * required to set the offload capabilities and so is not reliable
+     * info, only the driver_name is after testing the PMD/NIC */
     if (dev->mtu > ETHER_MTU) {
-        conf.rxmode.enable_scatter = 1;
+        rte_eth_dev_info_get(dev->port_id, &info);
+        if (!strcmp(info.driver_name, "igb")) {
+            conf.rxmode.enable_scatter = 1;
+        }
     }
 
     conf.rxmode.hw_ip_checksum = (dev->hw_ol_features &
-- 
2.7.4



More information about the dev mailing list