My firewall/router is a Linksys WRT54G. I bought a couple of these last year because they run Linux and the firmware code was released in accordance with the GPL. Since the firmware is open, there are several versions of firmware available. For most of the last year, I used a version that I don’t want to name ($vea$oft), but it was buggy as hell. It worked ok most of the time, but it frequently locked up under heavy load.
I had a few minutes to spare this weekend, and so I started doing research on installing OpenWrt. The install was pretty easy, and I can not believe the performance difference. The only issue I had was trying to modify the firewall rules. The web interface for this firmware is pretty minimal, and if you want to do anything like port forwarding you need to modify the iptables firewall rules. There are a few examples in the script that will probably do what you need. I don’t have much experience with iptables and I had a hard time with one rule. Everything seems to be working now though.
I really can’t believe the performance difference. I don’t have any hard numbers, but it is noticeable.