contrail-vrouter-dpdk: fail with XL710 (i40e dpdk driver), "Error getting RSS RETA info"

Bug #1695276 reported by Sergey Kreys
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R3.2
Fix Committed
Undecided
Unassigned
Trunk
Fix Committed
Undecided
Unassigned
OpenContrail
New
Undecided
Unassigned

Bug Description

We use Intel XL710 40GbE. It's handled by i40e driver in DPDK.
contrail-vrouter-dpdk fails to create vhost0 interface, following error observed in logs:

2017-06-01 13:35:49,921 PMD: i40e_pf_config_rss(): Max of contiguous 8 PF queues are configured
2017-06-01 13:35:49,966 VROUTER: Error getting RSS RETA info: Unknown error -22 (-22)
2017-06-01 13:35:49,966 VROUTER: error initializing ethdev 0 RSS: Invalid argument (22)
2017-06-01 13:35:49,966 VROUTER: Error getting RSS RETA info: Unknown error -22 (-22)
2017-06-01 13:35:49,966 VROUTER: Deleting vif 0 eth device

Root cause found:
1. Intel xl710 NIC supports 512 rss entries per PF in redirection table (ref. http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf).
2. This value (512) is set to internal structure in i40e drv, and propagated to contrail-vrouter (via rte_eth_dev_info_get called from dpdk_ethdev_info_update).
3. Contrail vrouter takes this number and makes this thing with it:
    ethdev->ethdev_reta_size = RTE_MIN(dev_info.reta_size, VR_DPDK_MAX_RETA_SIZE);
thus the number becomes 128 (value of "VR_DPDK_MAX_RETA_SIZE");
4. Contrail calls i40e driver function (via rte_eth_dev_rss_reta_query) giving 128 to it as a reta_size;
5. i40e driver fails in `i40e_dev_rss_reta_query` since it expects to get exactly same value as saved in internal structure, i.e. 512.

Suggested fix:
Increase value VR_DPDK_MAX_RETA_SIZE, set it to 512.

Tags: dpdk vrouter
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/32487
Submitter: Anonymous Coward (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/32487
Committed: http://github.com/Juniper/contrail-vrouter/commit/86259ecbfacb7b0d305ed10396e64fad51586690
Submitter: Zuul (<email address hidden>)
Branch: master

commit 86259ecbfacb7b0d305ed10396e64fad51586690
Author: Sergey Kreys <email address hidden>
Date: Fri Jun 2 17:10:31 2017 +0300

Set VR_DPDK_MAX_RETA_SIZE to 512

Some NICs have reta_size more than 128.
For example, Intel XL710 has 512.

Change-Id: I3ee45e874f6c089bd9d564c33c5ff07cb3b41e25
Closes-bug: #1695276

Jeba Paulaiyan (jebap)
tags: added: dpdk vrouter
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.2

Review in progress for https://review.opencontrail.org/38871
Submitter: Raja Sivaramakrishnan (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/38871
Committed: http://github.com/Juniper/contrail-vrouter/commit/da4f30916c53a3bfd246823109d598b9a07fd360
Submitter: Zuul (<email address hidden>)
Branch: R3.2

commit da4f30916c53a3bfd246823109d598b9a07fd360
Author: Sergey Kreys <email address hidden>
Date: Fri Jun 2 17:10:31 2017 +0300

Set VR_DPDK_MAX_RETA_SIZE to 512

Some NICs have reta_size more than 128.
For example, Intel XL710 has 512.

Change-Id: I3ee45e874f6c089bd9d564c33c5ff07cb3b41e25
Closes-bug: #1695276

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.