[roll third_party/pigweed] 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.

Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/73101

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: 27e12c5bc7dd788..55333fa304ae7b8
Roller-URL: https://ci.chromium.org/b/8825855913875192993
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8825855913875192993
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I879a0a2c6f9d51aa3a5787798c3aa0ba0c81a741
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/76781
Bot-Commit: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
Commit-Queue: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
1 file changed
tree: 536d6ab88795e78b7c176d61efc8a02fb1e8da65
  1. applications/
  2. build_overrides/
  3. pw_board_led/
  4. pw_board_led_arduino/
  5. pw_board_led_host/
  6. pw_board_led_stm32cube/
  7. pw_board_led_stm32f429i_disc1/
  8. pw_spin_delay/
  9. pw_spin_delay_arduino/
  10. pw_spin_delay_host/
  11. pw_spin_delay_stm32cube/
  12. pw_spin_delay_stm32f429i_disc1/
  13. targets/
  14. third_party/
  15. tools/
  16. .gitattributes
  17. .gitignore
  18. .gitmodules
  19. .gn
  20. activate.bat
  21. banner.txt
  22. bootstrap.bat
  23. bootstrap.sh
  24. BUILD.gn
  25. BUILDCONFIG.gn
  26. env_setup.json
  27. navbar.md
  28. OWNERS
  29. PW_PLUGINS
  30. README.md
README.md

Pigweed Experimental

This repository contains experimental pigweed modules.

Repository setup

Clone this repo with --recursive to get all required submodules.

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental

This will pull the Pigweed source repository into third_party/pigweed. If you already cloned but forgot to --recursive run git submodule update --init to pull all submodules.