This commit adds support for the remaining TCP callback, which was not yet supported. Originally, the unimplemented callback was otTcpSendReady, which would indicate to the application when new data added to the TCP send buffer would be sent out immediately. There was also discussion of adding an otTcpBytesAcked callback, which, together with the otTcpSendByExtension() call, would allow a circular buffer to be implemented efficiently on top of the otLinkedBuffer API. Ultimately, it seemed best to generalize the otTcpSendReady callback to include both cases where bytes are acked by the connection peer, and where the send buffer drains, allowing new data to be sent immediately. The reasoning behind this decision is that both the otTcpSendReady and otTcpBytesAcked callbacks are triggered by the same event --- an ACK received from the connection peer --- and that it may require the application to have to "coordinate state" across callbacks. Having a single callback function to indicate both conditions seemed like it could simplify applications significantly. The new, combined, callback is otTcpForwardProgress. This commit implements support and documentation for this callback function.
TCPlp
This module will contain a port of TCPlp for OpenThread. Currently, it only contains part of the implementation; the rest will be added in future pull requests.
URL
Based on https://github.com/ucbrise/tcplp.
License
BSD 3-Clause
TCPlp is derived from the TCP stack in the FreeBSD Operating System. Files taken from FreeBSD retain their original copyright notices and licenses (which are BSD-like licenses). New code contributed as part of TCPlp is provided under the BSD 3-Clause License.
Description
TCPlp is a full-scale TCP stack for low-power wireless networks and resource-constrained embedded systems. It is designed to support performant and efficient TCP operation over IEEE 802.15.4 networks. It is based on the TCP stack in the FreeBSD operating system.
TCPlp is a software artifact that accompanies an NSDI 2020 paper:
Sam Kumar, Michael P Andersen, Hyung-Sin Kim, and David E. Culler. Performant TCP for Low-Power Wireless Networks. NSDI 2020.
The paper is available at the following locations: