diff options
| author | Brian Haley <[email protected]> | 2023-01-30 17:14:28 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2023-02-02 05:02:54 +0000 |
| commit | 62e395f82d04510b0f86e5e603e29412be88596f (patch) | |
| tree | 0389f920c74480c2b9d32661450987891fa7f979 /net/ipv6/tcp_ipv6.c | |
| parent | Merge branch 'net-support-ipv4-big-tcp' (diff) | |
| download | kernel-62e395f82d04510b0f86e5e603e29412be88596f.tar.gz kernel-62e395f82d04510b0f86e5e603e29412be88596f.zip | |
neighbor: fix proxy_delay usage when it is zero
When set to zero, the neighbor sysctl proxy_delay value
does not cause an immediate reply for ARP/ND requests
as expected, it instead causes a random delay between
[0, U32_MAX). Looking at this comment from
__get_random_u32_below() explains the reason:
/*
* This function is technically undefined for ceil == 0, and in fact
* for the non-underscored constant version in the header, we build bug
* on that. But for the non-constant case, it's convenient to have that
* evaluate to being a straight call to get_random_u32(), so that
* get_random_u32_inclusive() can work over its whole range without
* undefined behavior.
*/
Added helper function that does not call get_random_u32_below()
if proxy_delay is zero and just uses the current value of
jiffies instead, causing pneigh_enqueue() to respond
immediately.
Also added definition of proxy_delay to ip-sysctl.txt since
it was missing.
Signed-off-by: Brian Haley <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
0 files changed, 0 insertions, 0 deletions
