On 11/6/26 14:27, Bing Zhao wrote:

> The PACKET_IGNORE_OUTGOING socket option is used unconditionally,
> but it was only added to the uapi headers in Linux 4.20. The build
> fails on distributions shipping older kernel headers, like RHEL 8
> (kernel-headers-4.18.0-193.el8, gcc 8.5.0):
>
...
>
> DPDK documents Linux 5.4 as the minimum kernel, but the PMD already
> tolerates older kernels for multi-queue ports. Do the same here
> instead of failing the probe, for example on the 4.18 kernel of
> RHEL 8.
>
> Fixes: 3db7aa7868b2 ("net/af_packet: use kernel to filter single-queue Rx")
>
> Signed-off-by: Bing Zhao <[email protected]>
> ---
>  doc/guides/nics/af_packet.rst             |  1 +
>  drivers/net/af_packet/rte_eth_af_packet.c | 16 ++++++++++++++--
>  2 files changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/doc/guides/nics/af_packet.rst b/doc/guides/nics/af_packet.rst
> index 6282f1e18b..09e79ff392 100644

Thank you for the patch.

I do not think it is a literal fix since the feature to ignore outgoing packets in the AF_PACKET PMD was added new in DPDK 26.11 which requires Kernel >= 5.4 which you mentioned.

It is, of course, a valuable feature to older versions of DPDK and/or Linux. I added that feature in a patch series. The first patch of that series adds the feature in a way that does not require `setsockopt(...PACKET_IGNORE_OUTGOING...)`, doing all the filtering in the PMD. It is in commit b44eeed1d7. It could be cherry picked to the stable versions, providing that feature in DPDK versions that still support the older kernel.

If RHEL 8 uses Linux 4.18, and there is a requirement somewhere that the current DPDK must be compatible with it, should DPDK's Linux kernel required be lowered to 4.18 maybe?

According to the docs, the following stable versions [1] are still support which I have annotated with the documented required Linux kernel versions [2]:

* 23.11, EOL December 2026, Linux >= 4.14
* 24.11, EOL December 2027, Linux >= 4.19
* 25.11, EOL December 2028, Linux >= 5.4

[1]: Stable Versions: https://core.dpdk.org/roadmap/
[2]: Requirements: https://doc.dpdk.org/guides-23.11/linux_gsg/sys_reqs.html https://doc.dpdk.org/guides-24.11/linux_gsg/sys_reqs.html https://doc.dpdk.org/guides-25.11/linux_gsg/sys_reqs.html

To me this looks like RHEL 8 is simply not compatible with DPDK 25.11 or newer if it is still using Linux 4.18. Lowering the required version to 4.18 would be odd considering 24.11 requires 4.19 and 25.11 5.4.

If DPDK needs to stay compatible with RHEL 8, would this compatibility be required in all parts of DPDK or only some? If only parts, which parts or areas? Maybe these parts and areas then need to be listed somewhere so that new patches can be developed accordingly.



Reply via email to