* Linux IPv6 router table size.
@ 2011-01-15 21:11 Jan Hugo Prins
2011-01-16 8:44 ` Eric Dumazet
0 siblings, 1 reply; 2+ messages in thread
From: Jan Hugo Prins @ 2011-01-15 21:11 UTC (permalink / raw)
To: netdev
Hi netdev kernel developers,
In the beginning of December the number of IPv6 routes in the BPG router
tables got somewhere close to 4096 and this number is somewhat magical
in Linux. Why is it magical? Well, the default setting for
net.ipv6.route.max_size is hardcoded in the linux kernel to be exactly
this number, this in contradiction with the IPv4 net.ipv4.route.max_size
which is set based upon the size of your memory. Actually, in the IPv4
part of the kernel sources their is a route.c with a nice formula
telling the kernel how big this number should be. For IPv6 their is also
a route.c with some nice formula in it, the formula says exactly the
following:
net->ipv6.sysctl.ip6_rt_max_size = 4096;
The result of all this magic was that when the BGP RIB in my quagga
routers went over the 4096 routes, quagga started complaining that it
couldn't put the routes in the kernel FIB anymore and this went all into
syslog.
It took some digging to find the reason for these error messages, but
after changing this sysctl to something more useful, everything was fine
again.
Maybe it is a good idea to change this in the IPv6 tree to something
more useful in the same direction of the solution that is in the IPv4 tree.
Greetings,
Jan Hugo Prins
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Linux IPv6 router table size.
2011-01-15 21:11 Linux IPv6 router table size Jan Hugo Prins
@ 2011-01-16 8:44 ` Eric Dumazet
0 siblings, 0 replies; 2+ messages in thread
From: Eric Dumazet @ 2011-01-16 8:44 UTC (permalink / raw)
To: Jan Hugo Prins; +Cc: netdev
Le samedi 15 janvier 2011 à 22:11 +0100, Jan Hugo Prins a écrit :
> Hi netdev kernel developers,
>
> In the beginning of December the number of IPv6 routes in the BPG router
> tables got somewhere close to 4096 and this number is somewhat magical
> in Linux. Why is it magical? Well, the default setting for
> net.ipv6.route.max_size is hardcoded in the linux kernel to be exactly
> this number, this in contradiction with the IPv4 net.ipv4.route.max_size
> which is set based upon the size of your memory. Actually, in the IPv4
> part of the kernel sources their is a route.c with a nice formula
> telling the kernel how big this number should be. For IPv6 their is also
> a route.c with some nice formula in it, the formula says exactly the
> following:
> net->ipv6.sysctl.ip6_rt_max_size = 4096;
>
> The result of all this magic was that when the BGP RIB in my quagga
> routers went over the 4096 routes, quagga started complaining that it
> couldn't put the routes in the kernel FIB anymore and this went all into
> syslog.
>
> It took some digging to find the reason for these error messages, but
> after changing this sysctl to something more useful, everything was fine
> again.
>
> Maybe it is a good idea to change this in the IPv6 tree to something
> more useful in the same direction of the solution that is in the IPv4 tree.
>
Hi
IPv4 does an auto memsize tuning because it uses a hash table, and this
table cant be resized after boot.
IPv6 is different, and you can change
/proc/sys/net/ipv6/route/gc_thresh & /proc/sys/net/ipv6/route/max_size
whithout downsides.
echo 32768 >/proc/sys/net/ipv6/route/max_size
echo 8192 >/proc/sys/net/ipv6/route/gc_thresh
(or equivalent lines in /etc/sysctl.conf)
We probably could change default values, but they are "not hardcoded" ;)
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-01-16 8:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-15 21:11 Linux IPv6 router table size Jan Hugo Prins
2011-01-16 8:44 ` Eric Dumazet
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.