Ever since I used wireless access points/routers I’ve flashed them with custom firmware instead of the manufacturer provided. For a long time I used OpenWrt on my Linksys wrt54g and later on my Asus wl500-g Deluxe. After that I started using DD-WRT on my routers. It’s a bit more user friendly than OpenWrt and I was always fooling around on OpenWrt so I broke it very often ;-) .
Some time ago I bought an Asus RT-N16 and directly installed DD-WRT on it. The RT-N16 is a great router and it has been running happily for a long time now. I recommend this router to everyone.
DD-WRT is a very nice product. I compiled my on ip6tables for it and was happily running an IPv6 tunnel on it. But with current releases the wireless somehow became unreliable. After playing around for some time with different settings I tried the official Asus firmware again. This fixed my problems so it wasn’t the router that was failing me. I have to say, the Asus firmware is quite nice… but it doesn’t support IPv6.
Then I read about Tomato. I downloaded a nightly build from tomatousb.org and flashed it into the router using tftp. After some quick configuration I already noticed the wireless seemed just as good as the official Asus firmware. But the best part about the firmware is that it support IPv6 out of the box, including IPv6 firewalling. You can just configure everything from the web interface. No more manually configuring my IPv6 tunnel and firewall from the command line after each new firmware release. /me very happy…