Messages in this thread | | | From | sjw44@eng ... | Subject | Re: Congestion control in device driver other than dev->tbusy? | Date | Fri, 8 Jan 1999 14:07:55 +0000 (GMT) |
| |
Matthias Welwarsky wrote: > > Hi list, > > I'm searching for a method to stop Linux flooding a network driver with > packets, but in a little more sophisticated manner than with tbusy. Is > there a way to say "I don't want THIS packet right now, please queue it > for later". An even better way would be to do this on a per neighbour > basis: "Dont give me more packets for that neighbour until I tell you". > Is this implemented somewhere already? Can the neighbour or hh_cache > code be tweaked to do this? > > Gruss, > Matthias > > -
Hi,
This depends upon the protocol really. The easy way to do this for TCP for example is just to drop the packet and the timers/state machine in the socket will take care of backing off the connection until the link can cope with it.
If you are asking, could the neighbour cache be used in AX.25 in this way (I'm not sure you are, but its a hunch...) then I don't see why not. The neighbour cache allows for different output functions depending upon the state of the neighbour, just hijack one of those to do this task.
There are a few points to watch though. Firstly, you'll need to watch out for encapsulated packets of other protocols. Its better to drop TCP than queue it under most (all?) circumstances. Also you'll need a way of giving each socket waiting for a neighbour to allow transmission a kick when transmission is again allowed.
I hope thats of some help, please contact me if I've missed your point,
Steve.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |