mirror_frr/lib
Denis Ovsienko d171bf58ef 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.
2012-01-02 18:23:24 +04:00
..
.gitignore [administrivia] Git should ignore backup files and .loT files 2008-08-22 20:00:46 +01:00
buffer.c [c99] change gcc zero-length array to C99 flexible array declaration 2005-11-26 09:21:43 +00:00
buffer.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
checksum.c [lib] Move type cast in Fletcher checksum 2008-11-29 18:04:11 +00:00
checksum.h [lib] Switch Fletcher checksum back to old ospfd version 2008-11-16 18:47:02 +00:00
command.c delete CVS keywords 2011-09-27 21:34:26 +04:00
command.h [bgpd] Stability fixes including bugs 397, 492 2009-07-19 18:28:08 +01:00
daemon.c [warnings] Fix various SOS warnings 2008-08-22 19:52:59 +01:00
distribute.c fix set never used warnings 2011-12-18 20:21:21 +04:00
distribute.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
filter.c lib: call filter delete hook before freeing access list 2011-12-06 15:02:34 +04:00
filter.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
getopt1.c 2005-05-15 Paul Jakma <paul@dishone.st> 2005-05-15 14:25:08 +00:00
getopt.c 2005-08-10 Greg Troxel <gdt@fnord.ir.bbn.com> 2005-08-10 13:20:03 +00:00
getopt.h 2005-08-10 Greg Troxel <gdt@fnord.ir.bbn.com> 2005-08-10 13:20:03 +00:00
hash.c lib: Better hashing of string values using Bernstein hash 2011-03-21 13:30:54 +00:00
hash.h lib: Better hashing of string values using Bernstein hash 2011-03-21 13:30:54 +00:00
if_rmap.c fix set never used warnings 2011-12-18 20:21:21 +04:00
if_rmap.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
if.c lib: fix compile warnings from set-never-used 2011-12-07 01:29:49 +04:00
if.h lib: Add a function to delete all interfaces 2011-03-21 13:30:54 +00:00
jhash.c 2004-07-09 Paul Jakma <paul@dishone.st> 2004-07-09 14:05:47 +00:00
jhash.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
keychain.c [cleanup] Make command nodes static 2009-06-12 17:10:29 +01:00
keychain.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
linklist.c [cleanup] Convert XMALLOC/memset to XCALLOC 2009-06-12 17:07:49 +01:00
linklist.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
log.c lib: put route_types.txt to real use 2011-12-13 19:13:17 +04:00
log.h lib: provide more information in case of failed LOOKUP. 2011-09-27 21:45:53 +04:00
Makefile.am lib: put route_types.txt to real use 2011-12-13 19:13:17 +04:00
md5.c lib: fix warning on little endian 2009-12-09 14:13:27 +03:00
md5.h [lib/md5] md5_loop should take void pointer for more useful caller warnings. 2006-01-17 17:40:45 +00:00
memory.c lib: Fix accounting of memory 2011-03-21 11:09:13 +00:00
memory.h lib: fix memory logging 2010-01-13 20:10:56 +03:00
memtypes.awk [lib] fix gensub call in memtypes.awk to pass "g", not g. 2006-03-30 14:30:19 +00:00
memtypes.c delete CVS keywords 2011-09-27 21:34:26 +04:00
network.c 2005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-02-16 16:25:39 +00:00
network.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
pid_output.c + pidfiles are now always created with 0644 perms instead if LOGFILE_MASK (0600) 2007-10-04 15:09:19 +00:00
plist.c [cleanup] Make command nodes static 2009-06-12 17:10:29 +01:00
plist.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
pqueue.c [ospfd] Fix bad SPF calculation on some topologies - incorrect sorting 2007-08-06 18:52:45 +00:00
pqueue.h [ospfd] Fix bad SPF calculation on some topologies - incorrect sorting 2007-08-06 18:52:45 +00:00
prefix.c lib: optimize ip_masklen() 2012-01-02 18:23:24 +04:00
prefix.h lib: make masklen2ip6() safer and faster 2011-12-13 19:30:39 +04:00
privs.c [privs/Solaris] Quagga should work in zones with IP instances 2007-09-18 18:07:18 +00:00
privs.h 2005-09-29 Paul Jakma <paul.jakma@sun.com> 2005-09-29 14:39:32 +00:00
regex-gnu.h Initial revision 2002-12-13 20:15:29 +00:00
regex.c 2006-01-17 Vincent Jardin <vincent.jardin@6wind.com> 2006-01-17 23:39:04 +00:00
route_types.pl lib: put route_types.txt to real use 2011-12-13 19:13:17 +04:00
route_types.txt lib: put route_types.txt to real use 2011-12-13 19:13:17 +04:00
routemap.c [bgpd] Stability fixes including bugs 397, 492 2009-07-19 18:28:08 +01:00
routemap.h [bgpd] Stability fixes including bugs 397, 492 2009-07-19 18:28:08 +01:00
sigevent.c 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
sigevent.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
smux.c lib: fix SMUX compiler warnings 2011-12-07 01:31:16 +04:00
smux.h [cleanup] Use const in smux interface 2009-06-18 20:18:29 +01:00
sockopt.c lib: compile even without IPV6_TCLASS 2011-10-17 18:59:26 +04:00
sockopt.h IPv6 transport class suppport 2011-10-17 18:59:19 +04:00
sockunion.c lib: add sockopt helper for setting IPV6_V6ONLY and use it 2011-12-13 19:23:38 +04:00
sockunion.h lib: add sockopt helper for setting IPV6_V6ONLY and use it 2011-12-13 19:23:38 +04:00
str.c * configure.ac: Test existance of strndup. 2005-09-19 09:53:21 +00:00
str.h * configure.ac: Test existance of strndup. 2005-09-19 09:53:21 +00:00
stream.c [lib] trivial: add const qualifier to stream_put/write 2008-06-07 20:42:07 +00:00
stream.h [lib] trivial: add const qualifier to stream_put/write 2008-06-07 20:42:07 +00:00
table.c lib: Fix bug in prefix trie lookup 2010-12-08 17:06:12 +00:00
table.h lib: make match functions take const args 2009-12-08 12:00:50 +03:00
thread.c lib: Add a command to clear the thread CPU history data 2010-12-08 16:53:09 +00:00
thread.h lib: Add a command to clear the thread CPU history data 2010-12-08 16:53:09 +00:00
vector.c 2005-03-14 Paul Jakma <paul.jakma@sun.com> 2005-03-14 20:19:01 +00:00
vector.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
version.h.in Trying to finish previous commit ... 2005-03-26 14:13:40 +00:00
vty.c fix set never used warnings 2011-12-18 20:21:21 +04:00
vty.h [bgpd] Stability fixes including bugs 397, 492 2009-07-19 18:28:08 +01:00
workqueue.c lib: Make workqueue more conservative about ramping up 2010-12-08 16:53:09 +00:00
workqueue.h + initial edition of meta-queue for RIB updates processing (bug #431) 2008-06-02 12:03:22 +00:00
zassert.h Need RCS Id keyword. 2004-12-03 18:01:04 +00:00
zclient.c fix set never used warnings 2011-12-18 20:21:21 +04:00
zclient.h quagga: option "-z" ("--socket <path>") added 2011-12-13 14:26:28 +04:00
zebra.h lib: put route_types.txt to real use 2011-12-13 19:13:17 +04:00