[bt][rfcomm] Teach SessionChannel credit-based flow control

Context: RFCOMM 6.5 states that credit-based flow control is mandatory
to be supported in RFCOMM 1.2 and beyond. This flow control scheme is
only applicable to frames containing user data. See RFCOMM 6.5 (and its
following sections) to get more context on the details of flow control.

Adds support for credit-based flow control to SessionChannel.

Bug: 58668
Test: Added to bt-rfcomm-tests

Change-Id: I9e2f3cfea7f5a889ae59cb8adfe1b06c3da42d9b
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/440269
Commit-Queue: Ani Ramakrishnan <aniramakri@google.com>
Reviewed-by: Lucas Jenkins <lucasjenkins@google.com>
Testability-Review: Lucas Jenkins <lucasjenkins@google.com>
7 files changed
tree: fcceac29aef7140247bc63598a98812268eb7665
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. garnet/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .gitattributes
  17. .gitignore
  18. .gn
  19. .style.yapf
  20. AUTHORS
  21. BUILD.gn
  22. CODE_OF_CONDUCT.md
  23. CONTRIBUTING.md
  24. LICENSE
  25. OWNERS
  26. PATENTS
  27. README.md
  28. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.