Executive brief
This update addresses a limitation in the Linux kernel's networking subsystem related to how network traffic is distributed across multiple paths. Previously, the system could only handle a small range of 'weights' for routing decisions, which could lead to suboptimal traffic management in large-scale data center networks. The fix expands this capacity, allowing for more precise control over network traffic and improving overall reliability and performance in complex environments.
Technical details
This is a functional enhancement and hardening fix in the Linux kernel's nexthop management (net/ipv4/nexthop.c). In large CLOS network topologies, the previous 8-bit (u8) limitation for nexthop weights was insufficient for precise ECMP weight ratios required during link failures. The patch expands the weight field to 16-bit (u16) by utilizing the previously reserved 'resvd1' field in the 'nexthop_grp' UAPI structure, renaming it to 'weight_high'. The implementation uses a two-step conversion process to ensure type safety and prevent numerical errors during the transition from u8 to u16. This change maintains backward compatibility with older userspace tools while allowing newer tools to configure weights up to 65535.
Affected products
- Linux Linux Kernel Versions prior to the fix in August 2024
Timeline
- 2024-08-12: patched: Patch committed to Linux stable tree
- 2026-07-26: advisory: CVE published via NVD