[wlan][sme] Add RSNA response timeout, and restructure existing timeouts

SME now has three RSNA timeouts: retranmission, response, and
completion.

The completion and retransmission timeouts are renamed from the
establishing RSNA, and key frame exchange timeouts. The completion
timeout is now 8.7 seconds to allow for nearly two response timeouts
to expire plus the time to retransmit a frame twice. Note that for a
"bad password", we would expect only a full response timeout to expire
since the AP should ignore the second EAPOL frame and never respond in
that case.

The response timeout is the amount of time SME will wait for a
response from the AP during RSNA establishment. Upon receiving
a valid RSNA related frame from the AP, SME will reset the response
timeout. If a response timeout expires, RSNA establishment fails.

Bug: b/243682076
Test: New unit tests added, and current tests improved
Change-Id: I0a5811b5f2e8bf4c54932589aa85a1e7328453fc
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/717165
Commit-Queue: Charles Celerier <chcl@google.com>
Reviewed-by: Dylan Swiggett <swiggett@google.com>
(cherry picked from commit 46366b8567a8bd88c558be9adf733a61af78b1b3)
14 files changed
tree: d906829bbc784d8c11c047e01134e6bceb01871d
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. products/
  7. scripts/
  8. sdk/
  9. src/
  10. third_party/
  11. tools/
  12. zircon/
  13. .clang-format
  14. .clang-tidy
  15. .editorconfig
  16. .git-blame-ignore-revs
  17. .gitattributes
  18. .gitignore
  19. .gn
  20. .style.yapf
  21. analysis_options.yaml
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. pyrightconfig.json
  30. README.md
  31. rustfmt.toml
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

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.