My lab network was in an absolutely crazy state; I had to keep 3 machines running round the clock to get DataOne Internet access and wireless connectivity on all the systems. Tidied up everything today - now I have a decent network setup thanks to the WRT54G and the magic of OpenWRT.
My DataOne router is now connected directly to the `Internet' port of the WRT54G (no crossover cable required); one of the four `LAN' ports of the WRT54G is connected to an ethernet switch via a crossover cable (read this to make one at home). I had to set a static route in the WRT54G - any routing table entry you make is lost when the machine is powered down and it is not easy to add/modify init scripts as these reside in flash memory. The solution is to store certain critical pieces of information in what is called the `nvram' (non-volatile RAM?) of the WRT54G. Init scripts read these values and perform stuff like routing table initialization during startup. Here is a document which explains how to store static route entries in nvram.
I had a few PC's which I wanted to hook on to the wireless LAN - it was very easy to do with the amazing OpenWRT firmware running on one of my WRT's. OpenWRT makes your wireless access point act as a simple wireless client (which can in turn communicate with another access point, the WRT which I had connected to the ethernet switch). You can set the `wireless mode' of the device to `bridge' via the web based administration front end. Once you do this, make sure that your `br0' interface has the same network id as the br0 interface on the access point. You can try typing `iwlist scan' to verify whether you are able to detect an access point.
More details later ...