Subject: Re: Melting down your network [Subject changed]
To: None <tech-kern@netbsd.org>
From: Christos Zoulas <christos@tac.gw.com>
List: tech-kern
Date: 03/29/2005 13:22:13
In article <3E809716-763C-4169-8352-4CD64D5CEEEE@shagadelic.org>,
Jason Thorpe  <thorpej@shagadelic.org> wrote:
>
>On Mar 28, 2005, at 4:44 PM, Christos Zoulas wrote:
>
>> The point of the discussion is the behavior of send() on a full
>> interface. If an application decided to flood the network, it is
>> not the job of the kernel to stop it (in UDP).
>
>OK, fine.
>
>It is my opinion that send(2) behaves properly as-is.  Our behavior  
>seems to be specifically allowed by SUSv3.

The fact that the behavior is allowed by SUS is not saying much. We
can change fork() to randomly return EGAIN 5% of the time and be
SUS compliant. How many applications will break because they don't
retry?

In fact, I think that whoever decided to return ENOBUFS in the output
queue full scenario, chose ENOBUFS to be SUS compliant.

christos