On Fri, Nov 04, 2005 at 11:54:27AM -0800, pandit ib wrote: > Since a UDP application assumes the underlying transport is > unrealiable it should not have any problems running on RDS. > On getting EWOUDBLOCK it will simply retry.
Most existing UDP applications do not expect a return error code of EWOULDBLOCK. To begin with, the Linux manpages say that you have to specify non-blocking to get this error in the first place. Another possibility is ENOBUFS, which gives the advice "Normally, this does not occur in Linux. Packets are silently dropped when a device queue overflows." There was a somewhat famous case showing lack of error handling in UCP applications under Linux, where Alan Cox decided to read the RFCs different from everyone else, and caused an ICMP 'port unreach' to later cause the same sending socket to return an error for a send to some unrelated host. Many UDP-using apps considered this a fatal error. This was ~ 7 years ago, and this misfeature caused enough anger that it was corrected soon after Alan stopped owning the TCP/UDP stack. In short, I'm not sure there would be much benefit for giving existing UDP-expecting apps a reliable, ordered stream of datagrams. The only app which would see a benefit are those who know that they can turn off their reliability and ordering code, and handle backpressure explicitly. Those folks would benefit from a simpler programming interface than verbs. -- greg _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
