[clug] Emitting Source Quench When Queues Are Full?

grail at goldweb.com.au grail at goldweb.com.au
Wed Oct 1 09:27:13 EST 2003


I'm trying to set up some "advanced" (for me, anyway) routing on some of
my machines (Linux 2.4.21, with all the standard kernel QoS stuff
enabled), and I'm trying to figure out how to go about emitting a source
quench ICMP message to a host that is using what I (or my routing rules)
consider to be an "unfair" amount of bandwidth.
Dropping packets is not an option - by the time the router gets the
packet, the data is already paid for. If the router ends up dropping
packets using any of the RED style ingres filters, I'm wasting time and
money (it's only a 33kbps link, after all!).  I'd much prefer to be able
to send source quench packets when my queues approach say 50% or 75%
capacity. An extra ICMP message or two is much cheaper than dropping
data-laden packets (African *or* European).
I've tried Google, and it gives me lots of pages describing what a Source
Quench message *is*, but nothing I've found (not even on LARTC!) gives me
any indication of whether it's possible to do what I want to do.
Ultimately, I'd like to be able to send source quench messages to each
source whose packets end up in the queue that is getting filled up too
fast. This could be one of my local hosts uploading a large file (ie: I
want to slow it down so that my router's memory doesn't fill up too fast,
and so that other users on my network get fair access to the 'net), or a
local host downloading a large file (ie: I want to slow down the remote
host without dropping packets).
I've tried pushing ACK packets onto queues that have lower priority (so
the ACKS go to the end of the queue, behind interactive and bulk), but
that ends up causing retransmission (could be just my bad queue design).
To me, duplicated data-laden packets are just as expensive as dropped
data-laden packets.
Can anyone point me at documentation that answers my question, or an
alternate mailing list where it would make more sense to ask this
question?




More information about the linux mailing list