Samstag, 1. August 2009

Traffic shaping on the Nokia 770

Thanks to the Mer project (Ubuntu-9.04 for ARM5TEJ + some tablet specific optimizations) I now can revive my Nokia 770 to replace the old P90 server. Because of its low power consumption I can keep it running 24/7, hosting a tor-relay to make use of otherwise unused traffic, and using traffic shaping to not let tor interfer with "real" workload.

However the 770's wlan driver is a binary blob (umac.ko), and enabling certain networking features (like QoS needed for trafic shaping) change the size of the sk_buff structure, which breaks it.

To be able to enable traffic shaping (and other features), you can steal some memory from the command buffer:
/include/linux/skbuff.h / line 254::
char cb[46]; //-2
__u16 tc_index;

This is really ugly and unsafe, may lead to real troubles and could cause whatever disease you can think of.
However it seems both, wlan-networking as well as traffic shaping work perfectly fine now :)