commit | 55333fa304ae7b8784ef9780d25f713d5068b617 | [log] [tgz] |
---|---|---|
author | Alexei Frolov <frolv@google.com> | Thu Dec 09 15:58:07 2021 -0800 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Jan 05 17:47:54 2022 +0000 |
tree | 83e89a15d15a16078121d33d1006221122a96bc8 | |
parent | 27e12c5bc7dd7882748f7231235541e68795abc2 [diff] |
pw_transfer: Rolling window This updates transfer receivers in C++, Python, and Typescript to extend their receive window part-way through, with the intention of allowing a transmitter to continuously stream data without blocking. To support this, two changes to the transfer protocol are made: 1. Chunks now have a type field, allowing a transmitter to distinguish between an extended window and a request for retransmission. A type for an initial transfer packet is also added, but not yet used. 2. The pending_bytes field is replaced by window_end_offset, telling the transmitter what offset they can send up to, rather than how many bytes they can send. This is easier to manage on both the transmitting and receiving sides. Change-Id: I771f6e6b2e0aa4da787eaa1cd3b37d57b41240e2 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/73101 Reviewed-by: Wyatt Hepler <hepler@google.com> Reviewed-by: Jared Weinstein <jaredweinstein@google.com> Commit-Queue: Alexei Frolov <frolv@google.com>
Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.
For more information please see our website: https://pigweed.dev/