Michael - My kludge code predated all of the "bloat" activity (I wrote it in 2002, when I had a Linux box as my home router, and I stopped using it because as a practical matter it was easier to use off-the-shelf home routers to support my family when I travel). It was a complete kludge using a modified kernel, etc. Not the right way to do it, and probably impossible to understand. But I've thought about coding it again for cerowrt. Where to modularly slot it in seems to be worth thinking about. Perhaps in two key pieces: an iptables/xfilter module and a routing/traffic control module - with some direct interaction between the two using some appropriate intermodule bus/link/coordination link. I'd be happy to think about defining the pieces, but I really don't have time to code it, given all the other stuff I've done. I wonder if by putting it in these modules, one can use existing kernel APIs. -----Original Message----- From: "Michael Richardson" Sent: Monday, November 26, 2012 10:38am To: dpreed@reed.com Cc: cerowrt-users@lists.bufferbloat.net, cerowrt-devel@lists.bufferbloat.net Subject: Re: [Cerowrt-devel] [Cerowrt-users] QOS settings vs speedboost and random bandwidth >>>>> "dpreed" == dpreed writes: dpreed> You can use a small fraction of the capacity of the cable dpreed> uplink path to measure its queueing delay dynamically, and dpreed> when it gets longer than latency*"expected bitrate", reduce dpreed> "expected bitrate". dpreed> You want to do this *as quickly as possible*, so what you do dpreed> is insert a "link monitor" task in the driver that sends dpreed> tiny probe packets addressed to the nearest "loopback point" dpreed> you can find/create on the other side, and measure the RTT. dpreed> You can use, for example, the technique used by traceroute, dpreed> which is to set the hop count to the smallest number that dpreed> causes a return ICMP packet to be sent, and send one of dpreed> those periodically. As I understand it, you can do this with 802.1ag http://en.wikipedia.org/wiki/IEEE_802.1ag, with the Loop-back frames as well. Whether or not any of this is enabled on typical broadband networks, I have no idea. dpreed> I used this specific technique to cause my uplink queue to dpreed> move back into my router, where I could manage it. You can dpreed> also use it for the downlink queue measurement, but it dpreed> doesn't move the queue into the router smoothly, instead you dpreed> have to drop/ECN-mark the IP frames coming in. dpreed> This can all be done between the IP layer and layer 2. dpreed> Since it exploits speedboost better, it might be worth dpreed> adding as an option to cerowrt, so you don't have to set a dpreed> speed limit explicitly when you have a single connection to dpreed> the public Internet. wow, this would be awesome... code?? -- ] He who is tired of Weird Al is tired of life! | firewalls [ ] Michael Richardson, Sandelman Software Works, Ottawa, ON |net architect[ ] mcr@sandelman.ottawa.on.ca http://www.sandelman.ottawa.on.ca/ |device driver[ Kyoto Plus: watch the video then sign the petition.