Hi, I want to add my bit to the description of "configuring" wondershaper.

Background
Code:
+-------------+
| cable modem |
+-------------+
       |
  +--------+
  | wl500g |
  +--------+
     /    \
    /      \   wire
   /        \
+----+   +---------+
| PC |   |  NSLU2  |
+----+   | storage |
         +---------+
on the NSLU2 storage, I have (among other services available only locally) a web server with PHP and MySQL visible from outside world. On the PC I sometimes want to use Skype while browsing the web or downloading or such. As my bandwidth is limited to 1024/128 (give or take), it was sometims impossible to keep a good connection for Skype. Also I wanted the web site to be reasonably accessible while I was doing something else.

Approach
I mainly used the approach of akbor (thanks a lot) with some modifications:

Code:
                      +-------+
                      | qdisc |
                      +-------+
                          |
       +---------------------------------------+
       |            root class 1:1             |
       |        rate 100% / ceil 100%          |
       +---------------------------------------+
         |                 |                 |
  +-------------+  +---------------+  +-------------+
  |hi class 1:10|  |main class 1:20|  |lo class 1:30|
  |  rate 50%   |  |    rate 40%   |  |  rate 10%   |
--|  ceil 100%  |--|    ceil 100%  |--|  ceil 100%  |--
| |  prio 1     |  |    prio 2     |  |  prio 3     | |
| +-------------+  +---------------+  +-------------+ |
|        ^                 ^                 ^        |
---------(------SFQ--------(-----------------(---------
         |  
        / \-----------\
       /               \
+-------------+  +-------------+
|subclass 1:11|  |subclass 1:15|
|  rate 40%   |  | rate  2kbit |
|  ceil 100%  |  | ceil 12kbit |
+-------------+  +-------------+
* The class 1:11 is used for all high priority traffic as in akbor's example including the outgoing web service (well, my web traffic is very low, it's only for personal purposes, for friends and so)
* The class 1:15 is obviously the one used for Skype. I setup the Skype so it uses only the port 41100 and let this port in both UDP and TCP service go to this class (but I think the UDP would be enough)
* I also hardcoded a 54321 port for torrents to go to 1:30 part.

The code
only the additions for Skype are here
Code:
tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 \
  match ip sport 41100 0xffff \
  match ip protocol 17 0xff \
  flowid 1:15
tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 \
  match ip sport 41100 0xffff \
  match ip protocol 0x11 0xff \
  flowid 1:15
and for the local web server:
Code:
tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 \
  match ip sport 80 0xffff \
  match ip src IPADDR \
  flowid 1:11
where IPADDR is the IP address for the WAN side - that is the IP address assigned to you by your ISProvider. I have yet to figure out the way to update this address automatically with my DynDNS update, though. For the time being, the address is being hardcoded.

Result
So far, this seems to work rather well. I tried these proceses simultaneously:
* downloading a large file from the internet
* uploading a file to internet
* Skype-phoning a friend
* the friend being asked was accessing my website on the NSLU2 machine
* browsing the web

The Skype communication was without any significant drops (as was without wshaper), the pages served to my friend were almost as fast as without any other activity (the limiting factor here is the speed of the NSLU2, not the connection speed). The other activities were slowed accordingly. I'd describe that as a success.

I hope this will help someone coping with a similar task.

remarks
I'm greatly delighted by the possibilities of the small beast (wl500g). I've had it for more than a year, only 1month ago did I install Oleg's firmware. Just plain great. When combined with possibilities of custom firmware in NSLU2 www.nslu2-linux.org, it is a combination with great potential on a very low short and long term budget

Jiri