If you are having problems with your Linksys WRT54G/GS under heavy use (particularly using P2P), there is a solution. I haven’t run into this myself (yet) as I don’t run P2P often but I’ve found the following information from www.linksysinfo.org..
First, you need something like the HyperWRT firmware installed on your router so you can add Start-up scripts. Other firmwares can be used as well. The complete script recommended is:
echo 4096 > /proc/sys/net/ipv4/ip_conntrack_max
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 512 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 2048 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo "600 1800 120 60 120 120 10 60 30 120" > /proc/sys/net/ipv4/ip_conntrack_tcp_timeouts
For the techies out there, the main line that most should care about is:
echo “600 1800 120 60 120 120 10 60 30 120” > /proc/sys/net/ipv4/ip_conntrack_tcp_timeouts
This line limits the time the router maintains connections. When this line is used, it will drop stale connections in 3o minutes as oppossed to days by default.
The following is detailed info for gc_thresh:
gc_thresh1 – no garbage collection is done if # is below this limit
gc_thresh2 – soft limit for garbage collection – it tries to keep them around this limit
gc_thresh3 – hard limit – absolutely no going over this limit