[slam] Implement SLAM flow control
authorMichael Brown <mcb30@etherboot.org>
Wed, 11 Jun 2008 08:41:31 +0000 (09:41 +0100)
committerMichael Brown <mcb30@etherboot.org>
Wed, 11 Jun 2008 08:41:31 +0000 (09:41 +0100)
commit5d36ec6721070e4efe817a853612837535019718
tree2ec2a20ec3220457d202a399dcfee791db77f655
parent32e8ab4df028248665456e3d6a42e1285b332291
[slam] Implement SLAM flow control

On any fast network, or with any driver that may drop packets
(e.g. Infiniband, which has very small RX rings), the traditional
usage of the SLAM protocol will result in enormous numbers of packet
drops and a consequent large number of retransmissions.

By adapting the client behaviour, we can force the server to act more
like a multicast TFTP server, with flow control provided by a single
master client.

This behaviour should interoperate with any traditional SLAM client
(e.g. Etherboot 5.4) on the network.  The SLAM protocol isn't actually
documented anywhere, so it's hard to define either behaviour as
compliant or otherwise.
src/net/udp/slam.c