|WARNING| [2/2] net/i40e: program default RSS RETA at port configure
dpdklab at iol.unh.edu
dpdklab at iol.unh.edu
Wed Aug 12 16:58:05 CEST 2026
Test-Label: ai-code-review
Test-Status: WARNING
https://dpdk.org/patch/167572
_AI Code Review_
=== Patch Review: series.patch (via Claude) ===
Review date: 2026-08-12
# DPDK Patch Review
## Patch 1/2: net/i40e: preserve RSS RETA across port stop and start
### Errors
None identified.
### Warnings
None identified.
### Info
**Code correctness:**
The fix correctly moves the `rss_reta_updated = 0` assignment from `i40e_dev_stop()` to `i40e_dev_configure()`. This preserves user-configured RETA across stop/start while still resetting it on reconfigure, which matches the expected ethdev API behavior.
**Comment clarity:**
The comment "A new configuration reverts the RETA to the driver default" accurately describes the behavior.
**Error handling:**
The existing error handling path (`goto err`) after `i40e_dev_init_vlan()` is still valid and will handle any errors from the subsequent code path.
---
## Patch 2/2: net/i40e: program default RSS RETA at port configure
### Errors
**Missing error check propagation:**
The function `i40e_pf_reset_rss_reta()` can fail (returns non-zero on error), and the code checks the return value but does not properly propagate the error through the existing error path. The patch returns directly on error, but this bypasses the cleanup code at `err:` label if `i40e_dev_init_vlan()` or other subsequent calls fail.
```c
/* Current code */
ret = i40e_pf_reset_rss_reta(pf);
if (ret)
return ret;
ret = i40e_dev_init_vlan(dev);
if (ret < 0)
goto err; /* This goto err is BELOW the early return */
```
**Suggested fix:**
Use the existing error handling pattern:
```c
ret = i40e_pf_reset_rss_reta(pf);
if (ret != 0)
goto err;
ret = i40e_dev_init_vlan(dev);
if (ret < 0)
goto err;
```
This ensures consistent error handling throughout the function and properly cleans up if either `i40e_pf_reset_rss_reta()` or subsequent operations fail.
### Warnings
None identified.
### Info
**Design consideration:**
The comment "VMDQ queue counts aren't known until queue setup, so that case is still handled at start" in the commit message suggests there's still conditional RETA programming logic in `i40e_dev_rx_init()`. The patch only adds the call at configure time but doesn't show whether the logic at start time correctly handles the case where RETA was already programmed here. This should be verified but is not visible in the patch context.
---
## Summary
- **Patch 1/2:** Clean, correct fix for preserving RETA across stop/start
- **Patch 2/2:** Logic is sound but has an error handling inconsistency that could lead to missed cleanup if `i40e_pf_reset_rss_reta()` fails
More information about the test-report
mailing list