site_archiver@lists.apple.com Delivered-To: macnetworkprog@lists.apple.com Hi, I'm trying to dig the way of UDP flow control is done on Mac OS (if it is done) afaik on Linux (so far my question is likely theoretical and doesn't have concrete and detailed reference to code or exact names of functions), UDP-socket have send-buffer and linux does some flow-control: when no space available on buffer, linux returns EWOULDBLOCK for socksend. Detection that buffer is sent is done by setting destructor on skb: skb->destructor = sock_wfree. So when NIC has finished with skb, destructor is called and it's space on buffer is cleared. Obviously, for TCP there is no any problem - buffer-space clear is done after receive of ACK. But are there any possibilities to have some flow-control for UDP? If application wants to send UDP-datagrams at maximum rate, without acks from remote peer and wants to ensure that NIC will not drop the packets (or memory won't bloated)? Actually, UDP is not an issue, I just want to try to understand how it is done in kernel.. Thank you in advance! This question is facinating me during the whole week, but so far I have not found anything that satisfied me Dmitry _______________________________________________ Do not post admin requests to the list. They will be ignored. Macnetworkprog mailing list (Macnetworkprog@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/macnetworkprog/site_archiver%40lists.... This email sent to site_archiver@lists.apple.com
participants (1)
-
Dmitriy Skorodumov