Until I switched ISPs recently I had WDS set up across two openwrt routers so that I could connect my wired network printer to my wifi network. My new ISP gave me a new router and as a result I no longer have WDS and hence cannot connect the printer using wifi.
I tried using a pseudobridge, but I got some odd behavior. I couldn't resolve the hostname of the printer, so I couldn't print from Windows, only Linux. Also ARP requests kept on being sent by the printer as they went unanswered. I get the feeling the ARP translation was screwing things up.
I was thinking of writing a very simple fully transparent bridge between the wifi interface and a wired interface on the router. The wired interface would be a single-port vlan running in promiscuous mode. The printer would be connected to that port. To get round the 3 MAC addresses / 4 nodes problem, the wifi iface MAC address would be the same as the printer's wired one. The bridge would relay packets in both direction unaltered. And because they are unaltered, all protocols like ARP, DNS etc should work transparently.
Please let me know if there is already is a solution that does this though.
The only downside is that the bridge would be running from user space, as I will be using the recvfrom and sendto syscalls. Typical bridges run in kernal space, so I'm not sure how much of a performance hit it would take.