Hi Nikolay The man page says that the bridge forward_delay is in units of seconds, and should be between 2 and 30. I've tested on a couple of different kernel versions, and this appears to be not working correctly: ip link set br0 type bridge forward_delay 2 RTNETLINK answers: Numerical result out of range ip link set br0 type bridge forward_delay 199 RTNETLINK answers: Numerical result out of range ip link set br0 type bridge forward_delay 200 # ip link set br0 type bridge forward_delay 3000 # ip link set br0 type bridge forward_delay 3001 RTNETLINK answers: Numerical result out of range I've not checked what delay is actually being used here, but clearly something is mixed up. grep HZ .config CONFIG_HZ_PERIODIC=y # CONFIG_NO_HZ_IDLE is not set # CONFIG_NO_HZ_FULL is not set # CONFIG_NO_HZ is not set CONFIG_HZ_FIXED=0 CONFIG_HZ_100=y # CONFIG_HZ_200 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set # CONFIG_HZ_500 is not set # CONFIG_HZ_1000 is not set CONFIG_HZ=100 Thanks Andrew
Nikolay Aleksandrov
2019-Jul-02 21:19 UTC
[Bridge] Validation of forward_delay seems wrong...
On 02/07/2019 23:47, Andrew Lunn wrote:> Hi Nikolay > > The man page says that the bridge forward_delay is in units of > seconds, and should be between 2 and 30. > > I've tested on a couple of different kernel versions, and this appears > to be not working correctly: > > ip link set br0 type bridge forward_delay 2 > RTNETLINK answers: Numerical result out of range > > ip link set br0 type bridge forward_delay 199 > RTNETLINK answers: Numerical result out of range > > ip link set br0 type bridge forward_delay 200 > # > > ip link set br0 type bridge forward_delay 3000 > # > > ip link set br0 type bridge forward_delay 3001 > RTNETLINK answers: Numerical result out of range > > I've not checked what delay is actually being used here, but clearly > something is mixed up. > > grep HZ .config > CONFIG_HZ_PERIODIC=y > # CONFIG_NO_HZ_IDLE is not set > # CONFIG_NO_HZ_FULL is not set > # CONFIG_NO_HZ is not set > CONFIG_HZ_FIXED=0 > CONFIG_HZ_100=y > # CONFIG_HZ_200 is not set > # CONFIG_HZ_250 is not set > # CONFIG_HZ_300 is not set > # CONFIG_HZ_500 is not set > # CONFIG_HZ_1000 is not set > CONFIG_HZ=100 > > Thanks > Andrew >Hi Andrew, The man page is wrong, these have been in USER_HZ scaled clock_t format from the beginning. TBH a lot of the time/delay bridge config options are messed up like that. We've been discussing adding special _ms versions in iproute2 to make them more user-friendly and understandable. Will cook a patch for the man page. Cheers, Nik