diff options
author | Denis Ovsienko <infrastation@yandex.ru> | 2011-12-04 23:21:55 +0400 |
---|---|---|
committer | Denis Ovsienko <infrastation@yandex.ru> | 2012-01-02 18:23:24 +0400 |
commit | d171bf58ef12ace43d48565e6870722dece1e6ed (patch) | |
tree | 2cdd66f99933f4e0f0d175ce31599cbb6cbb981f /ripd/rip_peer.c | |
parent | 8c7f49d27767886b3706dfca11c1e13abeab7c63 (diff) |
lib: optimize ip_masklen()
The new implementation makes use of a 64KB mapping table, which makes it
possible to compute masklen faster and with constant execution time. The
map also allows for additional version of the function, which can detect
errors in input argument.
The previous implementation had a variable cost of execution, which
depended on masklen in a non-linear manner, and at its worst (/31) was
4 times slower, than the new implementation. The only case of old
function just slightly outperforming the new one is /0, which is of
little practical interest.
Diffstat (limited to 'ripd/rip_peer.c')
0 files changed, 0 insertions, 0 deletions