Eric wrote:Care to share your tweaks/changes, and the rationale behind them? I'm always looking to improve.
Of course I do. Sorry - it was quite late at my end of the world when I posted.
Basically everything worked just fine out of the box using
gargoyle/patches-generic-backfire/04-arpnat.patch against the OpenWRT backfire tree from SVN (substituting 2.6.32 for 2.6.30 where appropriate).
The only thing I really had to change was the EXPORT_SYMBOL line in
701-arpnat.patch /
linux-2.6.32.10/net/bridge/br_fdb.c because the compiler complained about br_fdb_get missing. Someone seems to have added two underscores in the meantime:
Code: Select all
+--- linux-old/net/bridge/br_fdb.c 2009-09-15 13:46:05.000000000 -0400
++++ linux-2.6.32.10/net/bridge/br_fdb.c 2009-09-22 19:52:51.000000000 -0400
+@@ -415,3 +415,5 @@
+ spin_unlock(&br->hash_lock);
+ }
+ }
++EXPORT_SYMBOL(__br_fdb_get);
++
For some strange reason, things compiled, linked and generally work, so I figure I'm fine with that change. As I said, I'm not much into the gory details of Linux driver development.
The other thing I changed was the
/etc/hotplug.d/net/20-client_bridge script. I moved it to the
ebtables package, because I wouldn't install madwifi, and I felt it could just belong there. And I changed the first two lines to check for Broadcom, too:
Code: Select all
is_wlan=$(echo $INTERFACE | grep -e wlan -e ath)
if [ -n "$is_wlan" ] ; then
if [ "$ACTION" = "add" -o "$ACTION" = "register" ] ; then
sleep 2
That was about it. Compiled, flashed my router, arpnat works like a charm.
I guess I'll give it some testing now, which in my case means using it in sort of production mode on a box connecting my desktop PC via WLAN to the rest of my network. (Of course, I do have a working 2.4 Broadcom firmware around, just in case.) Given the amount of data flowing over that link, I'd run into trouble very soon if things failed. I'll keep you posted.