Alan Cox wrote:
>>>That is correct UDP behaviour
>>>
>>This is totally untrue, unless the socket doing non-blocking I/O -- and
>>even then you get -1 and EAGAIN from sendto.
>>
>
> Not the case.
Are you claiming that you will never see -1 and EAGAIN on a nonblocking
UDP socket with sendto? If so, I'll bet you a kernel patch that you are not
correct (I get to write the patch and you include it :) )
>
>
>>there is no way to "lose" that data before it hits the wire, unless of
>>course the network driver is broken and doesn't plug the upper layers when
>>its TX queue is full.
>>
>
> UDP is not flow controlled.
If it makes it through sendto, where can it be dropped before it
hits the wire? I doubt the socket buffers are anthing other than FIFO,
and the same goes for the ethernet/device queue. Since we (can) know
at sendto whether or not the PDU was enqueued for transmit, it seems
trivial to notify user space of success/failure of the local network
stack, and I believe this is what is done.
Now granted, it can be dropped anywhere outside of the machine, but
I can see no good reason to drop it inside the machine.
-- Ben Greear <greearb@candelatech.com> <Ben_Greear AT excite.com> President of Candela Technologies Inc http://www.candelatech.com ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Feb 07 2002 - 21:00:57 EST