I have been an avid user of a Linksys cable router and wireless access point until both died after a firmware upgrade. I started this project driven by the need for a replacement and the desire to have a more configurable and open source router. Doing so gave me a good understanding of using the Linux kernel and daemons in an embedded environment. It also presented me with the challenges of configuring virtual private networks and secure wireless access.
Similar projects (albeit with a different scope) are the Linux Embedded Appliance Firewall  and M0n0wall . In comparison, this document aims to provide the reader with background on how to get things running, instead of providing a turn-key distribution.